AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Suche im Synedit

Ein Thema von pinky1990 · begonnen am 11. Mär 2010 · letzter Beitrag vom 11. Mär 2010
Antwort Antwort
pinky1990

Registriert seit: 15. Feb 2010
29 Beiträge
 
#1

Suche im Synedit

  Alt 11. Mär 2010, 20:07
Hey Leute
Ich hab bei meinen Programm ein Synedit und wollte eine Suche einbauen die aufgeht wie beim Editor.
Also man drückt Strg+F und die Suche geht auf.
Habe mal den Tactionmanager auf meine Form gezogen und das Popup mit dem Actionmanager verbunde, allerdings ist des Find dan immer Hellgrau und kann nicht angeklickt werden, und Strg+ F geht auch nicht. Wie mach ich so eine Suche und das am besten das Gesuchte Wort im Text noch Orang hinterlegt ist??
Lg
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Suche im Synedit

  Alt 11. Mär 2010, 20:29
Abend!

Was hast Du nun genau vorliegen? Du brauchst prinzipiell folgendes:

Einen Delphi-Referenz durchsuchenTFindDialog, wo der Benutzer den Suchtext eingeben kannst.
Eine Delphi-Referenz durchsuchenTAction-Instanz in Deiner ActionList (bzw. Deinem ActionManager, je nachdem was du vorliegen hast), die beim ShortCut "Strg+F" eingetragen hat und ihrem OnExecute Deine TFindDialog-Instanz aufruft (Delphi-Referenz durchsuchenTFindDialog.Execute). Falls Du der Action kein OnExecute zuorndest, ist das Feld immer grau. Gegebenenfalls könnte es nötig sein im OnUpdate die Action auf .Enabled := True zu schalten, aber im Normallfall nicht...

Viele Grüße
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
pinky1990

Registriert seit: 15. Feb 2010
29 Beiträge
 
#3

Re: Suche im Synedit

  Alt 11. Mär 2010, 21:06
Wow das ging ja Fix.

Oke ich hab jetzt den TFind Dialog hab ne Actionlist auf meiner Form und hab die Actionlist mit dem Button Verbunden wo die Suche sein soll.
Aber wie ich des mach Check ich nicht so
lg
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Suche im Synedit

  Alt 11. Mär 2010, 22:01
Naja da Rest steht ja in der Hilfe bzw. in den SynEdit-Beispielen:

- Aufruf des Suchen-Fensters (TFindDialog.Execute)
- Auslesen des Suchtextes aus dem Dialog, falls nicht auf Abbrechen geklickt wurde
- Suchen des Textes im SynEdit (SynEdit.SearchEngine als Ansatzpunkt)

Das Markieren der Treffer dürfte etwas kniffliger sein. Du könntest OnPaintTransient des SynEdit verwenden, dabei könntest Du den Code der OnPaintTransient-Demo ggf. adaptieren und auf deine Bedürfnisse anpassen.
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
pinky1990

Registriert seit: 15. Feb 2010
29 Beiträge
 
#5

Re: Suche im Synedit

  Alt 11. Mär 2010, 22:11
wie es im theoretischen funktioniert weis ihch
aber im praktishen nicht
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Suche im Synedit

  Alt 11. Mär 2010, 22:22
Ich würde Dir einen kurzen Beispielcode gerne schreiben, allerdings fehlt mir da die Zeit zu. Je konkreter Deine Frage ist (z.B. "Ich weiß nicht, wie ich den Aufruf des Suchdialoges formulieren soll. So habe ich es gemacht: [...] und es gab diesen Fehler: [...]") desto besser können wir dir helfen
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
pinky1990

Registriert seit: 15. Feb 2010
29 Beiträge
 
#7

Re: Suche im Synedit

  Alt 11. Mär 2010, 22:34
Oke dan Probier ich es mal bisschen genauer.
Also ich habe den Opendialog auf meine Form gezogen genauso wie die Actionlist
Dan hab cih bei der Action list des Dings da gemacht des Find wo Shortcut Strg+F zugewiesen ist.
Allerdings weis ich nicht wie ich des mit diesen Onexecute mach und das es nicht mehr Grau hinterlegt ist.
lg
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Suche im Synedit

  Alt 11. Mär 2010, 22:54
Okay. Schritt für Schritt.
  • FindDialog auf das Formular packen
  • In der ActionList Deine Action anlegen
  • Im Objektinspektor unter "Ereignisse" auf "OnExecute" klicken (Alternativ: Doppelklick auf die Action in der ActionList

Ins OnExecute der Action dann:
Delphi-Quellcode:
// Annahmen:
// Dein FindDialog heißt "FindDialog1"
// Dein SynEdit heißt "SynEdit1"
// Falls das anders ist, einfach in diesem Text umbenennen
if FindDialog1.Execute then
begin
  // FindAll gibt die Anzahl der Treffer zurück
  if SynEdit1.SearchEngine.FindAll(FindDialog1.FindText) > 0 then
  begin
    // Hier kannst Du Deiner Kreativität freien Lauf lassen :-P
    // .SearchEngine beinhaltet auch die Resultate der Suche
  end;
end;
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
pinky1990

Registriert seit: 15. Feb 2010
29 Beiträge
 
#9

Re: Suche im Synedit

  Alt 11. Mär 2010, 23:31
Zitat:
Delphi-Quellcode:
begin
  // FindAll gibt die Anzahl der Treffer zurück
  if SynEdit1.SearchEngine.FindAll(FindDialog1.FindText) > 0 then
Was muss hier rein?
Zitat:
Delphi-Quellcode:
begin
    // Hier kannst Du Deiner Kreativität freien Lauf lassen :-P
    // .SearchEngine beinhaltet auch die Resultate der Suche
  end;
und hier?
Sorry falls ich so blöd frag
lg
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:46 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