Hallo!
Ich möchte gerne einen "Überschreibmodus" in einem Edit Simulieren, und habe mir bis jetzt volgendes ausgedacht:
Delphi-Quellcode:
procedure TMyDatumEdit.KeyDown(var Key: Word; Shift: TShiftState);
begin
MyOwnKeyDown(Key); //<-- nicht relevant
DeleteChar(Key);
inherited KeyDown(Key, Shift);
end;
{...}
procedure TMyDatumEdit.DeleteChar(Var Key:Word);
var tmp1,tmp2,test:string;
x:integer;
begin
if (Length(Text)=10) and (Key<>$00) and (Key<>$0D) and (Key<>$08) then
begin
// Überschreibmodus Simulieren:
x:=SelStart;
tmp1:=Text;
tmp2:=UTF8Copy(Text,0,SelStart);
SelLength:=19-SelStart;
test:=tmp2+SelText;
Text:=test;
SelStart:=x+1;
end;
end;
Nun, wenn ich das aufführe, und eine Taste Drücke, passiert nichts, außer das der Cursor an die erste Stelle springt.
Das Zeichen ersetzt nicht das welches es hätte ersetzen sollen.
Beispiel:
Wenn der Cusor auf Zeichen 3 steht, und ich die Taste "5" drücke, sollte das Zeichen, welches sich auf Position 4 befindet
durch das zeichen "5" ersetzt werden und der Cursor springt auf stelle 4.
So mein Wunsch zumindest.
Weis jemand wass ich falsch mache und wenn ja, könnte mir derjenige das auch mitteilen?
gruß Teekeks