![]() |
Überschreibmodus für TEdit
Hi zusammen,
wie kann ich den Überschreibmodus von einem TEdit (z.B. im OnEnter) aktivieren? Also Text ist „ABC“ und ich drücke X, so muss „XBC“ rauskommen. Klar kann ich im OnChange oder OnKeypressed das „A“ löschen aber geht das nicht einfacher? |
Re: Überschreibmodus für TEdit
TEdit kapselt ja nur das Windows-Edit, und das kann out of the box keinen Überschreibmodus. Ich hab das in einem Fall so gelöst:
Delphi-Quellcode:
Die OnKeyPress-Routine stammt WIMRE von Peter Below. Das Zeug mit #13 dürfte wohl nur für Memos interessant sein.
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var AEdit: TEdit; begin Assert(Sender is TEdit); case Key of ' '..#126, #128..#255: begin AEdit := TEdit(Sender); if OverwriteMode and (AEdit.SelLength = 0) then AEdit.SelLength := 1; if (AEdit.SelLength > 0) and (AEdit.SelText[1] = #13) then AEdit.SelLength := 2; end; end; end; procedure TForm1.FormShortCut(var Msg: TWMKey; var Handled: Boolean); begin if Msg.CharCode = VK_INSERT then begin OverwriteMode := not OverwriteMode; Handled := True; end; end; HTH, Uli. |
Re: Überschreibmodus für TEdit
Hallo uligerhardt,
danke für die schnelle Antwort. Die Idee gefällt mir gut, da auch so der Cursor deutlicher wird. Also nochmals DANKE! Gruß Joe |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:40 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