Avatar billede morten_s Nybegynder
02. august 2001 - 10:03 Der er 11 kommentarer og
3 løsninger

Tastetryk

Jeg har en form med speedbuttons på sat op som
et regnemaskinetastatur, og derfor vil jeg gerne
kunne modtage tastetryk fra det nummerisketastatur.

Men formen har ikke noget event som hedder OnKeyPresed

Hvordan laves dette ?
Avatar billede a_c Nybegynder
02. august 2001 - 10:05 #1
men en
onkeydown
Avatar billede morten_s Nybegynder
02. august 2001 - 10:07 #2
OnKeyDown findes ikke
Avatar billede morten_s Nybegynder
02. august 2001 - 10:08 #3
Det er i en Frame det er lavet, så OnKeyDown og OnKeyUp findes ikke
Avatar billede pellelil Nybegynder
02. august 2001 - 10:10 #4
Hvilken version af Delphi? Jeg har både: OnKeyDown, OnKeyPress, OnKeyUp og OnShortCut !?
Avatar billede a_c Nybegynder
02. august 2001 - 10:10 #5
Samme her
Avatar billede morten_s Nybegynder
02. august 2001 - 10:11 #6
Det er i Delphi5 og i en Frame
Avatar billede lectoc Nybegynder
02. august 2001 - 10:13 #7
En form har en property ved navn KeyPreview. Hvis du sætter denne til True, vil formen se tastatur-events inden den fokuserede komponent (online hjælpen har et eksempel). En frame har dog ikke denne property. Men sæt den på den form, der skal indeholde frame\'n, og deleger så videre til en metode på den frame.
Avatar billede morten_s Nybegynder
02. august 2001 - 10:17 #8
lectoc>> Jeg vil gerne have at framen kører uafhængit af hvilket program den hentes ind i så det er et så selvstændigt modul som muligt

Til musen kan man tilføje nedenstående
MouseMove(var m:twmmouse) ; message wm_MouseMove;

Findes der ikke noget tilsvarende tiltastatur ?
Avatar billede pellelil Nybegynder
02. august 2001 - 10:21 #9
Problemet er at tastetryk\" ses af en form da denne godt kan \"have focus\". En frame derimod har aldrig focus og vil derfor ikke se dine tastetryk.
Avatar billede morten_s Nybegynder
02. august 2001 - 11:05 #10
Ja det kan der selvfølgelig være noget om, og jeg sender nu OnKeyPress videre til min Frame.

Men jeg vil jo gerne have det til at virke sådan at SpeedButn. bliver nede når jeg trykker på den tast som hører til den pågældende knap.

jeg kan imidlertid ikke sætte SpdBtn.Down til true ?
Avatar billede morten_s Nybegynder
02. august 2001 - 11:07 #11
Jo man kan GroupIndex må ikke være = 0
Avatar billede zerohero Nybegynder
02. august 2001 - 12:10 #12
Brug din Tform\'s OnKeyUp procedure og sæt KeyPreview til True.

skriv dernæst følgende i FormKeyUp proceduren:

case key of
  vk_numpad1 : speedbutton1click(sender);
  vk_numpad2 : speedbutton2click(sender);
  vk_numpad3 : speedbutton3click(sender);
  vk_numpad4 : speedbutton4click(sender);

osv...

end;

Håber du kan bruge det

ZeroHero
Avatar billede morten_s Nybegynder
02. august 2001 - 12:11 #13
Men så skal jeg jo have SpdBtn op igen når den er trykket ned, og tataturknappen er sluppet.

Her må man kunne lave noget generelt kode som tester for alle spedBtn på den pågældende form med noget sender as..is er der ikke en som har et lille kode eksempel på en gennemtraversering af komponenterne på en form ?
Avatar billede zerohero Nybegynder
02. august 2001 - 12:20 #14
prøøv følgende...

KeyPress(var msg : Twmsyschar); message wm_syschar;

eller

KeyPressDown(var msg : Twmsyskeydown); message wm_syskeydown;

eller

KeyPressUp(var msg : Twmsyskeyup); message wm_syskeyup;


ZeroHero
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB