Szukanie w SynMemo

0

Wstyd sie przyznac ale mam problem z przerobieniem procedury szukającej tekst w Richedit, do postaci abu działała ona w SynMemo.

Procedura wygląda nstępująco :
procedure TForm1.FindDialog1Find(Sender: TObject);
var
FoundAt: LongInt;
StartPos, ToEnd: Integer;
begin
with RichEdit1 do
begin
if SelLength <> 0 then

  StartPos := SelStart + SelLength
else

  StartPos := 0;

{ ToEnd is the length from StartPos to the end of the text in the rich edit control }

ToEnd := Length(Text) - StartPos;

FoundAt := FindText(FindDialog1.FindText, StartPos, ToEnd, [stMatchCase]);
if FoundAt <> -1 then
begin
  SetFocus;
  SelStart := FoundAt;
  SelLength := Length(FindDialog1.FindText);
end;

end;
end;

procedure TForm1.Button1Click(Sender: TObject);

begin
FindDialog1.Position := Point(RichEdit1.Left + RichEdit1.Width, RichEdit1.Top);
FindDialog1.Execute;
end;

wziĄłem to z pomocy Delphi. I nie wiem jak przerobic żeby działało na SynMemo. Wstyd mi !! Ale prosze o pomoc.

0
procedure TfrmMain.dlgFindFind(Sender: TObject); // zdarzenie onFind W FindDialog 
var
  SearchSetup: TSynSearchOptions;
  Find: TFindDialog;
begin
  Find := TFindDialog(Sender);
  SearchSetup := [ssoPrompt];
  if not (frDown in Find.Options) then SearchSetup := SearchSetup + [ssoBackwards];
  if (frMatchCase in Find.Options) then SearchSetup := SearchSetup + [ssoMatchCase];
  if (frWholeWord in Find.Options) then SearchSetup := SearchSetup + [ssoWholeWord];
  if mcSynEdit.SearchReplace(Find.FindText, null, SearchSetup) = 0 then
    ShowMessage('Szukany element nie został znaleziony!');
end;

Copyright by Szymek, from NSP 3.0 beta...

0

Fajny ten NSP !!
Dodalem do buttona: Finddlg.Execute;
uruchamiam i chce szukac, pojawia sie to okienko do szukania, wpisuje tekst, wciskam szukaj a tu: Project Edytor.exe raised exception class EVariantError with message "Invalid variant type conversion"

Co zrobilem źle ?
POMOCY !!!!!!!!!!

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