Autor Beitrag
fussl
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Di 24.06.03 09:10 
Hi, ich hab schon wieder ein kleines Problemchen:

Mein Programm soll mal auf einem uralt Win95 Rechner laufen und da dauert ein Rechenvorgang relativ lange. (~10, 15 sec)

Deshalb hab ich mir ein zweites Form gemacht mit 'bsDialog' in dem nur ein Label drauf ist mit der Caption '...Bitte warten...'. Dieses Form2 wird am Anfang der Rechnerei geöffnet und am ende wieder geschlossen. Das ganze sieht so aus:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.Button3Click(Sender: TObject);

  Form2 := TForm2.Create(Application);
  Form2.Show;
  Form2.Label1.Caption := '...Bitte warten...';

  //Rechnerei

  Form2.Close;
  Form2.Free;


Das geht auch soweit, nur dass das Form2.Label1 einfach nicht zu sehen ist. Es ist aber schon während der Entwurfszeit erstellt worden mit Caption usw. Ich hab auch mal versucht ein Bild zu laden, hat auch nicht gefunzt. Es wird immer ein leeres Form2 angezeigt ohne Label etc.
Könnte es evtl. sein, dass mein Rechner (P4 2Ghz) die Berechnungen so schnell durchführt, dass Form2 nicht genügend Zeit hat sich vollständig zu laden?

Wäre dankbar um Hilfe! :)

Moderiert von user profile iconUGrohne: Code- durch Delphi-Tags ersetzt
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Di 24.06.03 09:12 
Das Form wird nicht richtig angezeigt, weil noch kein ordentlicher Paint-Vorgang ausgelöst wurde. du solltest vor der Rechnerei application.ProcessMessages aufrufen und evtl. während der Rechnerei auch (falls man z.B. das Prog minimiert.
fussl Threadstarter
Hält's aus hier
Beiträge: 15



BeitragVerfasst: Di 24.06.03 09:24 
Wow, das ging ja schnell!

Ja, jetzt klappt alles wunderbar. Danke nochmal!