Re: threads - Parallele Bewegungen von Objecten in einem Ima
ok ich habe jetzt das Zeichnen versucht mal auszulagern, und bin dabei auf ein Problem gestoßen:
ich wollte es nun so realisieren, das ich mit einem Timer einfach alle objecte Zeichen lasse, und die Threads nur berechnen... soweit ist alles einwandfrei, keine Fehlermeldungen etc aber ich sehe auch nichts. wenn ich im Debugmodus durchgehe (F7) dann sehe ich alles wunderschön wie meine Objecte nach und nach durch die gegend fliegen, aber wenn ich einfach compiliere, dann sehe ich garnichts. mein Timer hat den folgenden Code:
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var i:integer; begin image1.Picture.LoadFromFile(Pic); //Hintergrund setzen image1.Canvas.Draw(a.xpos,a.ypos,a.getBild); //statische Spielfigur setzen for i:=0 to componentcount-1 do //alle objecte durchsuchen begin if components[i] is Tmyobject then //wenn eines gefunden das er malen soll image1.Canvas.Draw(Tmyobject(components[i]).xpos, Tmyobject(components[i]).ypos, Tmyobject(components[i]).getpic) ; end; end; Ich dachte erst es liegt an der refreshrate des Timers, aber egal wie ich das intervall einstelle man sieht nichts. woran kann das liegen? Edit: Ich habe gerade gemerkt, das meine generrierten objecte garnicht in der componentenliste eingetragen sind. werden diese dort allgemein nicht eingetragen? oder hat jede Unit eine andere Komponentenliste? gibt es eine Objectliste?? |
Re: threads - Parallele Bewegungen von Objecten in einem Ima
Noch einmal: Threads sind hier die unpassendste und - wie du langsam selbst bemerkt haben dürftest - schwierigste Lösung.
Erstelle am Anfang deine Objekte und füge sie in eine Liste ein, bei jedem Timer-Tick bewegst du dann jedes Objekt um die entsprechende Strecke vor. Fertig. |
Re: threads - Parallele Bewegungen von Objecten in einem Ima
Ok geht alles einwandfrei :)
Ich danke euch erstmal für alles, aber jetzt habe ich ein eher kleines Problem. Ich habe Aktionen auf dem Formkeydown Ereigniss, und die funktionieren auch. jetzt habe ich aber eine Checkbox in meinem Formular, und die ganzen Tastendrücke gehen über das keydownereigniss der Checkbox. wie kann ich zu formkeydown zurückkehren?
Delphi-Quellcode:
geht nicht, fragt mich nicht warum .
form1.setfocus;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz