![]() |
ssAlt+NUMPAD1
Hallo. Wenn ich ALT+NUMPAD1 Drücken wills muss eine aktion passieren.. das mache ich so..
Delphi-Quellcode:
Wenn ich aber die NUMPAD1 losslasse passiert folgendes (in eien Edit) ☺☻♥.. wie kann ich das abfangen und diesen zeichen löschen..
If Shift = [ssAlt] Then
begin // Blatt IF (Key = VK_NUMPAD1) OR (KEY = 49) Then begin cbx_blatt_bild.ItemIndex := 0; cbx_blatt_bild.OnChange(self); key := 0; end; |
Re: ssAlt+NUMPAD1
Bei Alt+Numpad werden sonderzeichen gezeichnet. z.b. alt + (0-0-1-6-9): ©
Du solltest diese Keys also nicht über ein Textfeld abfangen. |
Re: ssAlt+NUMPAD1
Du solltest diese Keys also nicht über ein Textfeld abfangen.
das lässt sich in meine Anwendung nicht anders realisieren.. wie kann ich die trotzdem abfangen? und blocken ? bzw. nur blocken... |
Re: ssAlt+NUMPAD1
Hmm... ich glaube du könntest die keys im OnKeyPress-Eregnis abfangen, indem du sie begrenzt. du solltest dir dazu die ganze ASCII-Tabelle ansehen. (
![]() |
Re: ssAlt+NUMPAD1
Eine mögliche Alternative ist der Einsatz einer TAction. Im OnCreate der Form kannst du den oder die ShortCuts zuweisen, im OnExecute der Action bei Bedarf das aktive Control überprüfen.
Delphi-Quellcode:
Gruß Hawkeye
// uses Menus
procedure TForm1.FormCreate (Sender: TObject); begin Action1.ShortCut := ShortCut(VK_NUMPAD1, [ssAlt]); Action1.SecondaryShortCuts.Add(ShortCutToText(ShortCut(Ord('1'), [ssAlt]))); end; procedure TForm1.Action1Execute (Sender: TObject); begin IF (ActiveControl = Edit1) THEN Caption := IntToStr(GetTickCount); end; |
Re: ssAlt+NUMPAD1
...oder ein Timer, der mit GetAsyncKeyState das ganze überprüft, in Abhängigkeit davon, ob die Form den Fokus hat.
|
Re: ssAlt+NUMPAD1
hallo.
1) Danke für ihre Hilfe! 2) Da ich nur Zahlen eingeben darf habe ich das so gelöst.
Delphi-Quellcode:
so sollte das problemlos funktionieren... oder ?
procedure Tf_schadensbilderbuchung_innen.led_schadennrKeyPress(
Sender: TObject; var Key: Char); var tr_integer: Integer; begin If (not TryStrToInt(Key,tr_integer)) and (Key <> chr(VK_BACK)) Then Key := Chr(0); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz