/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Lukke forme med ESC
Fra : Kurt Guldbæk


Dato : 27-12-03 17:08

Hej NG!

Jeg vil gerne anvende ESC-knappen til at lukke mine forme med.
Jeg har forsøgt med OnKeyPress, men den sender jo tastetrykket til den
komponent, der har focus.
Det vil være lidt tungt at skulle kikke efter ESC i næsten alle procedurer.

Er der ikke en smart måde at gøre det på?

Mvh Kurt




 
 
Tom-Vidar Nilsen (27-12-2003)
Kommentar
Fra : Tom-Vidar Nilsen


Dato : 27-12-03 17:29

> Jeg vil gerne anvende ESC-knappen til at lukke mine forme med.
> Jeg har forsøgt med OnKeyPress, men den sender jo tastetrykket til den
> komponent, der har focus.
> Det vil være lidt tungt at skulle kikke efter ESC i næsten alle
procedurer.
>
> Er der ikke en smart måde at gøre det på?

Set KeyPreview på formen til true og bruk OnKeyPress på formen.




Kurt Guldbæk (27-12-2003)
Kommentar
Fra : Kurt Guldbæk


Dato : 27-12-03 19:48

Hej Tom!
Ja, den havde jeg tænkt på og også prøvet, men det fik jeg nu ikke til at
virke.
Nu vil jeg prøve igen!

Mvh Kurt


"Tom-Vidar Nilsen" <noone@kgb.ru> skrev i en meddelelse
news:rriHb.8608$Y06.134514@news4.e.nsc.no...
> > Jeg vil gerne anvende ESC-knappen til at lukke mine forme med.
> > Jeg har forsøgt med OnKeyPress, men den sender jo tastetrykket til den
> > komponent, der har focus.
> > Det vil være lidt tungt at skulle kikke efter ESC i næsten alle
> procedurer.
> >
> > Er der ikke en smart måde at gøre det på?
>
> Set KeyPreview på formen til true og bruk OnKeyPress på formen.
>
>
>



Tom-Vidar Nilsen (28-12-2003)
Kommentar
Fra : Tom-Vidar Nilsen


Dato : 28-12-03 03:14

> > > Jeg vil gerne anvende ESC-knappen til at lukke mine forme med.
> > > Jeg har forsøgt med OnKeyPress, men den sender jo tastetrykket til den
> > > komponent, der har focus.
> > > Det vil være lidt tungt at skulle kikke efter ESC i næsten alle
> > procedurer.
> > >
> > > Er der ikke en smart måde at gøre det på?
> >
> > Set KeyPreview på formen til true og bruk OnKeyPress på formen.
> >
> Hej Tom!
> Ja, den havde jeg tænkt på og også prøvet, men det fik jeg nu ikke til at
> virke.
> Nu vil jeg prøve igen!

Har du muligens en button med Cancel satt til true ?
Det er mulig den "stjeler" ESC, men KeyPreview skal virke.



Kurt Guldbæk (28-12-2003)
Kommentar
Fra : Kurt Guldbæk


Dato : 28-12-03 21:31

"Tom-Vidar Nilsen" <noone@kgb.ru> skrev i en meddelelse
news:m0rHb.7946$n31.141177@news2.e.nsc.no...
> > > > Jeg vil gerne anvende ESC-knappen til at lukke mine forme med.
> > > > Jeg har forsøgt med OnKeyPress, men den sender jo tastetrykket til
den
> > > > komponent, der har focus.
> > > > Det vil være lidt tungt at skulle kikke efter ESC i næsten alle
> > > procedurer.
> > > >
> > > > Er der ikke en smart måde at gøre det på?
> > >
> > > Set KeyPreview på formen til true og bruk OnKeyPress på formen.
> > >
> > Hej Tom!
> > Ja, den havde jeg tænkt på og også prøvet, men det fik jeg nu ikke til
at
> > virke.
> > Nu vil jeg prøve igen!
>
> Har du muligens en button med Cancel satt til true ?
> Det er mulig den "stjeler" ESC, men KeyPreview skal virke.


Nej, jeg har lige set efter, der er ingen knapper med Cansel = true.

Jeg har lavet følgende:

procedure FormKeyPress(Sender: TObject; var Key: Char);
begin
MessageDlg('Du tastede ' + Key + '!',
mtInformation, [mbOK], 0);
// If Key = #27 Then Close;
end;

Er der andre ting, der skal sættes op for at det fungerer?

Mvh Kurt



Tom-Vidar Nilsen (28-12-2003)
Kommentar
Fra : Tom-Vidar Nilsen


Dato : 28-12-03 22:28

> > > > > Jeg har forsøgt med OnKeyPress, men den sender jo tastetrykket til
> den
> > > > > komponent, der har focus.
> > > > > Det vil være lidt tungt at skulle kikke efter ESC i næsten alle
> > > > procedurer.
> > > > >
> > > > > Er der ikke en smart måde at gøre det på?
> > > >
> > > > Set KeyPreview på formen til true og bruk OnKeyPress på formen.
> > > >
> > > Hej Tom!
> > > Ja, den havde jeg tænkt på og også prøvet, men det fik jeg nu ikke til
> at
> > > virke.
> > > Nu vil jeg prøve igen!
> >
> > Har du muligens en button med Cancel satt til true ?
> > Det er mulig den "stjeler" ESC, men KeyPreview skal virke.
>
>
> Nej, jeg har lige set efter, der er ingen knapper med Cansel = true.
>
> Jeg har lavet følgende:
>
> procedure FormKeyPress(Sender: TObject; var Key: Char);
> begin
> MessageDlg('Du tastede ' + Key + '!',
> mtInformation, [mbOK], 0);
> // If Key = #27 Then Close;
> end;

Aha, overså at det var feil sted, prøv onKeyDown i steden.
Trykk på ctrl og klikk på vk_Escape, så finner du resten av konstantene (om
du har Pro eller bedre) eller bruk hjelp og søk etter Virtual key codes.

Eksempel :

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
Begin
Case Key of
VK_Escape: MessageDlg('Escape from hell', mtWarning, [mbOK], 0);;
VK_F1: MessageDlg('Help us all', mtInfo, [mbCancel], 0);;
End;
End;


Vennlig hilsen fra Norge.



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste