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??