Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Gibt es eine Schnittstelle zur IDE? (https://www.delphipraxis.net/204188-gibt-es-eine-schnittstelle-zur-ide.html)

r29d43 4. Mai 2020 15:50

Gibt es eine Schnittstelle zur IDE?
 
Hallo,

ich habe vor einiger Zeit mal ein eigenes quasi PositionsMarker-Programm geschrieben und welches eigentlich auch schon ganz gut mit dem Delphi10 zusammenarbeitet. Trotzdem aber möchte ich das noch etwas perfektionieren. Hierfür nötig wäre dann allerdings so etwas wie eine Schnittstelle zur IDE, über die man diese IDE dann (per PostMessage oder wie sonst auch immer) ansprechen kann, um bestimmte Parameter bezüglich des gerade angezeigten .Pas-Files abzufragen. Oder auch um spezielle Befehle bzgl. dieses Files da hinschicken und dann ausführen lassen zu können. Zum Beispiel um die IDE zuerst zu fragen, ob dieser aktuelle .Pas-File gerade gesavt vorliegt, und wenn nicht, dann auch einen Befehl dort hinschicken zu können, um die IDE zu veranlassen, das doch dann bitte zu tun.

Schön wäre in diesem Sinne z.B. auch, wenn man den jeweils aktuell gerade angezeigten .Pas-File auch noch irgendwie schnell auslesen könnte, um dann darin (ohne ihn vorher immer zuerst saven zu müssen) bestimmte Stellen schnellst möglich suchen zu können etc...

Frage also: Gibt es so eine IDE-Schnittstelle überhaupt, die man für sowas nutzen könnte?

Thx im Voraus.

Gruß
...

himitsu 4. Mai 2020 15:51

AW: Gibt es eine Schnittstelle zur IDE?
 
OpenToolsAPI (OTA)

Du kannst ein DesignTime-Package erstellen, was in der IDE hängt und mit der IDE reden kann.
Und da kannst dir dann auch deine Schnittstellen nach außen reinbauen und durchreichen. (quasi eine Middleware)


http://docwiki.embarcadero.com/RADSt..._the_Tools_API
https://www.delphipraxis.net/197310-...nit-laden.html
https://www.delphi-treff.de/tipps-tr...pen-tools-api/
http://www.gexperts.org/open-tools-api-faq/
uvm.

r29d43 4. Mai 2020 16:07

AW: Gibt es eine Schnittstelle zur IDE?
 
Besten Dank für das Info.

Da werde ich gleich mal etwas die Nase reinstecken *g*

himitsu 4. Mai 2020 16:26

AW: Gibt es eine Schnittstelle zur IDE?
 
Einie direkte Hilfe gibt es nicht.

Die Units selbst sind die "offizielle" Dokumentation, vor allem die Kommentare in der ToolsAPI.pas
Package: DesignIntf.dcp und die restlichen Units im Verzeichnis C:\Programme\Embarcadero\RAD Studio\*\source\ToolsAPI.

Und dann gibt es noch paar Fremdkomponenten, die das Kapseln, und ein paar Tutorials und Blogs.

stahli 4. Mai 2020 16:42

AW: Gibt es eine Schnittstelle zur IDE?
 
Es ist schon recht mühsam, damit voran zu kommen...
Geduld braucht man auf jeden Fall.

mkinzler 4. Mai 2020 16:58

AW: Gibt es eine Schnittstelle zur IDE?
 
Dave's Development Blog muss bei diesem Thema auf jeden Fall genannt werden:
https://www.davidghoyle.co.uk/WordPress/?page_id=667

https://github.com/DGH2112?tab=repositories

dummzeuch 4. Mai 2020 16:59

AW: Gibt es eine Schnittstelle zur IDE?
 
Zitat:

Zitat von himitsu (Beitrag 1463638)
Eine direkte Hilfe gibt es nicht.

Die Units selbst sind die "offizielle" Dokumentation, vor allem die Kommentare in der ToolsAPI.pas
Package: DesignIntf.dcp und die restlichen Units im Verzeichnis C:\Programme\Embarcadero\RAD Studio\*\source\ToolsAPI.

Das war mal so (und davor, so zu Delphi 3 Zeiten, gab es tatsächlich auch mal halbwegs gute Doku), inzwischen gibt es durchaus auch offizielle Dokumentation zur OTAPI. Nur nicht so ausführlich, wie man das gerne hätte.

himitsu 4. Mai 2020 17:16

AW: Gibt es eine Schnittstelle zur IDE?
 
Der Support verweißt immernoch auf die Kommentare darin, wenn man was sucht.



Wobei ich das auch immer häufiger so mache, also via PasDoc für die Codevervollständigung und das HelpInsight direkt die Hilfe rein
und auch die internen Funktionen/Klassen so kommentiert.

Ich finde da als Vorteil, dass man bei der Benutzung direkt die Hilfe sieht
und bei der Entwicklung direkt auch die Hilfe mit vor Augen hat und sie somit bei Änderungen umgehend anpassen kann.

Also ein direkter Nachteil ist es nicht, auch wenn bei der ToolsAPI ein paar Beispiele dort drin fehlen
und es ein bissl braucht, bis man das grundlegende Prinzip erkannt hat.
> Nahezu alle grundlegenden Eintrittspunkte, da endet der Name des Interfaces mit "Services" und man kommt über Cast aus den Varialen BorlandIDEServices (zur Laufzeit) oder SplashScreenServices (beim Startvorgang der IDE) dort rein und dann hangelt man sich dort weiter durch.
> In den Units nametlich etwas suchen, was man möchte, und dann den Weg zum passende ServiceInterface rausfinden.

r29d43 5. Mai 2020 08:40

AW: Gibt es eine Schnittstelle zur IDE?
 
Danke allen.

Leider aber habe ich schon beim Minimal-Experten "Hello World", mit dem ich dieses Kapitel schnell mal einfacherweise beginnen wollte, das wahrscheinlich auch schon erst mögliche Problem, welches da nach dem Compilierversuch lautet:

[dcc32 Fataler Fehler] HelloWorldExpert_Unit.pas(5): F2613 Unit 'ToolsAPI' nicht gefunden.

bzgl. dieses Quellcodes:
Delphi-Quellcode:
unit HelloWorldExpert_Unit;

interface

uses ToolsAPI;                      

type
  THelloWorldExpert = class(TNotifierObject, IOTAWizard, IOTAMenuWizard)
    function GetIdString: string;
    function GetName: string;
    function GetState: TWizardState;
    function GetMenuText: string;

    procedure Execute;
  end;

...

Wie muss dieses ToolsAPI bei Delphi10.3.3 in der uses-clausel denn genau angegeben werden?

Habe die Delphi10.3.3-Prof Version.

dummzeuch 5. Mai 2020 09:15

AW: Gibt es eine Schnittstelle zur IDE?
 
Zitat:

Zitat von r29d43 (Beitrag 1463691)
[dcc32 Fataler Fehler] HelloWorldExpert_Unit.pas(5): F2613 Unit 'ToolsAPI' nicht gefunden.
[/DELPHI]


Wie muss dieses ToolsAPI bei Delphi10.3.3 in der uses-clausel denn genau angegeben werden?

Habe die Delphi10.3.3-Prof Version.

Project -> Options -> Packages -> Runtime Packages:
1. "Link with runtime packages" einschalten
2. Designide package zur Liste hinzufügen


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:53 Uhr.
Seite 1 von 3  1 23      

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