Hinzufügen von Funktionen im OI-Kontextmenü
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Hinzufügen von Funktionen im OI-Kontextmenü
Ich möchte im Objektinspektor, wenn man das Kontextmenü aufruft, eine bereits in Lazarus vorhanden Funktion aufrufen.
Warum: Im Komponentenbaum weerden die einzelnen grafischen Komponenten, wie zB. Label, Buttons angezeigt. Wenn ich wissen will, wo das im Quelltext verwendet wird - und ob es überhaupt noch verwendet wird - so muss ich mir jetzt im Quelltext den Namen suchen und dann über Find arbeiten.
Ich möchte daher das Find-Kommando mir gleich im OI-Kontextmenü anzeigen lassen und kann dann gleich suchen.
Nur wie komme ich an das Kontextmenü des OI von Lazarus innherhalb einer (Lazarus-Erweiterungs) Komponente heran ?!
Warum: Im Komponentenbaum weerden die einzelnen grafischen Komponenten, wie zB. Label, Buttons angezeigt. Wenn ich wissen will, wo das im Quelltext verwendet wird - und ob es überhaupt noch verwendet wird - so muss ich mir jetzt im Quelltext den Namen suchen und dann über Find arbeiten.
Ich möchte daher das Find-Kommando mir gleich im OI-Kontextmenü anzeigen lassen und kann dann gleich suchen.
Nur wie komme ich an das Kontextmenü des OI von Lazarus innherhalb einer (Lazarus-Erweiterungs) Komponente heran ?!
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Lazarusforum e. V.
- Beiträge: 3158
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Hinzufügen von Funktionen im OI-Kontextmenü
Vielleicht würde auch ein Patch angenommen.
Meinst du nur das einfache Suchen oder den Dialog aus dem Umbenennen des Bezeichners (Refactoring)?
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Re: Hinzufügen von Funktionen im OI-Kontextmenü
@af0815: Ich verstehe zwar nicht 100%ig, was du meinst, aber für mich ist die Suche auch etwas, was ich in Lazarus verbesserungsfähig finde.
An ein immer sichtbares (falls gewünscht) Suchwerkzeug gewöhnt man wirklich schnell und gerne.
Vielleicht sollte man die ganze Sucherei überdenken?
Anbei ein Bild von Netbeans, wie ich mir das ungefähr vorstelle.
An ein immer sichtbares (falls gewünscht) Suchwerkzeug gewöhnt man wirklich schnell und gerne.
Vielleicht sollte man die ganze Sucherei überdenken?
Anbei ein Bild von Netbeans, wie ich mir das ungefähr vorstelle.
- Dateianhänge
-
- nbsearch.png (53.97 KiB) 2657 mal betrachtet
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Hinzufügen von Funktionen im OI-Kontextmenü
Ganz einfach
So muss ich immer den Namen des Objektes händisch in den Find eintragen um zu sehen ob ich bei dem Objekt was im Programm ändere oder es überhaupt nicht mehr verwendet wird.
Hier will ganz einfach das 'Find in Files' noch im Kontextmenü drinnen haben, mit dem Komponentennamen als default.
Somit kann ich schnell suchen, wo ich den Button2 verwendet habe. Nachdem meistens die Ereignishandler den Namen des Objektes haben, kann man damit relativ schnell feststellen ob man das Objekt überhaupt noch verwendet. Auch wo man gegebenfalls Eigenschaften im Programm ändert. So muss ich immer den Namen des Objektes händisch in den Find eintragen um zu sehen ob ich bei dem Objekt was im Programm ändere oder es überhaupt nicht mehr verwendet wird.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: Hinzufügen von Funktionen im OI-Kontextmenü
Moin!
Ein Beispiel für die Verwendung des OI in der eigenen App gibt' unter
.../Lazarus/examples/objectinspector/oiexample.lpi
Winni
PS.: In Delphi-Kreisen wird bitterlich geweint, weil sie das nicht können.
Ein Beispiel für die Verwendung des OI in der eigenen App gibt' unter
.../Lazarus/examples/objectinspector/oiexample.lpi
Winni
PS.: In Delphi-Kreisen wird bitterlich geweint, weil sie das nicht können.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1435
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Hinzufügen von Funktionen im OI-Kontextmenü
Ich glaube nicht, daß das so einfach geht.
Wenn man sich den Quellcode anschaut, wird das Menu weitgehend hartcodiert erstellt.
components\IdeIntf\objectinspector.pp
Was natürlich bedeutet, dass du deine Funktion da mit reinbasteln kannst.
Wenn man sich den Quellcode anschaut, wird das Menu weitgehend hartcodiert erstellt.
components\IdeIntf\objectinspector.pp
Was natürlich bedeutet, dass du deine Funktion da mit reinbasteln kannst.
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Hinzufügen von Funktionen im OI-Kontextmenü
Das Beispiel kenne ich schon seit langen und das der OI Standalone ist, ebenso. Das ist für mich ein alter Hut.
Nein, ich will in den OI (objectinspector.pp) nur einen Kontextmenüeintrag injizieren und damit die Suche über den Find in Files Dialog (findinfilesdlg.pas) ansteuern. Und zwar IN Lazarus. Das ganze sollte natürlich als Komponente installierbar sein, weil es will ja eventuell nicht jeder.
Und wenn ich mi https://wiki.lazarus.freepascal.org/Ext ... E#Designer ansehe, so sehe ich noch keine Möglichkeit über einen Hook an den OI zu kommen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: Hinzufügen von Funktionen im OI-Kontextmenü
@af0815: Bevor du mich für bescheuert hältst: Ich habe schon ungefähr verstanden was du möchtest.
Ich nutze einfach jede Gelegenheit die sich mir bietet, um für ein Suchpanel in Lazarus Mehrheiten zu finden (Ja, CH-Demokratie)
Ich weiß, dass die Suche in Lazarus nur ein STRG+F entfernt ist, aber das ist mir manchmal schon zu weit weg.
Vielleicht lässt sich dein Anliegen ja auch mit einem Redesign der "Suche" besser verwirklichen?
Ich nutze einfach jede Gelegenheit die sich mir bietet, um für ein Suchpanel in Lazarus Mehrheiten zu finden (Ja, CH-Demokratie)
Ich weiß, dass die Suche in Lazarus nur ein STRG+F entfernt ist, aber das ist mir manchmal schon zu weit weg.
Vielleicht lässt sich dein Anliegen ja auch mit einem Redesign der "Suche" besser verwirklichen?
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Hinzufügen von Funktionen im OI-Kontextmenü
Eben nicht Strg-F. Grundlegend habe ich ein einfaches Suchfenster. Weil nach der ersten Suche ist bei den Ergebnissen auch die Möglichkeit für eine weitere Suche da. Komfortabel ist anders
Nein, mein Anliegen hat nicht direkt damit zu tun.
Nein, mein Anliegen hat nicht direkt damit zu tun.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Hinzufügen von Funktionen im OI-Kontextmenü
Schauen wir uns die Sache mal kurz an:
ide/FindInFilesDlg.pas dort wird die Suche parametriert. Während der Suche wird (eventuell) SearchFrm.pas angezeigt. Mit SearchResultView.pas wird das ganze angezeigt (und ist auch Dockable).
Was du jetzt willst, ist genaugenommen eine auf das lokale File bezogene Suche (ohne den restlichen Möglichkeiten von FindInFilesDlg), die visuelle Unterdrückung der gefundene Stellen, dafür das ganze mit ein paar Buttons zum springen ?
Ich habe es noch nicht ganz begriffen, was jetzt die deutliche Verbesserung sein soll ? Ich habe die Liste der Ergebnisse immer unter dem Editorfenster und springe dort mit der Maus zwischen den Einträgen. Allerding ist Lazarus seit Jahren mein Haupteditor. Deswegen kommen mir manche Sachen komplett normal vor.
Bei MS-SQL Editor habe ich sowas als schwebender tw. durchsichtiger Dialog. Ist auch gewöhnungsbedürftig. Ich behalte das mal im Hinterkopf und Bookmarke mir diesen Thread.
BTW: Mein Anliegen wird man nicht einbauen, ich habe auch noch andere Way of working probiert und komme da auch deinem Anliegen etwas näher. Das Problem ist nur, das die Search&Replace Sachen relativ tief im System sitzen und ich die Schnittstellen noch nicht isoliert gesehen habe, das man die von einer externen Komponente verwenden kann. Eine Sache für lange kalte Winterabende.
ide/FindInFilesDlg.pas dort wird die Suche parametriert. Während der Suche wird (eventuell) SearchFrm.pas angezeigt. Mit SearchResultView.pas wird das ganze angezeigt (und ist auch Dockable).
Was du jetzt willst, ist genaugenommen eine auf das lokale File bezogene Suche (ohne den restlichen Möglichkeiten von FindInFilesDlg), die visuelle Unterdrückung der gefundene Stellen, dafür das ganze mit ein paar Buttons zum springen ?
Ich habe es noch nicht ganz begriffen, was jetzt die deutliche Verbesserung sein soll ? Ich habe die Liste der Ergebnisse immer unter dem Editorfenster und springe dort mit der Maus zwischen den Einträgen. Allerding ist Lazarus seit Jahren mein Haupteditor. Deswegen kommen mir manche Sachen komplett normal vor.
Bei MS-SQL Editor habe ich sowas als schwebender tw. durchsichtiger Dialog. Ist auch gewöhnungsbedürftig. Ich behalte das mal im Hinterkopf und Bookmarke mir diesen Thread.
BTW: Mein Anliegen wird man nicht einbauen, ich habe auch noch andere Way of working probiert und komme da auch deinem Anliegen etwas näher. Das Problem ist nur, das die Search&Replace Sachen relativ tief im System sitzen und ich die Schnittstellen noch nicht isoliert gesehen habe, das man die von einer externen Komponente verwenden kann. Eine Sache für lange kalte Winterabende.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: Hinzufügen von Funktionen im OI-Kontextmenü
Naja, z.B. findet es, während du tippst, oder dich vertippst oder gar nicht so genau weißt, wie das heißt, was du eigentlich suchst.af0815 hat geschrieben: ↑Mo 28. Sep 2020, 21:24Ich habe es noch nicht ganz begriffen, was jetzt die deutliche Verbesserung sein soll ? Ich habe die Liste der Ergebnisse immer unter dem Editorfenster und springe dort mit der Maus zwischen den Einträgen. Allerding ist Lazarus seit Jahren mein Haupteditor. Deswegen kommen mir manche Sachen komplett normal vor.
Klar, muss man nicht unbedingt haben. Ist vielleicht auch etwas wichtiger bei HTML, PHP etc.
Aber wenn man daran gewöhnt ist, dann kommt einem dieses Suchfenster bei Lazarus schon ein wenig suboptimal und altbacken vor.
Ich habe hier mal einen kurzen Screencast hochgeladen.
http://theowp.bplaced.net/upload/nblaz.html
Bei Netbeans ist "Suche in Projekten" eine ganz andere Schiene, mit einer Liste der Fundstellen in allen Dateien als Ergebnis.
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Hinzufügen von Funktionen im OI-Kontextmenü
Also klarer kann man es einem nicht vor Augen führen Im wahrsten Sinne des Satzes.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: Hinzufügen von Funktionen im OI-Kontextmenü
Möchtest du damit etwa andeuten, dass du jetzt verstehen kannst, warum ich das besser finde?
Und ein bisschen hat es auch mit deinem Spezialanliegen zu tun. So ist die Suche nämlich generell "näher" und weniger umständlich.