TDatumEdit - CaredPos setzen schlägt fehl!

Rund um die LCL und andere Komponenten
Antworten
Teekeks
Beiträge: 359
Registriert: Mi 27. Mai 2009, 20:54
OS, Lazarus, FPC: OpenSuse11.4 x86 (Lazarus: 0.9.30 FPC 2.4.2)
CPU-Target: x86
Wohnort: Cottbus

TDatumEdit - CaredPos setzen schlägt fehl!

Beitrag von Teekeks »

Hallo.
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;
Es wäre toll, wenn ihr mir helfen könntet.

gruß Teekeks

Antworten