Guten Tag,
Ich stehe gerade vor einem ähnlichen Problem und habe diesen Thread gefunden.
Wenn ich meine Applikation mit Parameter starte soll nur ein Progressbar erscheinen. Das mainForm soll versteckt werden, nach Abschluss soll sich das Programm selbst schliessen.
Wenn ich meine Applikation ohne Parameter starte soll das mainForm angezeigt werden.
Mein Problem ist nun das ich noch nicht ganz verstehe wie eine Applikation aufgebaut wird.
Wenn ich in meinem Projekt
Application.ShowMainForm := false;
im OnCreate oder im Quelltext verwende, funktioniert meine Applikation nicht ordnungsgemäss weil das
OnActivate Event nicht mehr ausgeführt wird.
Leider kann ich den Code im
OnActivate nicht im
OnCreate laufen lassen weil sich sonst die Applikation nach Abschluss nicht mehr selbst schliessen kann.
Warum wird das OnActivate nicht mehr ausgeführt ?
Wie lässt sich das verstecken des mainForms in meinem Fall erreichen?
Wenn möglich möchte ich den aufbau des mainForms nie sehen(kein geflacker) wenn ich parameter benutze.
Es sollte nur virtuell existieren.
Delphi-Quellcode:
program hcFileTransfer;
uses
Forms,
ftpprogressf in 'ftpprogressf.pas' {FormFtpprogressf},
ftpf in 'ftpf.pas' {formFTP},
ftpdialogf in 'ftpdialogf.pas' {FormFtpdialog};
begin
Application.Initialize;
if ParamCount > 1 then
Application.ShowMainForm := false; // -> onActivate wird nicht mehr ausgeführt.
Application.Title := 'hcFTP';
Application.CreateForm(TformFTP, formFTP);
Application.Run;
end.
procedure TformFTP.FormCreate(Sender: TObject);
begin
FormFtpdialog := TFormFtpdialog.Create(self);
FormFtpprogress := TFormFtpprogress.Create(self);
State := OffLineConst;
LocFileSizes := TStringList.Create;
RemFileSizes := TStringList.Create;
ComboBoxLocHistory.Items.Insert(0, GetCurrentDir);
ComboBoxLocHistory.ItemIndex := 0;
RadioGroupTransferMode.ItemIndex := 2;
UpdateLocal;
UpdateButtons;
readSettings;
if (edtLocalPath.Text <> '') and (edtLocalPath.Text <> ComboBoxLocHistory.Items[0]) then
begin
chDir(edtLocalPath.Text);
ComboBoxLocHistory.Items.Insert(1, edtLocalPath.Text);
ComboBoxLocHistory.ItemIndex := 1;
end;
end;
procedure TformFTP.FormActivate(Sender: TObject);
begin
if ParamCount > 0 then
begin
if lowercase(ParamStr(1)) = '-up' then
begin
parameterUpload; //Lade datei Hoch
Close; // Close kann nicht im onCreate Event ausgeführt werden.
end
else if lowercase(ParamStr(1)) = '-down' then
begin
parameterDownload; //Lade date Herunter
Close; // Close kann nicht im onCreate Event ausgeführt werden.
end
else
begin
showmessage('Ungültige Parameter!');
Application.Terminate;
end;
end;
end;
Danke für die Hilfe,
Gruss Int3g3r