Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   IDE von "AUSSEN" steuern, ist das möglich? (https://www.delphipraxis.net/216316-ide-von-aussen-steuern-ist-das-moeglich.html)

taaktaak 9. Dez 2024 17:17

IDE von "AUSSEN" steuern, ist das möglich?
 
Moin, Moin,
habe vor einigen Tagen (mal wieder) GExperts installiert und bin am Erkunden der vielen kleinen Tools. Ohne das kritisieren zu wollen, die Optik ist nicht wirklich einheitlich und manchmal sehr eigenartig. Da könnte sehr viel an der Benutzeroberfläche vereinheitlicht werden. Nun gut, z.B. das Modul "To Do List" finde ich recht nützlich, aber das Handling ist nicht so ganz nach meinem Geschmack.
Nun überlege ich, ob es möglich ist, die Funktionalitäten in einem externen DelphiProgramm nachzubilden. Lesen der Dateien, suchen der ToDo-Einträge ist alles kein Problem. Ein besseres Grid ist auch verfügbar. Was fehlt sind
  • Öffnen einer Datei in der IDE
  • Setzen des Carets auf eine bestimmte Zeile im IDE-Fenster
Ist dies durch eine externe Anwendung, die natürlich prüfen muss, ob die IDE geöffnet ist, möglich? Meine bisherigen Versuche sind nicht erfolgreich: Das Öffnen einer bestimmten Datei könnte mit ShellExecute() erfolgen. Aber das Setzen des Caret?

dummzeuch 9. Dez 2024 18:07

AW: IDE von "AUSSEN" steuern, ist das möglich?
 
Du bist hiermit herzlich eingeladen, die UI von GExperts zu verbessern.
Der Sourcecode ist frei verfügbar und ich nehme Patches gerne entgegen. Und wer mehr als nur ein paar Zeilen beiträgt, kann auch Schreibrechte auf's Repository bekommen.

Was Deine Frage angeht:
Soweit ich weiß, gibt es keine Möglichkeit, die IDE fernzusteuern, außer natürlich auf dieselbe Weise wie jedes Windows-Programm: Durch Senden von Messages.

Was bei Delphi auch ginge: Man könnte ein Plugin schreiben, welches Befehle von einem externen Programm entgegennimmt und sie innerhalb der IDE mittels der OTAPI ausführt. Ich hatte mal ein Programm geschrieben, welches Scripte in der IDE ausführt:
https://sourceforge.net/projects/dzbdsscript/

Etwas ähnliches bietet auch cnPack.

Ein externes Programm könnte also z.B. ein Script generieren, das ausgeführt wird. Die Ausführung an sich müsste aber trotzdem irgendwie angestoßen werden.

taaktaak 10. Dez 2024 09:25

AW: IDE von "AUSSEN" steuern, ist das möglich?
 
Hallo Thomas,
vielen Dank für deine Antwort. Als Pensionär habe ich eigentlich reichlich Zeit und Lust das Projekt zu unterstützen. Schauen wir einmal, ob mein Wissen für so eine Aufgabe ausreicht und meine Vorstellungen von guter Benutzeroberfläche akzeptabel sind. Ich werde es mir überlegen und mich dann bei dir melden. Spontan sehe ich als "unüberwindbares" Hindernis schon einmal das Arbeiten mit einem Repository - da fehlen mir jegliche Grundkenntnisse :oops:

Heute Nacht habe ich folgende Idee entwickelt:

In die IDE wird eine "spezielle" Erweiterung eingebunden, die keine erkennbare Benutzeroberfläche hat und nur auf Aufträge der externen Anwendung wartet. Via Interprozesskommunikation werden nun von der externen Anwendung die Aufträge übermittelt, Informationen aus der IDE zu übermitteln oder bestimmte Aktionen in der IDE auszuführen. Dies erledigt die Erweiterung mittels OTAPI.

Dein Lösungsansatz scheint mir ebenfalls diese Vorgehensweise vorzuschlagen, oder?

himitsu 10. Dez 2024 09:32

AW: IDE von "AUSSEN" steuern, ist das möglich?
 
[deleted]

dummzeuch 10. Dez 2024 10:49

AW: IDE von "AUSSEN" steuern, ist das möglich?
 
Zitat:

Zitat von taaktaak (Beitrag 1544063)
Dein Lösungsansatz scheint mir ebenfalls diese Vorgehensweise vorzuschlagen, oder?

Ja. Hatte ich mich so unklar ausgedrückt?

taaktaak 10. Dez 2024 11:39

AW: IDE von "AUSSEN" steuern, ist das möglich?
 
Hallo Thomas,
nicht wirklich, ich wollte es dennoch bestätigt wissen ...
:)

Knutifrutti 17. Dez 2024 11:55

AW: IDE von "AUSSEN" steuern, ist das möglich?
 
Werden IDE-PlugIns in Delphi nicht erst über einen Aufruf im Hilfe-Menü gestartet oder gibt es auch PlugIns, die permenent im Hintergrund (Timer / Thread) laufen?
Wenn ja, wie ist der Weg dorthin?

himitsu 17. Dez 2024 12:41

AW: IDE von "AUSSEN" steuern, ist das möglich?
 
Es gibt für alles mögliche Events ... normalerweise hängt man da in was Entsprechendes sein Interface rein.

Sowie eigene Funktionen als Hotkey oder als MenuItem ins MainMenu oder viele ContextMenüs reinzuhängen.

dummzeuch 17. Dez 2024 18:07

AW: IDE von "AUSSEN" steuern, ist das möglich?
 
Zitat:

Zitat von Knutifrutti (Beitrag 1544366)
Werden IDE-PlugIns in Delphi nicht erst über einen Aufruf im Hilfe-Menü gestartet oder gibt es auch PlugIns, die permenent im Hintergrund (Timer / Thread) laufen?
Wenn ja, wie ist der Weg dorthin?

Nein. Alle IDE-Plugins werden erst mal aufgerufen (procedure Register) und je nach PlugIn registrieren sie sich dann bei der IDE für irgendwelche Funktionalitäten. Statt sich zu registrieren können dort sie auch "nur" einen Hintergrund-Thread starten oder einen Timer erzeugen.

GExperts benutzt z.B. beim Start einen Timer um einige Aufrufe erst verzögert, nach kompletter Initialisierung der IDE, zu machen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:24 Uhr.

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