![]() |
VCL - spezielles Edit gesucht
Hallo,
suche ein Tokyo kompatibles Edit mit folgenden Fähigkeiten:
Grüße TurboMagic |
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.
|
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 :-( |
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. |
AW: VCL - spezielles Edit gesucht
Zitat:
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 |
AW: VCL - spezielles Edit gesucht
Hallo,
Delphi-Quellcode:
Das funktioniert nicht auch nicht im OnKeyUp.
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftSTate);
begin if Key = vk_Back then Key := 0; end; 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 |
AW: VCL - spezielles Edit gesucht
|
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; |
AW: VCL - spezielles Edit gesucht
Zitat:
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.
Wie sieht es mit anderen Tasten aus, die auch Zeichen löschen? Entf, Strg-X? Wie mit Einfügen aus der Zwischenablage?
TEdit hat eine Eigenschaft MaxLength, die man entspreched setzen kann.
Das geht in OnKeyPress. Auch hier stellt sich die Frage, wie man Einfügen aus der Zwischenablage behandeln soll.
Das ist der Default, da muss man nichts programmieren.
Selber machen kostet nix :wink: Ich habe gerade ein Bißchen Zeit und werde mal sehen, was ich da zusammenschrauben kann. |
AW: VCL - spezielles Edit gesucht
Zitat:
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 01:04 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-2025 by Thomas Breitkreuz