![]() |
Parameter-Verarbeitung in Program-Unit
Hallo,
der Aufruf in meiner Program-Unit (wie nennt man die eigentlich richtig?) sieht momentan so aus:
Delphi-Quellcode:
also eigentlich ganz normal. Es wird eben nur ein Form erzeug.
begin
Application.Initialize; Application.Title := 'FTPRemote'; Application.CreateForm(TStartForm, StartForm); Application.Run; end. Nun möchte ich, dass je nachdem, wie die Parameter beim Start der Anwendung sind, ein anderes Form erzeugt wird. Also wenn jemand das Programm mit [name].exe -Server startet, soll der Aufruf so
Delphi-Quellcode:
sein und nicht mehr
Application.CreateForm(TServer, Server);
Delphi-Quellcode:
Die entsprechenden Formulare existieren alle. Daher meine Frage; kann man das so irgendwie umsetzen?
Application.CreateForm(TStartForm, StartForm);
Vielen Dank im voraus Nicolai (wenn jemand einen besseren Titel weiß, wäre ich echt dankbar) |
Re: Parameter-Verarbeitung in Program-Unit
Hallo Nicolai,
du könntest es in deiner Projektdatei so versuchen:
Delphi-Quellcode:
Grüße vom marabu
var
param: string; begin if ParamCount = 0 then param := '' else param := Uppercase(ParamStr(1)); if param = '-SERVER' then Application.CreateForm(TServer, Server) else Application.CreateForm(TStartForm, StartForm); ... end; |
Re: Parameter-Verarbeitung in Program-Unit
Ne, leider nicht, wenn man das mit einer einfachen if-Abrfage macht (auch wenn else dabei ist), kann man nicht mal mehr F9/Start drücken.
Fehlermedungen kommen dafür keine :? |
Re: Parameter-Verarbeitung in Program-Unit
Hallo Nicolai,
ist schon klar - wenn du so abstruse Sachen machen willst, dann kannst du das Projekt nur noch mit dem command line compiler übersetzen, da die IDE es nicht mag, wenn du am project file rumfummelst. marabu |
Re: Parameter-Verarbeitung in Program-Unit
Zitat:
Ich gehe mit meiner Delphi in solchen Fällen so um:
Delphi-Quellcode:
Der Quelltext zw. IF und ELSE ist nur für die IDE und hat keine Funktion.
program Project1;
uses Forms, SysUtils, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {Form2}; {$R *.res} begin {$IFDEF FUER_DIE_BOESE_IDE} Application.Initialize; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); Application.Run; {$ELSE} // hier steht unser Quelltext Application.Initialize; if UpperCase(ParamStr(1)) = 'SERVER' then begin Application.CreateForm(TForm1, Form1); end else begin Application.CreateForm(TForm2, Form2); end; Application.Run; {$ENDIF} end. (Das Symbol darf natürlich nie definiert werden :-) ) |
Re: Parameter-Verarbeitung in Program-Unit
Vieln Dank natürlich (auch wenn ich es noch nicht getestet habe.
Ich verstehe nur nicht, warum der obere Quelltext später nicht beachtet wird... |
Re: Parameter-Verarbeitung in Program-Unit
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:37 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