windows - Indstilling af carret-position i et eksternt applikations tekstområde?

Indlæg af Hanne Mølgaard Plasc

Problem



Takket være Rob Kennedys svar på mit spørgsmål om, hvordan du indstiller Skype Chat vinduet tekst.


Men når jeg sætter teksten ved hjælp af


SendMessage(RichEditWnd,WM\_SETTEXT,0,Integer(PChar(Edit1.Text)));


Så når jeg klikker på Chat Rediger kontrol i Skype, er carret placeret i starten, og nogle klik er påkrævet for at få det 'rigtigt' igen.


Er der en Windows-meddelelse til indstilling af carret-stillingen? Eller atleast noget, som jeg kan bruge til at sætte Carret Position til slutningen af ​​teksten? :)

Bedste reference


Ja, der er: EM\_EXSETSEL. [9]


wParam skal være 0, og lParam bør være en pointer til en TCharRange struktur, der indeholder de første og sidste tegn i markeringen. Du vil have, at disse skal være lige (dvs. nul tegn valgt).


For eksempel,


var
  cr: TCharRange;
begin
  cr.cpMin := 2;
  cr.cpMax := 2;
  SendMessage(RichEdit1.Handle, EM\_EXSETSEL, 0, integer(@cr));


Indstiller hylsen lige før det tredje tegn i Rich Edit-kontrollen.