07. november 2013 - 10:05 Der er 1 kommentar og
1 løsning

Brug af Funk. taster F1 - F12 mm.

HEJ,

I en applikation har jeg brug for at bruge funk taster F1-F12 samt ALT, SHIFT og Ctrl samt kombinationer heraf.

Mit program er bygget op med en MAIN_FORM, som har 8 billeder. Hvert billede har et Image-click-event, som styrer en form (og de dermed relaterede (sub-)forme.

Min tanke er at når bruger trykker F1 eller Ctrl-F1 eller ALT-CTR-F1  (har ikke besluttet mig endelig) svarer dette til et IMage1.Click-event, som "starter" formen for Image1 (som når bruger mise-klikker på Image1).

Jeg har på MAIN FORM gjort følgende i ONFORMKEY :

IF (ssAlt in Shift) AND (char(key) in ['1']) then
  BEGIN
      BLA BLA BLA ....
  END;
Dette "fanger" ALT 1 .

(IF Key = VK_F1 -- > virker ikke ! (tænkt som HJÆLPE-funk))


Udvider jeg funktionen:

IF (ssAlt in Shift) AND (ssCtrl in Shift) AND (char(key) in ['1']) then
  BEGIN
      BLA BLA BLA ....
  END;

Fanger ALT CTRL 1 ,


(ditto for F1 --> F10)

Men det fungerer KUN EEN gang. ALtså jeg får kun EET "shot". Når "bla bla  bla" returnerer er jeg låst. Musen fungerer stadig.

Museklikker jeg på Image1 får jeg korrekt visning af "Image1 form" og når jeg returnerer fra denne er ALT CTRL 1 Stadig uvirksom...

Hvad laver jeg forkert ?

Har prøvet med Appl.ProcessMessages uden resultat. 

KRistian
07. november 2013 - 18:20 #1
Hej Snestrup

Jeg bruger FormKeyDown

procedure TForm7.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  case Key of
    VK_F1  : Help.Vis(7);
    VK_F3  : SoegClick(Sender);
    VK_F5  : OpdaterClick(Sender);
    VK_F9  : Form62.ShowModal;
    VK_F11 : Form70.ShowModal;
    VK_F12 : Form73.Vise;
  end;
end;
08. november 2013 - 16:28 #2
HEJ,

Tak for det.

Med mindre modifikationer af koden synes det at funke.

Så hvis der ikke i løbet af en uge (fra dato) fremkommer en løsning, der synes mere elegant, kan du regne med point'ene.

KR
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