![]() |
FormKeyDown Problem
Also ich bin nicht wirklcih gut in delphi aber das sag ja mal jedr de neu anfängt und zwar verstehe ich ncith wieso ich formkeydown nicht verwenden kann
ich habe meine programm so getestet das ich das bild mit 4 buttons steuern kann das geht wunderbar nur halt nicht mit dem befehl keydown ich habe dieses KeyPreview auf True und das ist meine fehler meldung:
Code:
hier mal mein quelltext:
Build
[Error] Unit1.pas(53): Undeclared identifier: 'FormKeyDown' [Error] Unit1.pas(53): ';' expected but '(' found [Error] Unit1.pas(53): ';' expected but ')' found [Error] Unit1.pas(56): Undeclared identifier: 'Image1' [Error] Unit1.pas(56): Missing operator or semicolon [Error] Unit1.pas(57): Missing operator or semicolon [Error] Unit1.pas(60): ';' expected but '.' found [Error] Unit1.pas(62): Declaration expected but end of file found [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
Code:
MFG Hanfy
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, jpeg; type TForm1 = class(TForm) Image1: TImage; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; procedure Button1Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Image1.Top := Image1.Top -5 end; procedure TForm1.Button3Click(Sender: TObject); begin Image1.Left := Image1.Left +5 end; procedure TForm1.Button2Click(Sender: TObject); begin Image1.Left := Image1.Left -5 end; procedure TForm1.Button4Click(Sender: TObject); begin Image1.Top := Image1.Top +5 end; procedure TForm1.FormKeyDown(Sender: TObject; var Key : Char); begin if key=#87 then Image1.Top := Image1.Top -5 begin end; end. |
Re: FormKeyDown Problem
Die Fehlermeldung sagt ja schon alles aus.
Zitat:
|
Re: FormKeyDown Problem
außerdem musst du noch im OnKeyDown-Ereignis im OI dein "Form1.OnKeyDown" eintragen...
Außerdem stehen normalerweise folgende Params dabei:
Delphi-Quellcode:
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
|
Re: FormKeyDown Problem
habe es nochmal geändert wie du es geschrieben hast aber es kommt immer noch die einen fehler und ich weiss nciht was ich machen soll sry
edit: @ flash erm.. ich weis nicht was du meinst mit Form1.OnKeyDown
Code:
Build
[Error] Unit1.pas(53): Undeclared identifier: 'FormKeyDown' [Error] Unit1.pas(53): ';' expected but '(' found [Error] Unit1.pas(53): ';' expected but ')' found [Error] Unit1.pas(56): Undeclared identifier: 'Image1' [Error] Unit1.pas(56): Missing operator or semicolon [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
Delphi-Quellcode:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin if key=#87 then Image1.Top := Image1.Top -5; end; end. |
Re: FormKeyDown Problem
Herzlich willkommen in der Delphi-PRAXiS, hanfy.
Setze deine Prozedur FormKeyDown einfach mal auf Kommentar, indem du sie in geschweifte Klammern einfasst. Anschließend wählst du im Object Inspector deine Form aus und erzeugst die Behandlungsroutine für das Ereignis OnFormKeyDown() durch einen Doppelklick auf den leeren Eintrag in der Ereignisliste des OI. In den jetzt von der IDE erzeugten Prozedur-Rahmen kannst du dann deinen Code eintragen und der erste Compiler-Fehler verschwindet. Freundliche Grüße vom marabu |
Re: FormKeyDown Problem
Zitat:
so nun kommt folgende fehler noch
Code:
edit ist in ordnung es klappt alles danke an euch allen vielen dank
Build
[Error] Unit1.pas(64): Incompatible types [Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas' |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:00 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-2025 by Thomas Breitkreuz