Einzelnen Beitrag anzeigen

Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#1

Überschreibmodus Simulieren in Edit

  Alt 18. Mai 2009, 20:58
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
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat