Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   OnKeyDown: Wert nicht erfassen (https://www.delphipraxis.net/167327-onkeydown-wert-nicht-erfassen.html)

momo54321 24. Mär 2012 11:49

OnKeyDown: Wert nicht erfassen
 
Hi,
steh gerade etwas auf dem schlauch.
wie war noch gleich der wert in einem OnKeyDown, welcher beim OnKeyPress als Key := #0 definiert wird?

Klar umgehen könnte man es mit nem Copy Befehl, scheint mir aber nicht gerade elegant zu sein.
Delphi-Quellcode:
--> Copy(TextBox.Text,0,(Length(TextBox.Text)-1));
Delphi-Quellcode:
procedure TForm1.tbPLZKeyPress(Sender: TObject; var Key: Char);
begin
  if NOT (Key in [#08, '0'..'9']) then
    Key := #0;
end;
Delphi-Quellcode:
procedure TForm1.tbInetKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   case Key of
     VK_OEM_PERIOD: begin
       // Key soll nicht im Objekt (hier: tbInet) erfasst werden   /////////    nicht elegant --> tbInet.Text := Copy(tbInet.Text,0,(Length(tbInet.Text)-1));
       cbInetDot.SetFocus;
     end;
   end;
end;

jaenicke 24. Mär 2012 11:55

AW: OnKeyDown: Wert nicht erfassen
 
Du meinst
Delphi-Quellcode:
Key := 0;
?

momo54321 24. Mär 2012 15:00

AW: OnKeyDown: Wert nicht erfassen
 
ja genau :D
ohje... ich glaub jetzt bin ich unten durch^^

aber noch eine frage im anschluss.

Meine "Edit" (namens "tbInet") wird dennoch mit einem "VK_OEM_PERIOD" ("." >Punkt<) bestückt.
Das "Key := 0;" sollte doch eigentlich die Eingabe verhindern. oder?? zumindest möchte ich dies gerne.
("cbInetDot.SetFocus;" > wird wunderbar ausgeführt)

Delphi-Quellcode:
procedure TForm1.tbInetKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var Str : String;
begin
   case Key of
     VK_OEM_PERIOD: begin
       Key := 0;// Key soll nicht im Objekt (hier: tbInet) erfasst werden ///////// nicht elegant --> Copy(tbInet.Text),0,(Length(tbInet.Text)-1));
       cbInetDot.SetFocus;
     end;
   end;
end;

DeddyH 24. Mär 2012 15:22

AW: OnKeyDown: Wert nicht erfassen
 
Das geht im OnKeyPress aber einfacher. Wieso keine Kombination der beiden Events?


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz