![]() |
Problem mit Parameter
Hi Leute
Ich hab ein Problem:
Delphi-Quellcode:
Nur zur Info: diese SHGetFileInfo Funktion macht aus kurzen Dateinamen (blabla~1.dat) lange (blablablabla.dat).
procedure TForm1.FormCreate(Sender: TObject);
var sfi: TSHFILEINFO; begin if paramstr(1)='-sf' then begin SHGetFileInfo(PChar(paramstr(2)),0,sfi,sizeof(sfi),SHGFI_DISPLAYNAME); file:=expandfilename(sfi.szDisplayName); form1.Hide; form2.show; end; end; Also jetzt das Problem: Wie man sieht wird, wenn der Parameter -sf verwendet wird, anstatt Form1 Form2 angezeigt. Bessergesagt, es sollte so sein. Wenn ich jetzt das Programm starte kommt nur
Code:
und das Programm startet mit Form1.
Zugriffsverletzung bei Adresse 00456346 in Modul 'Project1.exe'. Lesen von Adresse 000002EC
Wieso geht das nicht? Die anderen Parameter die ich noch behandle gehen einwandfrei, wobei ich bei denen nur mit Form1 arbeite. Danke schonmal für eure Hilfe MfG synex |
Re: Problem mit Parameter
Moin du darfst das ganze net im OnCreate deiner Form aufrufen, da zu dem zeitpunkt deine 2te Form noch gar net erstellt worden ist (so denke ich) du musst das alles im richtigen Source des Progs reinschreiben, den findest du wenn du auf Projekt gehst und View Source (so heißts bei mir da engl. Version) anklickst, dann dürftest du sowas sehn:
Delphi-Quellcode:
In dem Code musst du dann deinen Parameter abfragen, und dann dementsprechend die Form erstellen.
program Project1;
uses Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. mfg phlux :hi: |
Re: Problem mit Parameter
Wie muss ich denn dort eine Prozedur schreiben?
Wie muss ich das Ganze nennen, weil form1.formcreate kanns ja schlecht sein. |
Re: Problem mit Parameter
ist eigentlich ganz einfach:
Delphi-Quellcode:
program Project1;
uses Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} var param: String; begin param := Copy(ParamStr(1),1,Length(ParamStr(1))); if UpperCase(param) = 'FORM1' then begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; else if UpperCase(param) = 'FORM2' then //Angenommen unsere andere Form hieße Form2 dann... begin Application.Initialize; Application.CreateForm(TForm2, Form2); Application.Run; end; end. |
Re: Problem mit Parameter
Hui danke!
mfg synex |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01: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