OnKeyDown

Tags:    delphi

Nogle som kan forklare mig hvordan OnKeyDown kan virke?
Alså hvordan for jeg fx. når man trykker på H så kører den test_h();
??

Når jeg skal bruge up,down,left,right,return...
skriver jeg:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case Key of
VK_Up : up();
VK_Return : test();
end;
end;


Men hvordan kan jeg bruge normale bogstaver... og hvordan kunne jeg evt. ellers bruge det?
Hvordan kan jeg fx. få den til at kører Button1Click ?



Hmm hvorfor er denne tråd sat ind i:
Delphi forum - seneste diskussioner ?

det ved jeg ikke... men den passer vel meget godt :)




case Key of
Ord('H'): ShowMessage('H');
end; //Case



case Key of
Ord('H'): ShowMessage('H');
end; //Case



Yes.... danke...
Men hvordan kan jeg få den til at udføre fx. Button1Click Proceduren?



Som du kan se er Key defineret som en Word i din FormDown procedure! En Word er et usigneret 16-bit Integer (Integer = Helt tal)!

Funktionen Ord() konventere sådan set bare en Char (Bogstav) til et tal. Da Char egentligt er en Byte (unsigneret 8-bit Integer) kunne jeg sådan set lige så godt havde skrevet:

case Key of
72: ShowMessage('H');
end; //Case

Da, bogstavet H har nummer 72 i (ASCII kode)!



Som du kan se er Key defineret som en Word i din FormDown procedure! En Word er et usigneret 16-bit Integer (Integer = Helt tal)!

Funktionen Ord() konventere sådan set bare en Char (Bogstav) til et tal. Da Char egentligt er en Byte (unsigneret 8-bit Integer) kunne jeg sådan set lige så godt havde skrevet:

case Key of
72: ShowMessage('H');
end; //Case

Da, bogstavet H har nummer 72 i (ASCII kode)!



Yes... men hvordan kan jeg køre den procedure?
Når jeg koder WebCoder4 bruger jeg: @Button1Click


[Redigeret d. 24/03-04 18:53:25 af Kasper Svendsen]



Når du sætter et @ foran et objekt eller variant referere du tu til objektets eller variantens hukommelse adresse i din computers Ram lager! I stedet for at referere til selve objektet! Denne adresse er en Integer! Dette bliver oftets benyttet i forbejndelse med adressering af pointers!

[Redigeret d. 24/03-04 18:57:49 af Søren Klit Lambæk]



case Key of
72: Button1Click(nil);
end; //Case;

Nil betyder INGENTING! Det vil sige at den pointer som Sender i virkligheden er, peger på, ja... gæt selv... ingenting :)



Danke :)

Lav da et svar :)



case Key of
72: Button1Click(nil);
end; //Case;

Nil betyder INGENTING! Det vil sige at den pointer som "Sender" i virkligheden er, peger på, ja... gæt selv... ingenting
Når du sætter et "@" (Snabel A) foran et objekt eller variant referere du til objektets eller variantens hukommelse adresse i din computers Ram lager! I stedet for at referere til selve objektet! Denne adresse er en Integer! Dette bliver oftets benyttet i forbindelse med adressering af pointers!

--------------------------------------------------------------------------

Jeg kan ikke svare, men det gør ikke noget jeg er ligeglad med Ups og andre former for pointssystemer!

[Redigeret d. 24/03-04 19:02:53 af Søren Klit Lambæk]



hmm okay...
Jeg må virkelig have klokket i den da jeg oprettede denne tråd :)



Du kan kalde Button's OnClick event ved at kalde følgende:

Button.Click;


Med venlig hilsen
Dennis Lauritzen



t