Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: TMemo; Wort an aktueller Cursorposition auslesen

  Alt 1. Feb 2015, 11:17
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)
  Mit Zitat antworten Zitat