Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

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/)
-   -   VCL - spezielles Edit gesucht (https://www.delphipraxis.net/200803-vcl-spezielles-edit-gesucht.html)

TurboMagic 27. Mai 2019 19:59

VCL - spezielles Edit gesucht
 
Hallo,

suche ein Tokyo kompatibles Edit mit
folgenden Fähigkeiten:
  • es soll immer im Überschreiben Modus sein
  • die Rücktaste muss deaktiviert werden können
    oder kein Zeichen löschen
  • es soll eine feste Textlänge (32 oder 64) definiert
    werden können
  • eingegebene Zeichen sollen gefiltert werden können
    um in einem Fall nur Hex Zeichen zu akzeptieren
  • Es soll im OnExit nicht meckern, wenn weniger als
    die maximale Zeichen Zahl eingegeben wurde
  • Vorzugsweise kostenlos aber nicht Voraussetzung

Grüße
TurboMagic

Aviator 27. Mai 2019 22:41

AW: VCL - spezielles Edit gesucht
 
Ich glaube kaum, dass es eine TEdit Komponente gibt, die dir genau das bietet. Aber mal ehrlich. Die Funktionen hast du doch in nicht mal einer Stunde mit einem normalen TEdit selbst programmiert.

TurboMagic 28. Mai 2019 05:38

AW: VCL - spezielles Edit gesucht
 
Wenn du mir sagst wie...
Habe im Keypressednach vkBack geschaut
und wenn gedrückt key auf #0
gesetzt, hat aber trotzdem
Zeichen gelöscht :-(

jziersch 28. Mai 2019 06:10

AW: VCL - spezielles Edit gesucht
 
Mit einem MaskEdit sollte sich das eigentlich realisieren lassen.

Für die Sondertasten abfrage musst Du OnKeyUp und OnKeyDown überschreiben.

TurboMagic 28. Mai 2019 07:28

AW: VCL - spezielles Edit gesucht
 
Zitat:

Zitat von jziersch (Beitrag 1433227)
Mit einem MaskEdit sollte sich das eigentlich realisieren lassen.

Für die Sondertasten abfrage musst Du OnKeyUp und OnKeyDown überschreiben.

Hallo,

TMaskEdit habe ich schon ausprobiert. Wird zuweing eingegeben gibt es immer eine
Ferhlermeldung im OnExit, ohne , dass ich vorher eingreifen konnte.

Ich werde aber Mal TEdit mit OnKeyDown/KeyUp statt KeyPressed ausprobieren.

Grüße
TurboMagic

TurboMagic 28. Mai 2019 07:45

AW: VCL - spezielles Edit gesucht
 
Hallo,

Delphi-Quellcode:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftSTate);
begin
  if Key = vk_Back then
    Key := 0;
end;
Das funktioniert nicht auch nicht im OnKeyUp.
Die Zeile mit der Zuweisung wird zwar erreicht (Breakpoint zeigt das), das
eingegebene Zeichen wird aber trotzdem gelöscht.

Und wie ich ein Edit dauerhaft in Überschreibenmodus umstelle, weiß ich auch noch nicht.

Grüße
TurboMagic

Klaus01 28. Mai 2019 07:52

AW: VCL - spezielles Edit gesucht
 
.. das hilft Dir nicht? -> http://www.delphigroups.info/2/be/163347.html

Grüße
Klaus

Michael II 28. Mai 2019 08:49

AW: VCL - spezielles Edit gesucht
 
Hast du's mit OnKeyPress versucht? Zum Beispiel so:

Delphi-Quellcode:
procedure TForm103.Edit1KeyPress(Sender: TObject; var Key: Char);
var cursorpos : integer;
begin
  // Filter:
  if not ( key in ['0'..'9', 'A'..'F', 'a'..'f'] ) then
  begin
    key := #0;
    exit;
  end;

  // Überschreibmodus:
(PeterBelow macht das in #9 [unten] viel besser ;-))
  cursorpos := Edit1.SelStart + Edit1.SelLength;
  if cursorpos < length(edit1.text) then Edit1.Text := Copy(Edit1.Text,1,cursorpos) +
  Copy(Edit1.Text,cursorpos+2,maxint);
  Edit1.SelStart := cursorpos;
end;

peterbelow 28. Mai 2019 10:12

AW: VCL - spezielles Edit gesucht
 
Zitat:

Zitat von TurboMagic (Beitrag 1433212)
Hallo,

suche ein Tokyo kompatibles Edit mit
folgenden Fähigkeiten:

Gehen wir mal der Reihe nach durch. Leider sind die Sepzifikationen, wie üblich, ziemlich unvollständig :wink:.
  • es soll immer im Überschreiben Modus sein

Das läßt sich erreichen, wenn man in OnKeyPress SelLength auf 1 setzt, wenn das Zeichen kein Steuerzeichen ist, SelLength nicht 0 ist und SelStart nicht gleich GetTextLength ist.
  • die Rücktaste muss deaktiviert werden können oder kein Zeichen löschen

Wie sieht es mit anderen Tasten aus, die auch Zeichen löschen? Entf, Strg-X? Wie mit Einfügen aus der Zwischenablage?
  • es soll eine feste Textlänge (32 oder 64) definiert werden können

TEdit hat eine Eigenschaft MaxLength, die man entspreched setzen kann.
  • eingegebene Zeichen sollen gefiltert werden können um in einem Fall nur Hex Zeichen zu akzeptieren

Das geht in OnKeyPress. Auch hier stellt sich die Frage, wie man Einfügen aus der Zwischenablage behandeln soll.
  • Es soll im OnExit nicht meckern, wenn weniger als die maximale Zeichen Zahl eingegeben wurde

Das ist der Default, da muss man nichts programmieren.
  • Vorzugsweise kostenlos aber nicht Voraussetzung

Selber machen kostet nix :wink:

Ich habe gerade ein Bißchen Zeit und werde mal sehen, was ich da zusammenschrauben kann.

TurboMagic 28. Mai 2019 10:49

AW: VCL - spezielles Edit gesucht
 
Zitat:

Zitat von Klaus01 (Beitrag 1433231)
.. das hilft Dir nicht? -> http://www.delphigroups.info/2/be/163347.html

Grüße
Klaus

Hallo,

das ermöglich zumindest dauerhaft Überschreibmodus zu aktivieren
und auch vk_delete kann im OnKeyDown gefiltert werden, nur vk_Back Filterung wird dort
ignoriert.

Danke schon mal für diese teilweise Hilfe!

Grüße
TurboMagic


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:48 Uhr.
Seite 1 von 4  1 23     Letzte »    

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