AGB  ·  Datenschutz  ·  Impressum  







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

Delphi IDE, Explorer

Ein Thema von toms · begonnen am 14. Apr 2004 · letzter Beitrag vom 18. Apr 2004
Antwort Antwort
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#1

Delphi IDE, Explorer

  Alt 14. Apr 2004, 17:43
Hi,

Gibt es eine Delphi Erweiterung (Expert), bei welcher man aus der IDE direkt den Ordner des
aktuell geöffneten Verzeichnisses im Explorer anzeigen kann?
Thomas
  Mit Zitat antworten Zitat
Tryer

Registriert seit: 16. Aug 2003
200 Beiträge
 
#2

Re: Delphi IDE, Explorer

  Alt 14. Apr 2004, 17:57
Einen Experten der den Explorer ergänz kenn ich nicht, daher pack ich mir immer die beiden folgenden Einträge zu den Tools (Tools -> Tools konfigurieren -> Hinzufügen):

Titel: Verzeichnis Editordatei
Program: Explorer.exe
Parameter: $PATH($EDNAME)

Titel: Projekt-Verzeichnis
Program: Explorer.exe
Parameter: $PATH($EXENAME)

Halt längst nict so komfortabel wie deine Idee, aber zumindest komm ich damit etwas schneller ins gewünschte Verzeichnis.

MfG,
Tryer
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#3

Re: Delphi IDE, Explorer

  Alt 14. Apr 2004, 18:42
Hi,

Danke für deine Antwort!
Sowas hat mir auch vorgeschwebt.
Ist auch nicht schlecht, das Verzeichnis über "Tools" zu öffnen.

Vielleicht gibt aber auch eine Möglichkeit, einen neuen Toolbutton in eine TDockToolBar
der Delphi IDE hinzuzufügen. z.B neben das Öffnen Symbol (Toolbutton)
Thomas
  Mit Zitat antworten Zitat
Tryer

Registriert seit: 16. Aug 2003
200 Beiträge
 
#4

Re: Delphi IDE, Explorer

  Alt 15. Apr 2004, 17:33
Ich hab mich mal daran gesetzt einen Wizard zu schreiben über den man auch Toolbuttons einfügen kann.. leider bisher nicht sonderlich erfolgreich.

Auf Basis von INTAServices greife ich auf die ActionList der IDE zu und füge eine neue TAction hinzu, soweit scheinbar kein Problem.

Nach dem Installieren des Package kann ich dann wie gewünscht über Rechtsklick auf die Cool-/Toolbar -> Anpassen unter den Anweisungen meine neue Aktion auswählen und einfügen, der damit erzeugte Toolbutton funktioniert dann einwandfrei..bis man Delphi beendet und neu startet.

Der Toolbutton taucht dann zwar wieder auf, allerdings ohne Bitmap und ohne Funktion.
Demnach fehlt also der ActionLink zu der Aktion, was entweder dadurch hervorgerufen werden kann das die Aktion garnicht gespeichert wurde und beim Erzeugen des Buttons noch nicht existiert (d.h. das mein Wizard erst nach dem laden der Toolbar erzeugt wird),
oder das die Toolbar zwar den Button, aber nicht dessen AktionLink abspeichert.

Vielleicht mache ich ja etwas grundlegend falsch beim dynamischen Erstellen der Aktion, wodurch die beteiligeten Komponenten dann nicht in der Lage sind die Veränderung korrekt abzuspeichern.
Da ich bisher nichts mit TActions zu tun hatte fehlt mir die Erfahrung.

Hier mal das Prinzip wie ich vorgehe:
Delphi-Quellcode:
type
  TDSActionWizard = class(TNotifierObject, IOTAWizard)
  private
    FAction: TAction;
  (..)
  end;

implementation

constructor TDSActionWizard.Create;
var
  Service: INTAServices;
begin
  inherited Create;
  FAction := TAction.Create(nil);
  // Zuweisen diverser Eigenschaften über abstrakte, d.h. zu überschreibende Funktionen
  FAction.Caption := GetCaption;
  FAction.Category := GetCategory;
  FAction.Hint := GetHint;
  // Zuweisung des Events, ActionExecute führt die abstrakte Methode 'Execute' aus.
  FAction.OnExecute := ActionExecute;
  (.. Bitmap aus Resource laden etc ..)
  if Supports(BorlandIDEServices, INTAServices, Service) then
  begin
    FAction.ActionList := Service.ActionList;
    Service.ActionList.InsertComponent(FAction);
  end;
end;
Eigentlich recht simpel: Ich erzeuge die TAction, ermittle die ActionList der IDE, weise diese der Action zu und übergebe die Verantwortug für die Freigabe der Action ebenfalls an die ActionList.

