Autor Beitrag
Aria
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 14.09.05 17:03 
Hi,
ich habe mit Delphi für die Schule ein Moorhuhn fake Progemmiert, doch es hapert noch etwas!
Ich habe Image 2 und Image3, die durch den Bildschirm fliegen, diese muss man wegklicken, ansonsten schließt sich das game, aber wenn ich sie wegklicke, schließt es sich trotzdem, als ob das Bild einfach weiterlaufen würde!
Wie kann ich das beheben?

Die Antwort muss heute noch kommen, da ich es morgen abgeben muss (15.9) also BITTE helft mir!

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, jpeg, ExtCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Timer1: TTimer;
    Image2: TImage;
    Image3: TImage;
    Timer2: TTimer;
    Label4: TLabel;
    Timer3: TTimer;
    procedure Image1Click(Sender: TObject);
    procedure Timer3Timer(Sender: TObject);
    procedure Image3Click(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure Image2Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Punkte: Integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
label1.Visible:=false;
label2.Visible:=false;
label3.Visible:=false;
image2.Visible:=true;
timer1.enabled:=true;
image3.Visible:=true;
timer2.enabled:=true;
timer3.Enabled:=true;

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
image2.Top:=image2.Top+10;
image2.Left:=image2.left+10;
if image2.left> 869
then
form1.close;
end;

procedure TForm1.Image2Click(Sender: TObject);
begin
image2.Visible:=false;

end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
image3.Top:=image3.Top+23;
image3.Left:=image3.left+20;
if image2.left> 869
then
form1.close;
if image2.top> 600
then
form1.close;
end;

procedure TForm1.Image3Click(Sender: TObject);
begin
image3.Visible:=false;
end;

procedure TForm1.Timer3Timer(Sender: TObject);
begin
Punkte:=Punkte-1;
Label1.caption:=inTtostr (Punkte);
end;

procedure TForm1.Image1Click(Sender: TObject);
begin

end;

end.


Zuletzt bearbeitet von Aria am Mi 14.09.05 17:11, insgesamt 1-mal bearbeitet
Amateur
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 777

(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
BeitragVerfasst: Mi 14.09.05 17:10 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
if image2.left> 869
then
form1.close;
if image2.top> 600
then
form1.close;


da könnte es probleme geben. einfach ma alle close befehle rausnehmen (natürlich die komplette if schleifein diesem fall). hast denselben code auch im timer1. alles was mit close zu tun hat raus. wenns dann startet haste irgendwas falsch geproggt. ansonsten liegt der fehler tiefer im programmcode

edit: habs ma getestet. also mit dem code den du gepostet hast funzt es also muss es wo anders dran liegen. poste ma den rest des codes

_________________
"Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700
Aria Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 14.09.05 17:23 
Ich habe das problem gefunden, es war wie du sagtest ein falsch eingegebener Code bei den close codes!
Nun noch eine frage:
Bei mir wird die Zeit gezählt, indem ein angeschaltetter Timer die Zeit voranlaufen lässt.
Ich möchte nun, dass wenn die Zeit bei 10 ist, dass dann das Fenster geschlossen wird, kann mir einer sagen wie das geht?

Danke nochmal für die antwort zur ersten frage!
Jonas1405
Hält's aus hier
Beiträge: 14

Win 95, Win XP Home
D3 Prof, D4 Prof, D6 Pers
BeitragVerfasst: Mi 14.09.05 17:29 
user profile iconAria hat folgendes geschrieben:
Ich habe das problem gefunden, es war wie du sagtest ein falsch eingegebener Code bei den close codes!
Nun noch eine frage:
Bei mir wird die Zeit gezählt, indem ein angeschaltetter Timer die Zeit voranlaufen lässt.
Ich möchte nun, dass wenn die Zeit bei 10 ist, dass dann das Fenster geschlossen wird, kann mir einer sagen wie das geht?

Danke nochmal für die antwort zur ersten frage!


Ich weiß gerade nicht wasfür ein Interval du für den Timer eingegeben hast- aber eigentlich kannst du doch eine Variable nehmen und diehochzählen und ggf. so umrechnen, dass du einen sekundenwert hast- oder??!!

Jonas
Aria Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 14.09.05 17:35 
Das verstehe ich nciht ganz!
Kannst du mir mal deinen vorschlag in codes sozusagen geben?
Dann kann ich es mal ausprobieren, wäre sehr nett!
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 14.09.05 17:36 
user profile iconAmateur hat folgendes geschrieben:
natürlich die komplette if schleifein diesem fall
www.if-schleife.de :mrgreen:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Aria Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 14.09.05 17:45 
Aber nun bitte zurück zum eigentlichen Thema
Amateur
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 777

(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
BeitragVerfasst: Mi 14.09.05 18:14 
ups natürlich if abfrage. sry. hab halt schnell ne antwort getippt und net drauf geachtet

_________________
"Kein dummes Gerede. Kein Rumrätseln. Denkt an nichts anderes mehr, nur noch an das, was vor euch liegt. Das ist die wahre Herausforderung. Ihr müßt euch vor euch selbst schützen, Leute." (Rennes in "Cube")
Beiträge: >700