Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi In gefiltertem Edit auch STRG-C/V zulassen (https://www.delphipraxis.net/46239-gefiltertem-edit-auch-strg-c-v-zulassen.html)

Opa Knack 21. Mai 2005 00:40


In gefiltertem Edit auch STRG-C/V zulassen
 
Hallo,

ich habe ein etwas dusseliges Problem:

Mit dem folgenden Code stelle ich sicher, dass in einem Editfeld nur hexadezimale Angaben gemacht werden können:

Delphi-Quellcode:
if not (Key in [#8,#35,#48 .. #57,#65 .. #70, #97 .. #102]) then Key := #0;
(das Ganze dann in Verbindung mit KeyPress)

Nun soll aber auch STRG-C und STRG-V funktionieren, was aber nicht gelingt, da diese Tastenkombinationen ja durch obigen Code geblockt werden.

Wie kann ich das doch noch hinkriegen?

Danke
Opa

Sharky 21. Mai 2005 06:03

Re: In gefiltertem Edit auch STRG-C/V zulassen
 
Hai Opa,

dafür kannst Du das .OnKeyDown Ereigniss benutzten. Dieses wird vom OnKeyPress aufgerufen.
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in [#8,#35,#48 .. #57,#65 .. #70, #97 .. #102]) then
  begin
    Key := #0;
  end;
end;

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Shift = [ssCtrl] then
  begin
     Case Key of
       Ord ('C') : Edit1.CopyToClipboard;
       Ord ('V') : Edit1.PasteFromClipboard;
       Ord ('X') : Edit1.CutToClipboard;
     end;
  end;
end;
Der Code hat aber einen "Nachteil". Es wird nicht geprüft was in der Zwichenablage für ein Text ist. Es wärden also auch "nicht Hex" Eingaben in das Edit kopiert werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 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