Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi SynEdit durchsuchen (https://www.delphipraxis.net/47599-synedit-durchsuchen.html)

tail 13. Jun 2005 18:01


SynEdit durchsuchen
 
Ich will meinen SynEdit durchsuchen lasen. Mit dem normalen Suchen Dialog, geht das nicht. Dann ahbe ich den genommen, der bei SynEdit dabei ist. Und den Bei SearchEngine angegeben. Was muss ich jetzt machen, damit ich damit das Dokument durchsuchen kann?

s.h.a.r.k 13. Jun 2005 19:01

Re: SynEdit durchsuchen
 
Also: Du hast ja schon eine SynEdit- und eine SynEditSearch-Komponente. Dann weißt du im Objektinspektor dem SynEdit die SynEditSearch zu - und zwar als SearchEngine. Dann brauchst du auch noch einen normalen FindDialog. Beim OnFind-Ereignis des FindDialogs schreibst du dann folgendes rein:
Delphi-Quellcode:
procedure TCreatorForm.FindDialogFind(Sender: TObject);
var
  rOptions:  TSynSearchOptions;
  dlg:       TFindDialog;
  sSearch:   String;
begin
  if (Sender = ReplaceDialog) then
    dlg := ReplaceDialog
  else
    dlg := FindDialog;
  sSearch := dlg.FindText;
  if Length(sSearch) = 0 then begin
    Beep;
    Messagedlg('Bitte geben Sie einen Suchbegriff ein.', mtInformation, [mbOk], 0);
  end else begin
    rOptions := [];
    if not (frDown in dlg.Options) then
      Include(rOptions, ssoBackwards);
    if frMatchCase in dlg.Options then
      Include(rOptions, ssoMatchCase);
    if frWholeWord in dlg.Options then
      Include(rOptions, ssoWholeWord);
    if Memo.SearchReplace(sSearch, '', rOptions) = 0 then begin
      Beep;
      Messagedlg('Der Suchbegriff "' + sSearch + '" konnte nicht gefunden werden!', mtInformation, [mbOk], 0);
    end;
  end;
end;

tail 13. Jun 2005 19:40

Re: SynEdit durchsuchen
 
Zitat:

Zitat von s.h.a.r.k
Also: Du hast ja schon eine SynEdit- und eine SynEditSearch-Komponente. Dann weißt du im Objektinspektor dem SynEdit die SynEditSearch zu - und zwar als SearchEngine. Dann brauchst du auch noch einen normalen FindDialog. Beim OnFind-Ereignis des FindDialogs schreibst du dann folgendes rein:
Delphi-Quellcode:
procedure TCreatorForm.FindDialogFind(Sender: TObject);
var
  rOptions:  TSynSearchOptions;
  dlg:       TFindDialog;
  sSearch:   String;
begin
  if (Sender = ReplaceDialog) then
    dlg := ReplaceDialog
  else
    dlg := FindDialog;
  sSearch := dlg.FindText;
  if Length(sSearch) = 0 then begin
    Beep;
    Messagedlg('Bitte geben Sie einen Suchbegriff ein.', mtInformation, [mbOk], 0);
  end else begin
    rOptions := [];
    if not (frDown in dlg.Options) then
      Include(rOptions, ssoBackwards);
    if frMatchCase in dlg.Options then
      Include(rOptions, ssoMatchCase);
    if frWholeWord in dlg.Options then
      Include(rOptions, ssoWholeWord);
    if Memo.SearchReplace(sSearch, '', rOptions) = 0 then begin
      Beep;
      Messagedlg('Der Suchbegriff "' + sSearch + '" konnte nicht gefunden werden!', mtInformation, [mbOk], 0);
    end;
  end;
end;

Aber ich muss erstmal den Such-Dialog aufrufen, wie mache ich das?

tail 14. Jun 2005 13:58

Re: SynEdit durchsuchen
 
Kann mir keiner sagen, wie ich den Dialog aufrufe?

Luckie 14. Jun 2005 14:03

Re: SynEdit durchsuchen
 
Delphi-Quellcode:
MeinsuchDialog.Execute
Wie jeden anderen Dialog auch nehme ich mal an. :roll:

BrunoT 14. Jun 2005 14:11

Re: SynEdit durchsuchen
 
Hi tail

Mein Editor mit Syntaxhighlighting

lade dir mal den Quelltext.

mfg

BrunoT

tail 14. Jun 2005 15:15

Re: SynEdit durchsuchen
 
Zitat:

Zitat von Luckie
Delphi-Quellcode:
MeinsuchDialog.Execute
Wie jeden anderen Dialog auch nehme ich mal an. :roll:

Nö :roll: Das gibt nen Fehler (unbekannt)

EDIT:
@BrunoT: Da wird ein RichEdit benutzt.

tail 21. Jun 2005 12:48

Re: SynEdit durchsuchen
 
Kann mir keiner helfen?

Matze 21. Jun 2005 12:54

Re: SynEdit durchsuchen
 
Nutz doch mal die Suche, die liefert u.a. das hier.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz