Hinzufügen von Funktionen im OI-Kontextmenü

Für Fragen rund um die Ide und zum Debugger
Antworten
Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6197
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ü

Beitrag von af0815 »

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 ?!
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Socke
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ü

Beitrag von Socke »

Vielleicht würde auch ein Patch angenommen.
af0815 hat geschrieben:
Mo 28. Sep 2020, 09:28
so muss ich mir jetzt im Quelltext den Namen suchen und dann über Find arbeiten.
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

Benutzeravatar
theo
Beiträge: 10462
Registriert: Mo 11. Sep 2006, 19:01

Re: Hinzufügen von Funktionen im OI-Kontextmenü

Beitrag von theo »

@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.
Dateianhänge
nbsearch.png
nbsearch.png (53.97 KiB) 2611 mal betrachtet

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6197
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ü

Beitrag von af0815 »

Ganz einfach :-)
Screenshot 2020-09-28 145826.jpg
Screenshot 2020-09-28 145826.jpg (71.07 KiB) 2571 mal betrachtet
Hier will ganz einfach das 'Find in Files' noch im Kontextmenü drinnen haben, mit dem Komponentennamen als default.
Screenshot 2020-09-28 150205.jpg
Screenshot 2020-09-28 150205.jpg (30.98 KiB) 2571 mal betrachtet
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).

Benutzeravatar
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ü

Beitrag von Winni »

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.

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1423
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ü

Beitrag von fliegermichl »

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.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6197
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ü

Beitrag von af0815 »

Winni hat geschrieben:
Mo 28. Sep 2020, 15:20
Ein Beispiel für die Verwendung des OI in der eigenen App gibt' unter
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).

Benutzeravatar
theo
Beiträge: 10462
Registriert: Mo 11. Sep 2006, 19:01

Re: Hinzufügen von Funktionen im OI-Kontextmenü

Beitrag von theo »

@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?

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6197
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ü

Beitrag von af0815 »

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 :D

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).

Benutzeravatar
theo
Beiträge: 10462
Registriert: Mo 11. Sep 2006, 19:01

Re: Hinzufügen von Funktionen im OI-Kontextmenü

Beitrag von theo »

af0815 hat geschrieben:
Mo 28. Sep 2020, 17:40
Nein, mein Anliegen hat nicht direkt damit zu tun.
Nicht direkt, aber wenn man schon so etwas wie dein Anliegen einbaut, könnte man auch das Ganze mal auf den Prüfstand stellen.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6197
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ü

Beitrag von af0815 »

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.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
theo
Beiträge: 10462
Registriert: Mo 11. Sep 2006, 19:01

Re: Hinzufügen von Funktionen im OI-Kontextmenü

Beitrag von theo »

af0815 hat geschrieben:
Mo 28. Sep 2020, 21:24
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.
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.
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.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6197
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ü

Beitrag von af0815 »

Also klarer kann man es einem nicht vor Augen führen 8) :lol: Im wahrsten Sinne des Satzes.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
theo
Beiträge: 10462
Registriert: Mo 11. Sep 2006, 19:01

Re: Hinzufügen von Funktionen im OI-Kontextmenü

Beitrag von theo »

af0815 hat geschrieben:
Di 29. Sep 2020, 12:40
Also klarer kann man es einem nicht vor Augen führen 8) :lol: Im wahrsten Sinne des Satzes.
Möchtest du damit etwa andeuten, dass du jetzt verstehen kannst, warum ich das besser finde? :wink:
Und ein bisschen hat es auch mit deinem Spezialanliegen zu tun. So ist die Suche nämlich generell "näher" und weniger umständlich.

Antworten