Hallo,
der Überschreibmodus ist gar nicht Implementiert in den Delphi-Controls (wußte ich gar nicht, bis heute
).
Peter Below hat ein Workaround für alle Nachfahren von TCustomEdit geschrieben:
Delphi-Quellcode:
PROCEDURE TForm1.MaskEdit1KeyPress(Sender: TObject; VAR Key: Char);
BEGIN
IF (Sender IS TCustomEdit) AND Odd(GetKeyState(VK_INSERT)) THEN
WITH TCustomEdit(Sender) DO
IF SelLength = 0 THEN
CASE Key OF
' '..#126, #128..#255:
BEGIN
SelLength := 1;
IF (SelLength > 0) AND (SelText[1] = #13) THEN
SelLength := 2;
END;
END;
END;
Nun startet das Control im Einfügemodus und toggelt bei jeder
Betätigung der Einfügetaste zwischen Einfüge- und Überschreibmodus.
Möchte man im Überschreibmodus starten, dann muß man nur
NOT Odd(GetKeyState(VK_INSERT)) THEN
schreiben.
(Wobei scheinbar aber der Tastenstatus auch vor dem Start wirkt)
p.s.
Funktioniert auch mit einem Maskedit, allerdings nur solange keine EditMask definiert ist
Sonst hat natürlich Sharky recht.