AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Mainform erst anzeigen nachdem andere Form geschlossen wurde
Thema durchsuchen
Ansicht
Themen-Optionen

Mainform erst anzeigen nachdem andere Form geschlossen wurde

Ein Thema von CodeX · begonnen am 13. Aug 2005 · letzter Beitrag vom 15. Aug 2005
Antwort Antwort
CodeX

Registriert seit: 30. Okt 2004
471 Beiträge
 
Delphi 12 Athens
 
#1

Mainform erst anzeigen nachdem andere Form geschlossen wurde

  Alt 13. Aug 2005, 23:30
hi!

vor dem eigentlichen programmstart soll ein kleines fenster angezeigt werden, wo der benutzer einige daten eingeben muss. wenn dann per button bestätigt wird, wird dieses geschlossen und das eigentliche programm angezeigt.

ich bekomme es aber absolut nicht hin, dass nur dieses formular (Form2) ohne das programm (Form1) angezeigt wird.
was ich unter anderem schon versucht habe:
- im objektinspektor: form1 visible auf false, form2 visible auf true
- erstellungsreihenfolge geändert, dann wird es zwar richtig angezeigt, jedoch beendet sich das programm beim schließen des abfragefensters
- bei oncreate von form1 visible auf false

das blöde ist ja, dass das anzeigen des programmfensters irgendwie erzwungen wird, da das abfragefenster zuerst angezeigt wird und dann vom programmfenster verdeckt wird.

kann mir jemand eine sichere methode nennen oder tipps geben, was ich noch alles versuchen kann?

danke.
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#2

Re: Mainform erst anzeigen nachdem andere Form geschlossen w

  Alt 13. Aug 2005, 23:37
Schau mal unter dem Link, da wurde so etwas ähnlichen schon einmal behandelt.
Minimierungsprobleme
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
prinz_inzide

Registriert seit: 24. Jan 2005
64 Beiträge
 
#3

Re: Mainform erst anzeigen nachdem andere Form geschlossen w

  Alt 13. Aug 2005, 23:37
hab so was auch ma gemacht, ich glaub ich hab einfach form1, also die mainform, genommen für die einstellungen, dann form1 gehided und form2 geshowed (form2 war dann das eigentliche progamm)..


is zwar net die beste lösung sollte aber funktioniern.

nfg
  Mit Zitat antworten Zitat
Beckman

Registriert seit: 12. Jul 2004
205 Beiträge
 
#4

Re: Mainform erst anzeigen nachdem andere Form geschlossen w

  Alt 13. Aug 2005, 23:49
du meinst ein splashscreen, hoffe ich.
ich hab da mal gebastelt. ich habs so geloest:

Delphi-Quellcode:
begin
  SplashForm := TSplashForm.Create(Application);
  try
    SplashForm.Show;
    Application.Initialize;
    SplashForm.Update;
    //Sleep(1000); //delay-command

    while SplashForm.ProgressBar1.Position < 100 do begin
      SplashForm.ProgressBar1.StepIt;

      if (SplashForm.ProgressBar1.Position = 10) then begin
        end;
      if (SplashForm.ProgressBar1.Position = 20) then begin
        end;
      //usw usw mit den positions um sone art loading balken zu simulieren.
      //hab da einfach aufgaben beim start aufgeteilt (war bisschen aufwendigeres zeugs..

      Sleep(20); //damits wirklich auch aufwendiger ausschaut ^^
      Application.ProcessMessages;
      end;

  if paramstr(1) = '/hthen application.ShowMainForm := False;

  Application.CreateForm(TMainForm, MainForm);
  SplashForm.Hide;
  finally
   SplashForm.Free;
  end;
  Application.Run;
  Mit Zitat antworten Zitat
CodeX

Registriert seit: 30. Okt 2004
471 Beiträge
 
Delphi 12 Athens
 
#5

Re: Mainform erst anzeigen nachdem andere Form geschlossen w

  Alt 15. Aug 2005, 14:47
@turbopascal
ehrlich gesagt finde ich in dem thread nichts, was mir weiterhelfen könnte :S

@prinz_inzide
das habe ich mir auch schon überlegt, aber dann müsste ich einige sachen wieder abändern und außerdem bezweifle ich, dass dann nicht noch andere unerwartete probleme auf mich zukommen werden.

@beckman
so ungefähr habe ich das hier schon irgendwo mal gelesen, aber auf die art funktioniert es leider auch nicht. ich habe eine weile daran herumprobiert und habe herausgefunden, dass es so erzwungenermaen geht:
Delphi-Quellcode:
begin
Form2 := TForm2.Create(Application);
  try
  Form2.ShowModal;
  Application.Initialize;
  Form2.Update;
  Application.CreateForm(TForm1, Form1);
[...]
  finally
  Form2.Free;
  end;
  Application.Run;
das showmodal scheint das anzeigen der mainform solage zu unterdrücken, wie Form2 geöffnet ist.
naja, mehr getrickst als recht, aber was solls.
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Mainform erst anzeigen nachdem andere Form geschlossen w

  Alt 15. Aug 2005, 15:08
Mach dir zwei Formulare, eine Hauptform und eine Nebenform...


Hauptform
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  THauptform = class(TForm)
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Hauptform: THauptform;

implementation

uses Unit2;

{$R *.dfm}

procedure THauptform.FormCreate(Sender: TObject);
var LNebenForm: TNebenform;
begin
  Hauptform.Hide;

  LNebenForm := TNebenform.Create(self);
  try
    if LNebenForm.ShowModal = mrOk then
      HauptForm.Show;
  finally
    LNebenform.Free;
  end;
end;

end.
Nebenform:
Delphi-Quellcode:
unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TNebenform = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Nebenform: TNebenform;

implementation

{$R *.dfm}

procedure TNebenform.Button1Click(Sender: TObject);
begin
 ModalResult := mrOK;
end;

end.

..den Rest kannst du an deinen eigenen Code anpassen...


Gruß

Tyrael
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#7

Re: Mainform erst anzeigen nachdem andere Form geschlossen w

  Alt 15. Aug 2005, 16:39
Ich hätte es so gelöst:

Delphi-Quellcode:
// HauptForm

unit HauptUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, AnfangsUnit;

type
  THauptForm = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  HauptForm: THauptForm;

implementation

{$R *.dfm}

procedure THauptForm.FormCreate(Sender: TObject);
begin
  Application.ShowMainForm := false;
  AnfangsForm.Show;
end;

end.




// Formular, das zuerst angezeigt werden soll:

unit AnfangsUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TAnfangsForm = class(TForm)
    WeiterButton: TButton;
    procedure WeiterButtonClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  AnfangsForm: TAnfangsForm;
  UserEingabe : Boolean;

implementation

{$R *.dfm}

uses HauptUnit;



procedure TAnfangsForm.WeiterButtonClick(Sender: TObject);
begin
  UserEingabe := true;
  AnfangsForm.Close;
  HauptForm.Show;
end;

proceudre TAnfangsForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if not (UserEingabe) then
    Aplication.Terminate;
end;

end.
Wichtig ist die Erwähnung in uses, bei Unit2 aber hinter implementation.
Das OnClose-Ereignis beendet die Anwendung, wenn der User nichts getan hat. Sonst bleibt das Programm ohne sichtbares Fenster trotzdem da.

Gruß,
ManuMF
  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 14:07 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