Kolejny raz FIND

0

szukalem i nie znalazlem odpowiedzi dlatego daje tego posta:
Jest problem z bledami
KOD:

procedure TForm1.FindDialog1Find(Sender: TObject);

var
FoundAt: LongInt;
StartPos, ToEnd: Integer;
begin
with SynMemo1 do
begin
if SelLength <> 0 then //PIERWSZY BLAD (Undeclared identifier: 'SelLength' oraz Comparing signed and unsigned types - widened both operands)
StartPos := SelStart + SelLength
else

StartPos := 0;

ToEnd := Length(Text) - StartPos;

FoundAt := FindText(FindDialog1.FindText, StartPos, ToEnd, //DRUGI BLAD (Undeclared identifier: 'FindText') [stMatchCase]);
if FoundAt -1 then //TRZECI BLAD (Type of expression must be BOOLEAN)
begin
SetFocus;
SelStart := FoundAt;
SelLength := Length(FindDialog1.FindText);
end;
end;

0

SynMemo nie ma SelLength widocznie, więc musisz to zastąpić liczeniem znaków w linijkach. Sam szukaj a nie używaj Findtext.

0

if FoundAt -1 then //TRZECI BLAD (Type of expression must be Boolean)

Wartość wyrażenia musi być typu Boolean, czyli True lub False, a Ty próbujesz podstawić liczbę

Sorki nie doczytałem do końca. Powinno być

if FoundAt = -1 then

0

<font color="green">SynMemo nie ma SelLength widocznie, więc musisz to zastąpić liczeniem znaków w linijkach. Sam szukaj a nie używaj Findtext.</span>

SelLength można zdaje się zastąpić przez SelEnd - trzeba pokombinować... SelLength = SelStart - SelEnd... czyż nie?

1 użytkowników online, w tym zalogowanych: 0, gości: 1