Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Anhand von ParamStr entscheiden welches Formular startet (https://www.delphipraxis.net/28469-anhand-von-paramstr-entscheiden-welches-formular-startet.html)

easywk 25. Aug 2004 09:09


Anhand von ParamStr entscheiden welches Formular startet
 
Hallo,

ich wollte gerne beim Start des Programms anhand von ParamStr() entscheiden, mit welchem Formular ich beginne. Dazu habe ich in die Projektdatei folgendes eingetragen:
Delphi-Quellcode:
Application.Initialize;
if (ParamCount>0) and (ParamStr(1)='1') then
  Application.CreateForm(Tform1,form1)
else Application.CreateForm(Tform2,form2);
Application.Run;
Beim Compilieren gab es keine Probleme, gestartet ist die Anwendung aber nicht. Danach war auch die "Run-Funktion" unter der Delphi-IDE weg. Wenn ich jetzt versuche das Projekt auf zu machen, mault Delphi rum "Der Aufruf von Application.CreateForm fehlt oder ist nicht korrekt" und das Projekt kann nicht aufgemacht werden.

Daher folgende Fragen:
(1) Wie komme ich jetzt an das Projekt, ich kann ja nicht mal den Eintrag rückgängig machen :(
(2) Wie muss ich es richtig anstellen, dass ich anhand von ParamStr() entscheiden kann, welches das Hauptformular meiner Anwendung ist?

Thanks für help
cu easywk

P.S. Delphi5, Windows2000

Sourcemaker 25. Aug 2004 09:17

Re: Anhand von ParamStr entscheiden welches Formular startet
 
Hallo,

zum Bearbeiten einfach mit einen Texteditor öffnen.

Gruß

Frank

easywk 25. Aug 2004 09:23

Re: Anhand von ParamStr entscheiden welches Formular startet
 
Zitat:

Zitat von Sourcemaker
zum Bearbeiten einfach mit einen Texteditor öffnen.

Danke. Da hätte ich auch drauf kommen können :wall:
Bearbeiten geht jetzt wieder, aber mein Ursprungsproblem ist damit noch nicht gelöst :(

Robert_G 25. Aug 2004 09:25

Re: Anhand von ParamStr entscheiden welches Formular startet
 
Das ist doch ganz easy...
Zitat:

(1) Wie komme ich jetzt an das Projekt, ich kann ja nicht mal den Eintrag rückgängig machen :(
-> NotePad ;)
Zitat:

(2) Wie muss ich es richtig anstellen, dass ich anhand von ParamStr() entscheiden kann, welches das Hauptformular meiner Anwendung ist?
Einfach im Menu unter Project\Options\Forms die List "auto create forms" leeren.
Die IDE ist einfach zu Blöd um diesen Wert anhand der Application.CreateFrom calls in der Projekt-datei zu setzen. :?
Ist nicht getestet, sollte aber IMHO gehen.

easywk 25. Aug 2004 09:36

Re: Anhand von ParamStr entscheiden welches Formular startet
 
Nein, auch wenn ich kein einziges Formular mehr im "auto create" habe, funktioniert die beschriebene if ... else ... für das Application.CreateForm nicht. Ich habe dann wieder die gleichen Probleme :gruebel:

Robert_G 25. Aug 2004 10:27

Re: Anhand von ParamStr entscheiden welches Formular startet
 
Ich habe es gerade mal getestet...
Delphi ist so blöd, dass es in der DPr CreateForm calls nicht in If-clauses oder ähnlichem akzeptiert.
Man _muss_ es anscheinend in eine extra Unit packen ...
Delphi-Quellcode:
unit Unit3;

interface
uses
  Forms,
  Unit1 ,
  Unit2 ;

procedure openForms;

implementation

procedure openForms;
begin
  if (ParamCount > 0) and (ParamStr(1) = '1') then
    Application.CreateForm(TForm1, Form1)
  else
    Application.CreateForm(TForm2, Form2);
end;

end.
damit man dann das hier ...
Delphi-Quellcode:
  Application.Initialize;
  openForms;
  Application.Run;
... ausführen kann.

Ich weiß schon, warum ich keinen Bock mehr auf Borlands buggy IDEs habe. ;)

easywk 25. Aug 2004 10:49

Re: Anhand von ParamStr entscheiden welches Formular startet
 
Prima, jetzt geht es :bounce2: Danke!


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