| Autor |
Beitrag |
Aria
Hält's aus hier
Beiträge: 4
|
Verfasst: 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!
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 public 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
      
Beiträge: 777
(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
|
Verfasst: Mi 14.09.05 17:10
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 
Hält's aus hier
Beiträge: 4
|
Verfasst: 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
|
Verfasst: Mi 14.09.05 17:29
Aria 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 
Hält's aus hier
Beiträge: 4
|
Verfasst: 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.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Mi 14.09.05 17:36
Amateur hat folgendes geschrieben: | | natürlich die komplette if schleifein diesem fall | www.if-schleife.de 
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
Aria 
Hält's aus hier
Beiträge: 4
|
Verfasst: Mi 14.09.05 17:45
Aber nun bitte zurück zum eigentlichen Thema
|
|
Amateur
      
Beiträge: 777
(Win98, WinMe) WinXP Prof
D3 Prof, D6 Pers, D2k5 Pers., Turbo C++ Explorer
|
Verfasst: 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
|
|
|