AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit Parameter

Ein Thema von synex · begonnen am 12. Okt 2003 · letzter Beitrag vom 13. Okt 2003
Antwort Antwort
synex

Registriert seit: 14. Apr 2003
147 Beiträge
 
Delphi 6 Personal
 
#1

Problem mit Parameter

  Alt 12. Okt 2003, 19:48
Hi Leute

Ich hab ein Problem:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var sfi: TSHFILEINFO;
begin
if paramstr(1)='-sfthen
        begin
        SHGetFileInfo(PChar(paramstr(2)),0,sfi,sizeof(sfi),SHGFI_DISPLAYNAME);
        file:=expandfilename(sfi.szDisplayName);
        form1.Hide;
        form2.show;
        end;
end;
Nur zur Info: diese SHGetFileInfo Funktion macht aus kurzen Dateinamen (blabla~1.dat) lange (blablablabla.dat).

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:
Zugriffsverletzung bei Adresse 00456346 in Modul 'Project1.exe'. Lesen von Adresse 000002EC
und das Programm startet mit Form1.

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
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#2

Re: Problem mit Parameter

  Alt 12. Okt 2003, 20:25
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:
program Project1;

uses
  Forms,
  Unit1 in 'Unit1.pas{Form1};

{$R *.res}

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
In dem Code musst du dann deinen Parameter abfragen, und dann dementsprechend die Form erstellen.

mfg phlux
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
synex

Registriert seit: 14. Apr 2003
147 Beiträge
 
Delphi 6 Personal
 
#3

Re: Problem mit Parameter

  Alt 12. Okt 2003, 21:01
Wie muss ich denn dort eine Prozedur schreiben?
Wie muss ich das Ganze nennen, weil form1.formcreate kanns ja schlecht sein.
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#4

Re: Problem mit Parameter

  Alt 12. Okt 2003, 21:15
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) = 'FORM1then
  begin
    Application.Initialize;
    Application.CreateForm(TForm1, Form1);
    Application.Run;
  else if UpperCase(param) = 'FORM2then //Angenommen unsere andere Form hieße Form2 dann...
  begin
    Application.Initialize;
    Application.CreateForm(TForm2, Form2);
    Application.Run;
  end;
end.
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
synex

Registriert seit: 14. Apr 2003
147 Beiträge
 
Delphi 6 Personal
 
#5

Re: Problem mit Parameter

  Alt 13. Okt 2003, 14:17
Hui danke!

mfg synex
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:21 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