Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Mehrfachstart der Delphi IDE verhindern (https://www.delphipraxis.net/198367-mehrfachstart-der-delphi-ide-verhindern.html)

Harry Stahl 27. Okt 2018 18:02

Mehrfachstart der Delphi IDE verhindern
 
Gibt es eine Möglichkeit den Mehrfachstart der Delphi-IDE zur verhindern?

Ich würde bestimmte Projekte z.T. gern von Extern in Delphi laden, aber möchte nicht, dass die IDE noch mal startet, sondern dass das aktuelle Projekt geschlossen wird und statt dessen das geladen wird, welches man von extern (z.B. per Shellexecute) aufgerufen hat.

EWeiss 27. Okt 2018 18:18

AW: Mehrfachstart der Delphi IDE verhindern
 
Normalerweise funktioniert das zumindest mit Doppelklick aus dem Explorer heraus.
Das alte Projekt wird zwar nicht entfernt aber das neue addiert.

Bei mir mit D2010. (Win7)

Was ich aber festgestellt habe unter Win10 kann ich nicht einmal mit Doppelklick eine andere Unit in der IDE einladen.
Ob das jetzt an der Comunity Edition liegt oder generell nicht funktioniert, oder es an Win10 liegt habe ich noch nicht herausgefunden.
Erst wenn ich das alte Projekt also die IDE vorher schließe kann ich mit Doppelklick eine andere Unit öffnen.

Wie man das alte Projekt jedoch vorher entfernt kann ich leider auch nicht sagen.

EDIT:
Nur wenn ich eine Projektgruppe mit Doppelklick öffne wird das alte Projekt vorher geschlossen.

gruss

Harry Stahl 27. Okt 2018 19:06

AW: Mehrfachstart der Delphi IDE verhindern
 
Interessant, zumindest also wenn man eine Projektgruppe geöffnet hat, kann man z.B. per Drag und Drop eine andere Projektgruppe auf Delphi ziehen und dann wird die alte Projektgruppe geschlossen und die neue geöffnet (gerade mal mit XE7 probiert).

EWeiss 27. Okt 2018 19:09

AW: Mehrfachstart der Delphi IDE verhindern
 
Zitat:

Zitat von Harry Stahl (Beitrag 1416901)
Interessant, zumindest also wenn man eine Projektgruppe hat, kann man z.B. per Drag und Drop eine andere Projektgruppe auf Delphi ziehen und dann wird die alte Projektgruppe geschlossen und die neue geöffnet (gerade mal mit XE7 probiert).

Sollte dann auch mit Shellexecute funktionieren.
Vielleicht kannst du der IDE ja vorgaukeln das dein über Shellexecute gestartetes Projekt eine Projektgruppe ist.

Aber wie gesagt kann es nicht testen bei mir unter Win10 geht da gar nichts vernünftig.

gruss

Harry Stahl 27. Okt 2018 19:12

AW: Mehrfachstart der Delphi IDE verhindern
 
Nein, per ShellExecute startet dann ein neues Projekt (zumindest hier gerade mit XE7 oder Delphi 10.2).

Aber so eine richtige Lösung wäre das auch mit mit den Projektgruppen. Will ich da jetzt nicht extra anlegen (habe ja zig dutzende normale Projekte).

jaenicke 28. Okt 2018 08:10

AW: Mehrfachstart der Delphi IDE verhindern
 
Zitat:

Zitat von Harry Stahl (Beitrag 1416897)
Ich würde bestimmte Projekte z.T. gern von Extern in Delphi laden, aber möchte nicht, dass die IDE noch mal startet

Wenn ich ShellExecute aufrufe, passiert das bei mir auch nicht:
Delphi-Quellcode:
  ShellExecute(Handle, 'open', 'J:\Embarcadero\Studio\Projekte\Project1.dproj', '', '', SW_SHOWNORMAL);
//
Bei älteren Delphiversionen hat es noch einen Unterschied gemacht, ob man die .dpr oder die .dproj benutzt hat, (es wurde das Projekt einzeln geöffnet oder in die aktive Projektgruppe gesetzt) bei Delphi 10.2 wird das Projekt immer in die Projektgruppe hinzugefügt.

Vielleicht wäre es erfolgversprechender ein IDE Addon zu benutzen und diesem Befehle von außen zu geben...

dummzeuch 28. Okt 2018 09:06

AW: Mehrfachstart der Delphi IDE verhindern
 
Eigentlich habe ich immer nur das umgekehrte Problem: Ich will ein neues Projekt in einer neuen IDE-Instanz öffnen, aber es landet als zweites (n-tes) Projekt in der existierenden Projektgruppe.

Es gibt im Prinzip zwei Arten, die IDE zu starten:
  • direkter Aufruf von .\bin\bds.exe
  • Aufruf von .\bin\BDSLauncher.exe

Ersteres startet zuverlässig eine neue Instanz. BDSLauncher versucht anscheinen clever zu sein und öffnet fast immer das Projekt in einer bereits laufenden Instanz. BDSLauncher wird auch vom Installer als Standardprogramm zum Öffnen von .dpr und .drpoj eingetragen.

Harry Stahl 28. Okt 2018 18:19

AW: Mehrfachstart der Delphi IDE verhindern
 
Gerade hier mal schnell getestet, leider startet auch bdslauncher.exe eine zweite Instanz... (also mit .dpr)

Außerdem startet hier BDSLauncher nicht zuverlässig, zumindest, wenn auch eine andere Delphi-Version läuft.

Harry Stahl 28. Okt 2018 19:10

AW: Mehrfachstart der Delphi IDE verhindern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von jaenicke (Beitrag 1416955)

Vielleicht wäre es erfolgversprechender ein IDE Addon zu benutzen und diesem Befehle von außen zu geben...

Ein bekanntes Tools gibt es da wohl nicht. Ich selber kenne mich da leider nicht aus, müsste dann zudem für alle Delphis etwas entwickeln, da ich ja ggffls. jedes Delphi so starten möchte, dass es nicht mit einer weiteren Instanz startet.

Zur Erläuterung: Bin gerade dabei meine eigene Projektverwaltung etwas aufzubohren, ich möchte letztlich jedes Delphi, dass ich gerade auf einem PC habe, so nutzen können: Projekt auswählen und dann entscheiden, welches Delphi das Projekt öffnet (siehe anliegenden Screenshot).

Harry Stahl 28. Okt 2018 21:50

AW: Mehrfachstart der Delphi IDE verhindern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Na, ich habe mir mal jetzt eine Notlösung zusammengebastelt. Habe mich an ein Uralt-Tools von mir zum Senden von Keystrokes erinnert. Da habe ich mir für jede IDE ein Makro geschrieben. Mein Pascal Project Manager Programm prüft, ob die gewünschte IDE schon läuft. Falls Ja, wird diese nicht noch mal per ShellExecute gestartet, statt dessen wird per ShellExecute mein MakroHexe-Programm gestartet, welches als Parameter1 den Namen des Passenden Macros erhält und als zweiten Parameter die zu öffnenden Projekt-Datei (siehe anl. Screenshot).

Nicht schön, funktioniert aber....

jaenicke 29. Okt 2018 20:27

AW: Mehrfachstart der Delphi IDE verhindern
 
Zitat:

Zitat von Harry Stahl (Beitrag 1416988)
Zur Erläuterung: Bin gerade dabei meine eigene Projektverwaltung etwas aufzubohren, ich möchte letztlich jedes Delphi, dass ich gerade auf einem PC habe, so nutzen können: Projekt auswählen und dann entscheiden, welches Delphi das Projekt öffnet (siehe anliegenden Screenshot).

So eine Funktion habe ich auch mal als separates Tool geschrieben. Da wird anhand der Projektdatei entschieden welches die für das Projekt verwendete Delphiversion ist und diese dann geöffnet.

Harry Stahl 29. Okt 2018 21:01

AW: Mehrfachstart der Delphi IDE verhindern
 
Ja, die automatische Projekterkennung (schon bei Erfassung des Projektes und Aufnahme in mein Projektverwaltungssystem) habe ich auch schon integriert.

Per Doppelklick auf einen Programmeintrag wird auch das Projekt automatisch mit dem richtigen Delphi geladen. Der Schalter ist eigentlich nur dazu da, wenn man das Projekt explizit mit einer bestimmten Version öffnen möchte.

Das gestaltet sich schon als äußerst praktisch: Gerade arbeite ich (u.a.) an einer neuen Version 4 meines Rechnungsprogramms (mit Delphi 10.2). Die Vorversion 3 habe ich noch mit Delphi XE7 geschrieben. Wollte gerade mal was vergleichen, wie ich etwas in XE7 gemacht hatte. Das benötigte nur 1 Klick auf die Projektbar, die mir die Projektlistenübersicht öffnet und ein Doppelklick auf den Eintrag für PC-Rechnung 3, schon wird XE7 gestartet, mit dem richtigen Projekt (alternativ könnte ich das Projekt auch in meinem Editor-Programm öffnen, hängt immer davon ab, was ich gerade benötige).

Muss also nicht umständlich erst XE7 starten, zum Verzeichnis navigieren und das benötigte Projekt raus suchen. Beschleunigt das ganze Management mit den Projekten erheblich (und ich habe viele, da habe ich noch längst nicht alle in meine Verwaltung aufgenommen). Momentan nehme ich die Projekte noch manuell auf, aber ich will mir noch eine Parse-Funktion schreiben, die bestimmte Drives / Verzeichnisse / Unterverzeichnisse abgrast und dann die Projekte automatisch erkennt und aufnimmt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:14 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