Autor |
Beitrag |
Mia9
Hält's aus hier
Beiträge: 7
|
Verfasst: Di 21.12.10 21:07
Hallo!
Ich möchte in einem erstem Fenster, dem Hauptfenster einen Button platzieren und wenn man auf diesem drückt öffnet sich ein zweites Fenster, in dem ein Programm abläuft. Dies habe ich zum Teil auch mit ()ShowModal hinbekommen. Aber das Problem ist, dass sich dann bei Button-Klick das zweite Fenster öffnet aber dass, das Programm sich nicht abspielt, also dass, das "Spiel" nicht läuft, es wird nur das zweite Fenster angezeigt, ohne dass in diesem etwas vonstatten geht. Kann mir jemand helfen?
Dankeschön.
Einloggen, um Attachments anzusehen!
|
|
bummi
      
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Di 21.12.10 23:15
Ich habe keine Lust die fehlenden DFM's nachzubauen, vielleicht legst Du das ganze mal gezippt auf.
Was mir auffällt:
Du lässt den Timer schon im Create loslaufen, IMHO wäre hier OnShow der richtige Zeitpunkt.
Ob Application.Terminate das gewünschte ist kannst nur Du beurteilen, ich denke ein Close des 2. Forms sollte genügen.
Der Draw-Aufruf gehört ins OnPaint der Paintbox, ein neuzeichnen kannst Du mit Invalidate auslösen.
_________________ Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
|
|
luckyluc
      
Beiträge: 103
|
Verfasst: Di 21.12.10 23:33
habe jetzt die gezippte version hinzugefügt.
Einloggen, um Attachments anzusehen!
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 21.12.10 23:39
Du solltest das Ereignis OnTimer des Timers auch mit deiner Timer-Methode Timer1Timer verbinden...
Schau mal im Objektinspektor unter Ereignisse bei dem Timer nach.
|
|
bummi
      
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Mi 22.12.10 00:49
Ich habe Dir Unit2 mit eine paar Änderungen beigelegt
Einloggen, um Attachments anzusehen!
_________________ Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
|
|
Mia9 
Hält's aus hier
Beiträge: 7
|
Verfasst: Mi 22.12.10 11:29
Danke bummi, aber wenn ich das so umsetzte (d.h. wenn ich in Paintbox die Draw Prozedur und in den Timer Paintbox1.Invalidate schreibe) macht das Programm gar nichts mehr, das heißt es wird kein Wurm gemalt noch wird dieser bewegt. (das habe ich in dem Programm ausprobiert, in dem sich nur ein Fenster befindet und wo das "Spiel" eigentlich auch läuft)
Auch das im Threadstart beschriebene Problem hat sich leider noch nicht gelöst, auch wenn ich das Ereignis OnTimer des Timers mit der Timer-Methode Timer1Timer verbinde. Hat jmd. noch eine Idee?
|
|
bummi
      
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Mi 22.12.10 13:56
Hast Du meinen Anhang ausprobiert, läuft bei mir problemlos und ohne ruckeln/flimmern, die Schlange frisst jetzt sogar das Futter  . Du hattest im Draw noch was drin was störte ich meine sowas wie repaint o.ä.
_________________ Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
|
|
Mia9 
Hält's aus hier
Beiträge: 7
|
Verfasst: Mi 22.12.10 14:11
Ja natürlich habe ich das ausprobiert,habe auch dieses repaint in Draw weggemacht, habe alles genau so wie du in Unit2 geändert hast, umgesetzt.... Es wird wie gesagt, wenn ich auf das Hauptfenster öffne und auf den Button Spiel drücke nur das zweite Fenster aber das eben ganz grau und leer angezeigt, ohne dass das Spiel darin abläuft. Verstehe ich nicht....
|
|
bummi
      
Beiträge: 1248
Erhaltene Danke: 187
XP - Server 2008R2
D2 - Delphi XE
|
Verfasst: Mi 22.12.10 14:17
sicher doch mal Deinen Source weg und kopiere die Dateien von mir in den Ordner. Projekt erzeugen statt compilieren wählen falls da DCU's rumliegen die neuer sind als die Sourcedateien.
EDIT:
Du hattest ja vor allem im OI vergessen Form1.OnKeyDown und Timer1.OnTimer anzuhängen, das siehst Du im pas nicht.
_________________ Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
|
|
Mia9 
Hält's aus hier
Beiträge: 7
|
Verfasst: Mi 22.12.10 15:32
Dein Rat hat tatsächlich funktioniert. Danke Bummi!
|
|