Einzelnen Beitrag anzeigen

Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Text Kopieren mittels Shift Ende

  Alt 24. Jun 2007, 20:09
Zitat von bitsetter:
Der Cursor befindet sich danach am Ende der zur Hälfte markierten Zeile.
Ja die Hälfte des Textes ist danach blau hinterlegt.

Beim Windows Editor zumindest, könnte man ansonsten noch mit
Delphi-Quellcode:
var
  SelStart, SelEnd : Integer;
begin
  sleep(2000);
  //lesen
  SelStart:= 0;
  SelEnd:= 0;
  SendMessage(WindowFromPoint(mouse.CursorPos), EM_GETSEL, Integer(@SelStart), Integer(@SelEnd));
  caption:= inttostr(SelStart)+' '+ inttostr(SelEnd);

  //selektieren
  SelStart:= 3;//Beispiel
  SelEnd:= 10;
  SendMessage(WindowFromPoint(mouse.CursorPos), EM_SETSEL, SelStart, SelEnd);
die Länge und die Position des selektierten Textes auslesen oder setzen. Eventuell kannst du dich ja damit behelfen, wenn du dazwischen noch VK_END sendest.

EDIT: Also so in etwa:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  SelStart, SelEnd : Integer;
  EdtHandle: HWND;
begin
  sleep(2000);
  EdtHandle:= WindowFromPoint(mouse.CursorPos);
  SelStart:= 0;
  SelEnd:= 0;
  SendMessage(EdtHandle, EM_GETSEL, Integer(@SelStart), 0);
  keybd_event(VK_end,0,0,0);
  keybd_event(vk_end,0, keyeventf_keyup, 0);
  sleep(100);
  SendMessage(EdtHandle, EM_GETSEL, 0, Integer(@SelEnd));
  SendMessage(EdtHandle, EM_SETSEL, SelStart, SelEnd);
end;
Mit dem Sleep() ist es zwar nicht gerade das Wahre, aber zum Testen reicht es erst einmal.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat