Einzelnen Beitrag anzeigen

Benutzerbild von ralfiii
ralfiii

Registriert seit: 30. Mai 2007
489 Beiträge
 
Delphi 2010 Professional
 
#12

Re: Wie kann man das Mainform "disablen" (nicht an

  Alt 9. Sep 2008, 17:18
Zitat von Bbommel:
Noch eine Ergänzung (irgendwie reizt mich das jetzt)


Der Ansatz funktioniert für mich leider nur sehr schlecht, aber dein voriger war eigentlich genial & simpel.
Nun also:

Delphi-Quellcode:
begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);

  if ParamCount>0 then
  begin
       Application.MainFormOnTaskbar := False;
       Application.showMainForm:=false;
  end;
  Application.Run;
end.

und

procedure TForm1.FormCreate(Sender: TObject);
begin
     if ParamCount>0 then
        Timer1.Enabled:=True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
     Timer1.Enabled:=False;
     with TForm2.Create(self) do
     begin
          ShowModal;
          Free;
     end;
     Close;
end;

Und weil ich nicht so ein Freund von Timern bin, hab ich dann einfach folgendes gemacht:

Delphi-Quellcode:
     if ParamCount>0 then
// Timer1.Enabled:=True;
        PostMessage(self.handle, WM_AfterShow, 0,0);

procedure WMAfterShow (var Message: TWMChar); message WM_AfterShow;
procedure TForm1.WMAfterShow (var Message: TWMChar);
begin
     butShowModuleClick(nil);
     Close;
end;
Und da hat mich Delphi wieder überrascht.
Setze ich nämlich
Application.MainFormOnTaskbar := False;
funktioniert die Lösung mit der Message nicht mehr.

Also doch Timer.

Danke für deinen Beistand!
  Mit Zitat antworten Zitat