|
| 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.
| |
|
|