ERLEDIGT
JA
JA
ANTWORTEN
8
8
ZUGRIFFE
1364
1364
EMPFEHLEN
-
Ich habe in meinem Formular die OnKeyDown-Methode verwendet. Wenn Pfeil nach links gedrückt wird, soll sich ein Image nach links bewegen. Das klappt. Wenn ich das Programm starte, ist ein BitButton ausgewählt (eingedrückt) und wenn ich dann Pfeiltasten drücke, wechselt die Auswahl der BitButtons (habe 5 stück im formular). Wie kann ich es machen, dass die Buttons nicht "eingedrückt" sind und ich somit Zugriff auf das Image habe?
-
09.02.09 07:55 #2
- Registriert seit
- Mar 2004
- Beiträge
- 441
-
Ich hab auf Buttons gewechselt, das war einfacher. Ein Screenshot:
Screenshot vom Formular
Nun sieht man links einen Smiley (ImSpieler), der mit den Pfeiltasten bewegt werden soll (KeyDown-Ereignis). Beim Start ist auf dem Formular der Button "1" markiert/eingedrückt (im Screen zu sehen). Wenn ich die Pfeiltasten drücke, wechselt die Markierung der Buttons, nicht jedoch die Position des Smileys.
Code :1 2 3 4 5 6 7 8
procedure TSpielfeld.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_LEFT then ImSpieler.Left := ImSpieler.Left -3; if Key = VK_RIGHT then ImSpieler.Left := ImSpieler.Left +3; if Key = VK_UP then ImSpieler.Top := ImSpieler.Top -3; if Key = VK_DOWN then ImSpieler.Top := ImSpieler.Top +3; end;
Was mache ich falsch? Wie könnte ich das Problem beheben?
-
11.02.09 17:26 #4
- Registriert seit
- Mar 2004
- Beiträge
- 441
-
-
12.02.09 00:02 #6
- Registriert seit
- Mar 2004
- Beiträge
- 441
Ja. Evtl. sogar noch mehr.
Deine Smily-Bewegung zeichnen. Und so lange du dich weiter ausschweigst über deinen Source, z.B. über so unwichtige Kleinigkeiten wie WO und WANN dein Smily gezeichnet wird, kann ich dir wohl auch nicht mehr weiterhelfen.
Nach Abarbeitung
ausführen.Code :1
Key := 0;
-
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?über so unwichtige Kleinigkeiten wie WO und WANN dein Smily gezeichnet wird
-
Die Buttons werden zum Programmstart deaktivert, somit können sie auch nicht ausgewählt / "eingedrückt" sein.Code :
1 2 3 4 5 6
procedure TSpielfeld.FormCreate(Sender: TObject); begin ... Station1.Enabled := false; Station2.Enabled := false; Station3.Enabled := false; Station4.Enabled := false end;
Jetzt kann der Smiley (ImSpieler) perfekt bewegt werden. Wenn er bestimmte Positionen erreicht, werden die Buttons aktiviert, ein externes Fenster wird geöffnet. Wenn dies geschlossen wird, wird der Button wieder deaktivert und ich kann weiter mit den Pfeiltasten arbeiten.Code :1 2 3 4 5 6 7 8 9 10 11 12
procedure TSpielfeld.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin case Key of VK_LEFT : ImSpieler.Left := ImSpieler.Left -4; VK_RIGHT : ImSpieler.Left := ImSpieler.Left +4; VK_UP : ImSpieler.Top := ImSpieler.Top -4; VK_DOWN : ImSpieler.Top := ImSpieler.Top +4; end; Key := 0; ... end;
-
16.02.09 09:04 #9
- Registriert seit
- Mar 2004
- Beiträge
- 441
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.
Jetzt wird mir auch klarer, was der Smily bewirken soll.
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.
Ähnliche Themen
-
Zauberstab = Auswahl, aber wie die Auswahl in einen Pfad umwandeln?
Von Ingolo im Forum PhotoshopAntworten: 3Letzter Beitrag: 06.06.06, 21:32 -
SDK Auswahl
Von realpk im Forum .NET ArchivAntworten: 2Letzter Beitrag: 01.03.05, 19:13 -
auswahl
Von flashdragon im Forum Algorithmen & Datenstrukturen mit JavaAntworten: 1Letzter Beitrag: 25.02.05, 16:31 -
Normale Auswahl -> Pfad Auswahl
Von C4T im Forum PhotoshopAntworten: 4Letzter Beitrag: 10.08.04, 13:23 -
auswahl
Von flake im Forum PhotoshopAntworten: 1Letzter Beitrag: 08.07.02, 19:58





Zitieren
Login





