Der Smiley wird nicht gezeichnet, sondern ist eine Komponente vom Typ TImage im Formular. Im Objektinspektor steht die Eigenschaft Visible auf true. Ich könnte natürlich extra in der FormCreate-Methode ImSpieler.Visible := true machen, aber warum? Hilft dir das jetzt weiter?
Ja, hilft mir etwas weiter. Da war ich wohl wieder etwas zu ungenau. Dein Smily wird doch gezeichnet, denn iregendwie müssen ja die Pixel deines Monitors die entsprechenden Farben annehmen. In diesem Fall ist es so, daß eben das TImage (oder noch genauer: Der Inhalt des TImage) auf das Formular gezeichnet wird. Und zwar von Windows selbst. Das ist wieder eine Vereinfachung, sollte aber für den Anfang genügen.
Wenn du Visible auf true setzt, dann sagst du deinem Formular einfach nur: Da ist an TImage auf X/Y, das soll angezeigt werden. Und es wird angezeigt. Nicht mehr und nicht weniger.
Code:
procedure TSpielfeld.FormCreate(Sender: TObject);
begin
...
Station1.Enabled := false; Station2.Enabled := false;
Station3.Enabled := false; Station4.Enabled := false
...
Jetzt wird mir auch klarer, was der Smily bewirken soll.
Jetzt kann der Smiley (ImSpieler) perfekt bewegt werden.
Heisst das, dass dein Programm jetzt funktioniert? Dann Glückwunsch, aber es wundert mich doch etwas, weil es meiner Erfahrung mit dem Bewegen von Bitmaps auf einem Formular widerspricht. Aber wenn's klappt - dann will ich weder gegenargumentieren noch meckern. Never change a running system.
