Zuerst muss ich sagen das ich mich maximal im Programmierwissenmittelfeld einsortieren würde, da ich mir absolut alles selbst beibringe und noch Schüler bin.
Nun zu meinem Problem:
Ich schreibe mir momentan ein Datumedit, welches u.A. den Punkt an der 3. und an der 6. Stelle selber eintragen soll.
Das funktioniert grundlegend auch, aber ich kann keinerlei verrückungen der CaredPos möglich. Wen ich es mit SelStart versuche zu setzen, steht danach 0 drinn (auch dann wen z.B.: SelStart:=3; dasteht).
Nachdem ich den Punkt eingefügt habe, Ist ja die CaredPos hinter dem Letzten Zeichen (bei mir immer 10) nun soll sie aber an Position 3.
Wie bekomme ich das hin?
Mein bisheriger Code:
Code: Alles auswählen
procedure TMyDatumEdit.KeyUp(var Key: Word; Shift: TShiftState);
var tmp:integer;
bla:char;
amsg:TLMKey;
Form:TCustomForm;
begin
inherited KeyUp(Key, Shift);
if (Text[3]<>'.')then
begin
Text:=UTF8Copy(Text,1,2)+'.'+Text[3]+UTF8Copy(Text,5,6);
for tmp:=10 downto 5 do
begin
// versuchtes workarround:
// 5x Linke Pfeiltaste drücken...
amsg.charcode:=VK_LEFT;
DoKeyPress(amsg);
end;
end;
end;
gruß Teekeks