Autor |
Beitrag |
Blobby
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 11.06.10 22:30
Ich bin gerade dabei ein etwas größes Spiel für die Schule zu schreiben. Alles sehr einfach gehalten, aber es soll dennoch ein wenig KLasse besitzen. Das eigentliche Spiel ist auch schon fertig.
Doch nun möchte ich einen Start-Screen einbauen. Darum hab ich mir gedacht, mach ich einfach 2 Bilder, die sich abwechseln! Also einfach ins Formcreate eine Schleife!
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| while (start = true) do begin sleep (2000); counter := counter + 1; if counter mod 2 = 1 then begin Img_menu_start.visible := true; Img_menu_clean.visible := false; end else begin Img_menu_start.visible := false; Img_menu_clean.visible := true; end; end; |
Und dann ins KeyPress die Abfrage!
Delphi-Quelltext 1: 2:
| if (start = true) and (key = 'VK_Return') then start := false; |
Aber es will einfach nicht funktionieren. Das Fenster zeigt sich gar nicht erst. Ich denke, weil das Formcreate nicht durchlaufen kann!
|
|
Jann1k
      
Beiträge: 866
Erhaltene Danke: 43
Win 7
TurboDelphi, Visual Studio 2010
|
Verfasst: Sa 12.06.10 00:15
Sleep ist für sowas auch nicht geeignet, da es die Anwendung praktisch einfriert, nimm lieber einen Timer, den du dann bei Bedarf abschalten kannst.
|
|
MaPsTaR
      
Beiträge: 90
Erhaltene Danke: 4
Win XP
Delphi 7 Enterprise
|
Verfasst: Sa 12.06.10 01:30
Ich würde einen Timer im OnShow-Event der Form aktivieren, der die Bilder wechselt und dann deaktiviert wird, wenn Enter gedrückt wird.
Da könntest du dann eigentlich Timer1.Enabled testen und kannst die Variable start rausnehmen.
Soweit ich weiß, kann das nicht funktionieren...
Delphi-Quelltext 1: 2:
| if (start = true) and (key = 'VK_Return') then start := false; | , da key vom Typ Char ist.
Schreib die Abbruchbedingung in OnKeyDown und...
Delphi-Quelltext 1: 2: 3: 4: 5:
| if (Timer1.Enabled) and (key = vk_Return) then begin Timer1.Enabled := false; end; |
Booleanvergleiche nicht auf true oder false!
_________________ Liebe Kinder, es stimmt ... solnage auch nur der ertse und lezte Bchutsabe rihctig ist und alle andreen Bcuhsatben irgendwie vorahnden sind,
dann knan man es dennonch lesen, also macht nur weiter so, wir verstehen euch schon
|
|
Blobby
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 12.06.10 12:04
|
|
ALF
      
Beiträge: 1085
Erhaltene Danke: 53
WinXP, Win7, Win10
Delphi 7 Enterprise, XE
|
Verfasst: Sa 12.06.10 12:41
Hi, mal ganz einfach.
Im Onshow - Event deiner Form, schreibst Du dies
Delphi-Quelltext 1:
| Timer1.Enabled := True; |
In Der Timer1 Procedure schreibst Du die Bilderwechsel rein.
Aber nicht als Schleife!
Und im OnKeyDown - Event Deiner Form kommt die genannte Abbruchbedingung rein.
Grundsetzlich muss man sich folgendes merken
Es muss standart mässig, alles was in einer Procedure steht, die Procedure komplett durchlaufen werden, damit eine aktuallisierung passieren kann.
Eine sich wiederholende Schleife in einer Procedure verhindert dies! Demzufolge auch keine Aktuallisierung!
Gruss Alf
_________________ Wenn jeder alles kann oder wüsste und keiner hätt' ne Frage mehr, omg, währe dieses Forum leer!
|
|
Hidden
      
Beiträge: 2242
Erhaltene Danke: 55
Win10
VS Code, Delphi 2010 Prof.
|
Verfasst: Sa 12.06.10 13:07
MaPsTaR hat folgendes geschrieben : | Booleanvergleiche nicht auf true oder false! |
Bitte wirklich vermeiden  Begründung findet sich hier: Vergleiche auf true/false
lg,
_________________ Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
|
|
Dude566
      
Beiträge: 1592
Erhaltene Danke: 79
W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
|
Verfasst: Sa 12.06.10 13:27
Habe gerade sogar eine Videoanleitung gefunden: www.youtube.com/watch?v=tFLEAQXszkU
_________________ Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
|
|
Blobby
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 12.06.10 13:41
|
|