Ein Beispiel für die Anwendung sieht dann so aus:
Delphi-Quellcode:
type
  TExplorePathWizard = class(TDSActionWizard)
  protected
    function GetPath: string; virtual; abstract;
  public
    function GetCategory: string; override;
    procedure Execute; override;
  end;

  TExploreEditorFileWizard = class(TExplorePathWizard)
  protected
    function GetPath: string; override;
  public
    function GetCaption: string; override;
  end;

implementation

{ TExplorePathWizard }

procedure TExplorePathWizard.Execute;
begin
  ShellExecute(0, 'open', PChar(GetPath), nil, nil,
    SW_SHOWDEFAULT);
end;

function TExplorePathWizard.GetCategory: string;
begin
  Result := 'Verzeichnisse';
end;

{ TExploreEditorFileWizard }

function TExploreEditorFileWizard.GetCaption: string;
begin
  Result := 'Verzeichnis der Editordatei';
end;

function TExploreEditorFileWizard.GetPath: string;
var
  Service: IOTAModuleServices;
begin
  Result := '';
  if Supports(BorlandIDEServices, IOTAModuleServices, Service) then
    if Assigned(Service.CurrentModule) then
      Result := '"' + ExtractFilePath(Service.CurrentModule.FileName) + '"';
end;
Vielleicht eine Idee in welchem Ansatz hier der Denkfehler sitzt ?

MfG,
Tryer
  Mit Zitat antworten Zitat
Tryer

Registriert seit: 16. Aug 2003
200 Beiträge
 
#5

Re: Delphi IDE, Explorer

  Alt 15. Apr 2004, 21:49
Fehler gefunden..

Das Streaming-System hat halt Probleme eine Action zuzuweisen die keinen Namen hat..

Ich räum das morgen nochmal auf und stell den Source dann hier rein.

MfG,
Tryer
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#6

Re: Delphi IDE, Explorer

  Alt 17. Apr 2004, 10:06
Hi Tryer,

Konntest du den Experten schon fertig stellen?
Thomas
  Mit Zitat antworten Zitat
Tryer

Registriert seit: 16. Aug 2003
200 Beiträge
 
#7

Re: Delphi IDE, Explorer

  Alt 17. Apr 2004, 12:04
Ich bin dabei.. hab noch einige Probleme mit den TActions aber das bekomm ich irgendwie in den Griff.
Derzeit knabber ich daran festzustellen wann in der IDE ein neuer ToolButton erstellt wird, ich muss also irgendwie über den ActionLink an die Instanz dessen Clients kommen. Wie es aussieht sind aber alle relevanten Methoden dafür nur statisch implementiert was die Möglichkeiten stark einschränkt

Nun gibts erstmal ne neue Kanne Kaffe, und dann schau ich mal weiter.

MfG,
Tryer
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#8

Re: Delphi IDE, Explorer

  Alt 17. Apr 2004, 12:50
Hi,

wenn ich richtig verstanden habe was du willst, Code Rush kann das. Code Rusch wird jetzt von developer Express weiterentwickelt und vertrieben.

Grüsse
Woki
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#9

Re: Delphi IDE, Explorer

  Alt 17. Apr 2004, 12:51
Zitat:
Code Rusch wird jetzt von developer Express weiterentwickelt und vertrieben
Danke für den Hinweis!
Aber ich brauche eben nur diese eine Funktion und nicht gleich ein ganzes Bündel.
Zudem kostet Code Rusch was.
Thomas
  Mit Zitat antworten Zitat
Tryer

Registriert seit: 16. Aug 2003
200 Beiträge
 
#10

Re: Delphi IDE, Explorer

  Alt 18. Apr 2004, 11:05
So ich hab mal eine abgespeckte Version fertiggestellt, einfach in ein neues (Entwurfszeit-)Package einbinden und installieren.

Derzeit arbeite ich noch an einigen Features:
  • Customizing und Eventhandling für die ToolButtons, Einbindung von Contextmenüs (tbsDropDown) für die Buttons
  • Einbindung frei plazierbarer MenuItems für das Hauptmenü, Positionierung überfolgt über einen 'Pfad-String' der geparsed wird
    (Beispiel: 'Hilfe||-|-|' plaziert das Item unter der 2. Linie im Hilfe-Menü, 'Tools|Wizards||' erstellt neuen Eintrag Wizards hinter Tools und fügt das Item dort ein)
Diese Version macht erstmal nur die Action verfügbar, an den erweiterten Funktionen hab ich noch einiges zu testen.

MfG,
Tryer
Angehängte Dateien
Dateityp: zip actionwizard.zip (4,0 KB, 23x aufgerufen)
  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 09:01 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