Ich möchte gerne per Doppelklick ein einzelnes Wort aus einem Memo Feld zur weiteren Verarbeitung "heraus kopieren".
Dies funktioniert mit dem unten gezeigten Code auch wunderbar.
Leider zeigt das Memo-Feld nach dieser Aktion ein unerwünschtes Verhalten, das ich gerne abstellen würde:
Immer wenn ich mit dem Mauszeiger aus dem "Showmessage-Feld" wieder in das Memo-Feld komme, dann wird der Text im Memo-Feld ab de Position "SelStart" markiert, als würde ich mit gedrückter linker Maustaste einen Textbereich markieren.
Wie kann ich dieses Verhalten des Memo-Feldes ausschalten?
Danke!
Aliobaba
Code: Alles auswählen
procedure TF_Text.NMemoTextDblClick(Sender: TObject);
var
sss : string;
begin
sss := F_Text.Wort_extrahieren ( NMemoText , NMemoText.SelStart ) ;
Showmessage (sss);
end;
Function TF_Text.Wort_extrahieren ( A_Memo : TMemo ; A_Selstart : integer ) : string;
var
i, selbeginn : integer;
txt, s : WideString;
begin
result := '';
txt := UTF8Decode(A_Memo.Text);
selbeginn := A_Selstart;
i := A_Memo.SelStart;
s := '';
repeat
result := s + result;
s := Copy(txt, i, 1);
Dec(i);
until (s <= ' ') or (i < 0);
i := A_Selstart + 1;
s := '';
repeat
result := result + s;
s := Copy(txt, i, 1);
Inc(i);
until (s <= ' ') or (s = '');
end;