AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wann wird eine Form angezeigt ?

Ein Thema von H.Bothur · begonnen am 24. Mär 2018 · letzter Beitrag vom 26. Mär 2018
Antwort Antwort
Seite 1 von 3  1 23      
H.Bothur

Registriert seit: 25. Jun 2012
Ort: Seevetal & Lagos
252 Beiträge
 
Delphi 11 Alexandria
 
#1

Wann wird eine Form angezeigt ?

  Alt 24. Mär 2018, 13:15
Delphi-Version: 10.1 Berlin
Moin,

ich stehe mal wieder vollkommen auf dem Schlauch:

Ich habe ein Programm das automatisch - also ohne Start-Button oä. - bei Form.Show abläuft. Wann bzw. wie kann ich denn während des Programmlaufes die Form anzeigen ??

Ich habe mal ein Textprogramm erstellt - nur die Form, darauf ein Label und eine Textdatei mit 20.000 Zeilen.
Ich merke auch das das Programm ausgeführt wird, es ist aber nicht sichtbar.

Gruss
Hans

Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
var
  ArtikelString: TStringList;
  Zeile: String;
  i, j: Integer;
begin
  ArtikelString := TStringList.Create;
  ArtikelString.LoadFromFile('d:\temp\test\artikelliste.csv');
  for j := 1 to 10 do
  begin
    for i := 0 to ArtikelString.Count -1 do
    begin
      Zeile := ArtikelString.Strings[i];
      Form1.Label1.Caption := Copy(Zeile, 1, 12);
      Form1.Label1.Refresh;
    end;
  end;
  ArtikelString.Free;
  Application.Terminate;
end;

end.
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Wann wird eine Form angezeigt ?

  Alt 24. Mär 2018, 13:19
Nach Vorbereitung -> Selbstmord

Zitat:
  Application.Terminate;
Markus Kinzler
  Mit Zitat antworten Zitat
H.Bothur

Registriert seit: 25. Jun 2012
Ort: Seevetal & Lagos
252 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Wann wird eine Form angezeigt ?

  Alt 24. Mär 2018, 13:27
Nach Vorbereitung -> Selbstmord

Zitat:
  Application.Terminate;
Ist es - erklärt aber nicht warum in der Zwischenzeit nichts angezeigt wird. :_(
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Wann wird eine Form angezeigt ?

  Alt 24. Mär 2018, 13:38
Weil Form.Show vor dem Anzeigen ausgeführt wird.

Und auch wenn die Form sichtbar wäre, wäre ja wenig sichtbar
Markus Kinzler
  Mit Zitat antworten Zitat
günni0
(Gast)

n/a Beiträge
 
#5

AW: Wann wird eine Form angezeigt ?

  Alt 24. Mär 2018, 13:56
Dein Problem kann man schön mit WMFormVisible lösen

Delphi-Quellcode:
const
 WM_FORM_VISIBLE = WM_USER + 1;

private
 FormInitialised: Boolean;
 procedure WMFormVisible(var msg: TMessage); message WM_FORM_VISIBLE;
end;

implementation

procedure TForm1.FormCreate(Sender: TObject);
begin
 FormInitialised := False;
end;

procedure TForm1.WMFormVisible(var msg: TMessage);
begin
 if not FormInitialised then
  begin
   FormInitialised := True;
   
   Code hier rein
  end;
end;

Geändert von günni0 (24. Mär 2018 um 16:31 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Wann wird eine Form angezeigt ?

  Alt 24. Mär 2018, 14:51
Weil Form.Show vor dem Anzeigen ausgeführt wird.
Könnte man evtl. auch sagen das das OnShow-Event die letzte Aktion vor dem Anzeigen des Formulares ist.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Wann wird eine Form angezeigt ?

  Alt 24. Mär 2018, 14:54
Weil Form.Show vor dem Anzeigen ausgeführt wird.
Könnte man evtl. auch sagen das das OnShow-Event die letzte Aktion vor dem Anzeigen des Formulares ist.
Das wollte ich damit ausdrücken
Markus Kinzler
  Mit Zitat antworten Zitat
H.Bothur

Registriert seit: 25. Jun 2012
Ort: Seevetal & Lagos
252 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Wann wird eine Form angezeigt ?

  Alt 24. Mär 2018, 16:01
Dein Problem kann man schön mit WMFormVisible lösen
Das bekomme ich komischerweise nicht kompiliert ... Delphi (10.1) meckert bei

"message WM_FORM_VISIBLE;"
Undeklarierter Bezeichner "WM_FORM_VISIBLE"

Gruß
Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
H.Bothur

Registriert seit: 25. Jun 2012
Ort: Seevetal & Lagos
252 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Wann wird eine Form angezeigt ?

  Alt 24. Mär 2018, 16:04
Weil Form.Show vor dem Anzeigen ausgeführt wird.
Aber ... welches Ereignis kommt den wenn die Form wirklich zum ersten Mal sichtbar ist ?

Zitat:
Und auch wenn die Form sichtbar wäre, wäre ja wenig sichtbar
In dem Beispiel nicht viel - das stimmt

Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.415 Beiträge
 
Delphi 7 Professional
 
#10

AW: Wann wird eine Form angezeigt ?

  Alt 24. Mär 2018, 16:15
Gehen wir davon aus, dass das Formular momentan so aufgerufen wird:
Delphi-Quellcode:
procedure TMainForm.Button1Click(Sender: TObject);
begin
  Form1.Show;
end;
Dann könnte man den Aufruf dahingehend ändern:
Delphi-Quellcode:
procedure TMainForm.Button1Click(Sender: TObject);
begin
  Form1.Show;
  Form1.DoSomething; // Diese Methode enthält den Inhalt des jetzigen OnShow-Ereignisses.
  Close;
end;
Delphi-Quellcode:
procedure TForm1.DoSomething;
var
  ArtikelString: TStringList;
  Zeile: String;
  i, j: Integer;
begin
  ArtikelString := TStringList.Create;
  ArtikelString.LoadFromFile('d:\temp\test\artikelliste.csv');
  for j := 1 to 10 do
  begin
    for i := 0 to ArtikelString.Count -1 do
    begin
      Zeile := ArtikelString.Strings[i];
      Form1.Label1.Caption := Copy(Zeile, 1, 12);
      Form1.Label1.Refresh;
    end;
  end;
  ArtikelString.Free;
  Close;
end;
Eventuell könntest Du uns aber auch mal die Stelle in Deinem Quelltext zeigen, an der Form1 angezeigt werden soll. Was passiert da vorher noch so alles?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 10:13 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