Ich habe dich so verstanden, dass dein Programm im Hintergrund leuft, und du willst einen markierenden Text aus einer fremden Anwendung kriegen.
Wenn du eine Markierung aus deinem Programm bekommen willst, geht es glaube ich noch leichter.
Bei den Eingabefelder (TEdit) und ihre Erben (TRichEdit usw.) gibt es zwei Eigenschaften 'SelStart' und 'SelLength', bei einigen sogar 'SelText'.
Bsp.:
Code:
Var
Mark: String;
i: Integer;
begin
for i:=0 to MyForm.ComponentCount-1 do
if myForm.Components[i] is TEdit then with MyForm.Components[i] as TEdit do
if Focused then Mark:=Copy(Text,SelStart,SelLength);
end;
oder aus im Moment laufendem Programm
Code:
procedure TSDIAppForm.EditSearch1Execute(Sender: TObject);
Begin
if ResTxt.SelLength>0 then //ResTxt ist ein TRichText
FindDialog.FindText:=Trim(Copy(ResTxt.SelText,1,length(ResTxt.SelText)));
FindDialog.Execute;
end;