24. september 2018 - 20:51Der er
5 kommentarer og 1 løsning
Delphi 2009 - CaretPos
TrichEdit og TMemo har begge en Procedure til fastlæggelse af en position i teksten. Denne Procedure findes desværre IKKE i TEdit. Er der nogen der kan beskrive hvordan jeg kan gøre dette i en Tedit. Min opgave er, at jeg fylder en TEdit med en Text fra en ekstern kilde og vil gerne have, at Caret står i slutningen af teksten for at ændre den så at sige baglæns. Håber at nogen kan hjælpe.
>falster. Tak for svar. Linket indeholder mange spændende ting, men desværre ikke noget der fungerede rigtigt. Jeg kom til gengæld til at tænke over, at jeg tidligere har brugt Windows API en del og det hjalp. Jeg har fundet følgende smukke (synes jeg selv) løsning:
>hrc: Tak for kommentar. SelStart og SelLength virker ikke - det flytter IKKE Cursor (Caret). Det link som falster sendte mig prøver bl.a dette. Løsningen fandt jeg selv - se mit indlæg.
Endvidere har jeg skrevet en Function der kan sætte Cursor et hvilket som helst sted i en tekst i TEdit eller TMaskEdit:
Function TextCaretPos(Sender: TControl; L: Integer): Boolean; // L = Den position Cursor skal sættes Var Ok: Boolean; I, Len: Integer; S: String; Begin Ok:=False; S:=''; If Sender Is TEdit Then S:=(Sender As TEdit).Text Else If Sender Is TMaskEdit Then S:=(Sender As TMaskEdit).Text; Len:=Length(S); Try If L>=Len Then Sender.Perform(WM_KeyDown, VK_END, 0) Else Sender.Perform(WM_KeyDown, VK_HOME, 0); If (L>1) And (L<Len) Then For I:=1 To L Do Sender.Perform(WM_KeyDown, VK_RIGHT, 0); Ok:=True; Except // End; TextCaretPos:=Ok; End;
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.