procedure TfrmMain.SuchenText;
var
Position,
x,
i : Integer;
BEGIN
IF TextSuchen
then
BEGIN
dm.QryDok.next;
Position := dm.QryDok.RecNo;
SpBtnAbort.Visible := TextSuchen;
// Text in DB-Feld finden
FOR i := Position
to dm.QryDok.RecordCount
do
BEGIN
forms.Application.ProcessMessages;
SpBtnAbort.Visible := TextSuchen;
IF Textsuchen = false
then
EXIT;
x := pos(AnsiLowerCase(MemoText), AnsiLowerCase(frmText.dbMemo1.Text));
IF x > 0
then
BEGIN
frmText.Caption := '
Dokument-Text - ' + dm.QryDokDOKUMENTNAME.AsString;
frmText.show;
// Text im Memo finden
SuchenMemo(MemoText);
Break;
END;
dm.QryDok.Next;
END;
TextSuchen := FALSE;
SpBtnAbort.Visible := TextSuchen;
END;
END;
// Suche im Memofeld
procedure TfrmMain.SuchenMemo(Text:
String);
var
s :
String;
I,
J,
PosReturn,
SkipChars : Integer;
begin
s := Text;
for I := 0
to frmText.dbMemo1.Lines.Count
do
begin
forms.Application.ProcessMessages;
PosReturn := Pos(s, frmText.dbMemo1.Lines[I]);
if PosReturn <> 0
then {gefunden!}
begin
Skipchars := 0;
for J := 0
to I - 1
do
Skipchars := Skipchars + Length(frmText.dbMemo1.Lines[J]);
SkipChars := SkipChars + (I * 2);
SkipChars := SkipChars + PosReturn - 1;
// Gefundenen Text im Memo markieren
frmText.dbMemo1.SetFocus;
frmText.dbMemo1.SelStart := SkipChars;
frmText.dbMemo1.SelLength := Length(s);
Break;
end;
end;
end;