Einzelnen Beitrag anzeigen

DavidKlimas

Registriert seit: 24. Sep 2006
Ort: Arlon, Belgien
71 Beiträge
 
#1

Von Programmstart gleiche eine Procedure auf Form2 ausführen ???

  Alt 6. Jul 2011, 23:11
Delphi-Version: 5
Guten Abend zusammen,

hoffe das ich das Thema auch richtig eingeordnet habe...

Habe mir schon seit einiger zeit den Kopf zerbrochen und mal hier und mal da gesucht aber das richtige habe ich nicht gefunden darum bitte ich mal um Eure Hilfe. ich gebe hier einfach mal eine vereinfacte form ZUR DEMONSTRATION des Problemes wieder :

Ich habe eine MainForm mit zwei Button. Der erste Button "GehZuForm2" und der zweite Button "GehZuForm3".

Die MainForm:

Delphi-Quellcode:
procedure TMainForm.GehZuForm2Click(Sender: TObject);
begin
  MainForm.Visible := false;
  Form2.ShowModal;
  MainForm.Visible := True;
end;
So weit, so gut

Auf der Form2 hab ich verschiedene Button für verschiedene Operationen. Zum Beispiel der :

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
  TrayIcon1.Visible := True;
  Form2.Visible := False;
  //hier verschiedene Operationen
  //ende der Operation
  TrayIcon1.Visible := False;
  Form2.Visible := True;
end;
Nun möchte ich ein ParamStr einbauen der mir ermöglicht vom Programmstart gleich zu TForm2.Button1Click(Sender: TObject) zu gehen ohne die MainForm oder die Form2 anzuzeigen.

Ich habe versucht das in die OnCreate procedure einzubauen :

Delphi-Quellcode:
procedure TMainForm.FormCreate(Sender: TObject);
begin
  if (ParamCount = 1)
  AND (lowercase(ParamStr(1)) = '-startop1') then GehZuForm2Click(Self);
  if (ParamCount = 1)
  AND (lowercase(ParamStr(1)) = '-startop2') then GehZuForm3Click(Self);
end;
und in den OnShow proceduren dann folgendes :

Delphi-Quellcode:
procedure TForm2.FormShow(Sender: TObject);
begin
  if (ParamCount = 1)
  AND (lowercase(ParamStr(1)) = '-startop1') then Button1Click(Self);
end;
Das klappt natürlich nicht da die Form2 noch gar nicht existiert wenn die procedure ausgeführt wird.

Dann hab ich das Probiert :

Delphi-Quellcode:
procedure TMainForm.FormShow(Sender: TObject);
begin
  if (ParamCount = 1)
  AND (lowercase(ParamStr(1)) = '-start') then
  Begin
    if (ParamCount = 1) then
    Begin
      MainForm.Visible := False;
      If lowercase(ParamStr(1)) = '-startop1then GehZuForm2Click(Self);
      If lowercase(ParamStr(1)) = '-startop2then GehZuForm3Click(Self);
    End;
  End;
end;
Aber das klappt auch nicht, da ich visible nicht in OnShow oder OnHide procedure ändern kann.

Habt Ihr vorschlâge wie ich das am besten anstellen kann ?
  Mit Zitat antworten Zitat