Wobei natürlich eine Klasse dafür wesentlich universeller geeignet wäre:
Delphi-Quellcode:
IWordFinder =
interface
['
{GUID}']
function GetWordAt(
const AStr :
string;
const APos : integer ):
string;
overload;
function GetWordAt(
const AStrings : TStrings; APos, ARow : integer ):
string;
overload;
end;
TWordFinder =
class( TInterfacedObject, IWordFinder )
public
constructor Create( AWhiteSpace :
array of char );
// WhiteSpace festlegen
function GetWordAt(
const AStr :
string;
const APos : integer ):
string;
overload;
function GetWordAt(
const AStrings : TStrings; APos, ARow : integer ):
string;
overload;
end;
function TWordFinder.GetWordAt(
const AStrings : TStrings; APos, ARow : integer ):
string;
begin
Result := GetWordAt( AStrings[ARow], APos );
end;
Der Aufruf wäre dann
Delphi-Quellcode:
function GetWordFromMemoCaretPos( AMemo : TMemo; AWordFinder : IWordFinder ): string;
begin
Result := AWordFinder.GetWordAt( AMemo.Lines, AMemo.CaretPosX, AMemo.CaretPosY );
end;
Zudem man diese Klasse dann auch gleich noch um so sinnvolle Methoden wie
GetAllWords
und
CountWords
erweitert
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)