AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Mainform über .dProj - Datei auslesbar?
Thema durchsuchen
Ansicht
Themen-Optionen

Mainform über .dProj - Datei auslesbar?

Ein Thema von Harry Stahl · begonnen am 1. Nov 2018 · letzter Beitrag vom 2. Nov 2018
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#1

Mainform über .dProj - Datei auslesbar?

  Alt 1. Nov 2018, 20:00
Kann man über die Delphi .dproj-Datei rausfinden, welche Form die Mainform ist (und die dazugehörige Datei)?

Ich habe da leider nichts eindeutiges gefunden.

Bleibt nichts anderes, als die DPR-Datei auszulesen, den ersten Eintrag finden, wo Appilcation.CreateForm (ClassName) aufgerufen wird, alle anderen .pas Dateien öffnen und nach dem Klassen-Objekt suchen?

Wäre schön, wenn es über die .Dproj ginge.

Hintergrund:

Wenn ich ein Delphi-Projekt über meinen Pascal-Editor-Programm öffne, möchte ich neben der DPR-Datei direkt automatisch die Datei des Hauptformulars (.pas) öffnen.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: Mainform über .dProj - Datei auslesbar?

  Alt 1. Nov 2018, 20:12
Bei mir steht
Zitat:
<DCCReference Include="_main\uMain.pas"/>
Nun wenn ich weis das diese *.pas die MainUnit ist, ist das kein Problem.
Aber ich befürchte nur anhand vom Namen der Unit wird das wohl nix.

Denn wenn du fremd Projekte hast und den Namen nicht kennst oder dieser nicht vorgegeben ist dann stehst du auf dem Schlauch.

Mit der *.dpr wird das auch nix.
Delphi-Quellcode:
program Mixer64;

uses
  SKAeroAPI in '_api\SKAeroAPI.pas',
  uMain in '_main\uMain.pas',
  uGlobal in '_unit\uGlobal.pas',
  uControls in '_main\uControls.pas',
Wie willst du jetzt feststellen was die Mainform ist?
Bei mir gibt es kein Appilcation.CreateForm für deine Projekte mag das funktionieren aber nicht für alle.

Nur!
Delphi-Quellcode:
begin
  WinMain(hInstance, 0, nil, 0);
gruss

Geändert von EWeiss ( 1. Nov 2018 um 20:20 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Mainform über .dProj - Datei auslesbar?

  Alt 1. Nov 2018, 20:22
Wenn Du ein Projekt hast, wo es kein Application.createform gibt, dann steht aber auch kein Eintrag in der Ansicht, Projekte, Optionen, Formulare, das ist doch richtig, oder?

Was ist dann bei Dir die Mainform?

Die erste Form, die in der DPR-Datei erzeugt wird?
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: Mainform über .dProj - Datei auslesbar?

  Alt 1. Nov 2018, 20:26
Wenn Du ein Projekt hast, wo es kein Application.createform gibt, dann steht aber auch kein Eintrag in der Ansicht, Projekte, Optionen, Formulare, das ist doch richtig, oder?

Was ist dann bei Dir die Mainform?

Die erste Form, die in der DPR-Datei erzeugt wird?
Korrekt!

Das wäre die Form in der die Function WinMain aufgerufen wird.
Die Position der Unit in der .dpr ist dabei egal.

gruss

Geändert von EWeiss ( 1. Nov 2018 um 20:41 Uhr)
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#5

AW: Mainform über .dProj - Datei auslesbar?

  Alt 1. Nov 2018, 21:02
Wenn es darum geht, diejenige Form herauszusuchen, die bei den Projektoptionen im Bereich Formulare als Hauptformular festgelegt ist, dann kann man nur die *.dpr analysieren und den ersten Eintrag mit Application.CreateForm() lokalisieren.

Denn exakt so macht das die IDE auch.

Kann man ganz leicht herausfinden, indem man die Reihenfolge in der *.dpr mal tauscht und dann in den Projektoptionen sich den EIntrag bei Hauptformular anschaut.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: Mainform über .dProj - Datei auslesbar?

  Alt 1. Nov 2018, 21:03
Wie du vielleicht schon gelesen hast gibt es das nicht in jeden Projekt dein Application.CreateForm()

gruss
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#7

AW: Mainform über .dProj - Datei auslesbar?

  Alt 1. Nov 2018, 21:05
Wie du vielleicht schon gelesen hast spreche ich über diese Art der Delphi-Anwendungen gar nicht.

Wenn es darum geht, diejenige Form herauszusuchen, die bei den Projektoptionen im Bereich Formulare als Hauptformular festgelegt ist,
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: Mainform über .dProj - Datei auslesbar?

  Alt 1. Nov 2018, 21:07
Zitat:
Wenn es darum geht, diejenige Form herauszusuchen, die bei den Projektoptionen im Bereich Formulare als Hauptformular festgelegt ist,
Nun gut in dem Fall..

gruss

Geändert von EWeiss ( 1. Nov 2018 um 21:15 Uhr)
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#9

AW: Mainform über .dProj - Datei auslesbar?

  Alt 1. Nov 2018, 21:18
Also ich spreche davon wie man an diese Form1 (siehe jetzt das Bild)
2018-11-01-21_12_30-projektoptionen-fu-r-project1.exe-win32-debug-.png
kommt. Dafür gibt es eine Regel wo diese im Quelltext zu finden ist. Für die anderen Möglichkeiten gibt es keine Regel, das kann sonst wo stehen und ist darum nicht so einfach aus dem Quelltext herauszufiltern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#10

AW: Mainform über .dProj - Datei auslesbar?

  Alt 1. Nov 2018, 21:21
Deshalb habe ich Harry darauf aufmerksam gemacht das es NICHT immer geht..
Wenn es im speziellen NUR um MainFormen im Bereich Formulare der Hauptformular geht hast du natürlich recht.

EDIT:
Du hast doch verschiedene Einstellungen in deinem Projekt.
Kannst du da nicht explizit die MainForm vom jeweiligen Projekt angeben und diese dann starten?
Das macht man einmal und gut ist.

gruss

Geändert von EWeiss ( 1. Nov 2018 um 21:32 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:45 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