![]() |
Imaqe nach Buttonprocedure weiterbewegen
Guten Tag,
ich schreibe zur Zeit an einer Art Spiel, als Abschlussprojekt in der Schule und bin dabei auf folgendes Problem gestoßen: Ich kann mein Image mit den Pfeiltasten bewegen, aber wenn ich dann auf einen Button klicke oder eine Showmessage aufrufe, kann ich danach mein Image nicht weiter bewegen.
Delphi-Quellcode:
Ich grübel seit 2 Tagen dran... aber eine Lösung kommt mir nicht auf...
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, jpeg, ExtCtrls, StdCtrls; type TForm1 = class(TForm) Image1: TImage; Image2: TImage; Button1: TButton; procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen} public { Public-Deklarationen} end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin case Key of VK_UP: begin if (image2.Canvas.pixels[image1.left-3,image1.top -3 ] in [clblack]) or (image2.Canvas.pixels[image1.left+53,image1.top -3 ] in [clblack]) then Image1.top:=image1.top+1 else image1.top:=image1.top-1; Key :=0; end; VK_DOWN: begin if (image2.Canvas.pixels[image1.left+53,image1.top +53 ] in [clblack]) or (image2.Canvas.pixels[image1.left-3,image1.top +53 ] in [clblack]) then Image1.top:=image1.top-1 else image1.top:=image1.top+1; Key :=0; end; VK_LEFT: begin if (image2.Canvas.pixels[image1.left-3,image1.top -3 ] in [clblack]) or (image2.Canvas.pixels[image1.left-3,image1.top +53 ] in [clblack]) then Image1.left:=image1.left+1 else image1.left:=image1.left-1; Key :=0; end; VK_RIGHT: begin if (image2.Canvas.pixels[image1.left+53,image1.top +53 ] in [clblack]) or (image2.Canvas.pixels[image1.left+55,image1.top -3 ] in [clblack]) then Image1.left:=image1.left-1 else image1.left:=image1.left+1; Key :=0; end; end; button1.visible:=true; end; procedure TForm1.FormCreate(Sender: TObject); begin button1.visible:=false; end; procedure TForm1.Button1Click(Sender: TObject); begin showmessage('Hallo'); button1.visible:=false; end; end. Hoffe auf Hilfe liebe Grüße Leisegang |
Re: Imaqe nach Buttonprocedure weiterbewegen
Hi!
Hat das Fenster danach noch den Fokus? Hast du KeyPreview des Forms auf true stehen? Ciao, Frederic |
Re: Imaqe nach Buttonprocedure weiterbewegen
Hallo,
ja Keypreview steht auf True. Der Fokus bleibt beim Button... |
Re: Imaqe nach Buttonprocedure weiterbewegen
Delphi-Quellcode:
der Fokus kann doch nicht beum Button bleiben :gruebel:
procedure TForm1.Button1Click(Sender: TObject);
begin showmessage('Hallo'); button1.visible:=false; end; |
Re: Imaqe nach Buttonprocedure weiterbewegen
Der Focus kann nicht beim Button sein, wenn Du ihn angeklickt hast (Visible=False : Kein Focus)
Setze doch nach dem "button1.visible:=false;" ein Form1.SetFocus |
Re: Imaqe nach Buttonprocedure weiterbewegen
Dann aber besser Self.SetFocus oder nur SetFocus.
|
Re: Imaqe nach Buttonprocedure weiterbewegen
habe es grade getestet und das form1.setfocus bringt auch nichts.
denn er geht geht garnicht mehr in die Funktion TForm1.FormKeyDown rein. Er reagiert auf keine Eingabe mit einer Taste. habe auch schon versucht in der Button1 Funktion die FromKeyDown wieder aufzurufen, aber da kommt dann nur eine Fehlermeldung "nicht genügend wirkliche Parameter FormKeyDown (39;[])" |
Re: Imaqe nach Buttonprocedure weiterbewegen
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin ShowMessage('Hallo'); Button1.Visible:=false; SetFocus; <<<<<<<< end; |
Re: Imaqe nach Buttonprocedure weiterbewegen
Liste der Anhänge anzeigen (Anzahl: 1)
Hi!
Also bei mir geht das einwandfrei. Im Anhang eine vereinfachte Version - ist das so, wie du es haben willst? Ciao, Frederic |
Re: Imaqe nach Buttonprocedure weiterbewegen
das setfocus; klappt nicht...
und ja die vereinfachte Version stimmt mit dem überein was ich haben will. Wie hast du das geschafft??? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz