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 2 von 3     12 3      
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#11

AW: Wann wird eine Form angezeigt ?

  Alt 24. Mär 2018, 17:18
Man könnte das auch mit einer eigenen Message lösen, die man sich selbst schickt (aber nicht SendMessage, sondern PostMessage benutzen). Die wird dann abgearbeitet, wenn alle anderen Messages davor durch sind.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
günni0
(Gast)

n/a Beiträge
 
#12

AW: Wann wird eine Form angezeigt ?

  Alt 24. Mär 2018, 17:31
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
Irgendwo deklarieren
Delphi-Quellcode:
const
 WM_FORM_VISIBLE = WM_USER + 1;
  Mit Zitat antworten Zitat
H.Bothur

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

AW: Wann wird eine Form angezeigt ?

  Alt 24. Mär 2018, 17:31
Gehen wir davon aus, dass das Formular momentan so aufgerufen wird:
Delphi-Quellcode:
procedure TMainForm.Button1Click(Sender: TObject);
begin
  Form1.Show;
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?
nein - die Form ist ja die Mainform des Programmes - sprich das Programm soll vollautomatisch ablaufen und nur eben während die Daten verarbeitet werden einen Status anzeigen - und sich dann eben auch selber wieder beenden.

Das ist übrigens (fast) der komplette Code, der Rest ist der Delphi-Standard:

Delphi-Quellcode:
unit TestUnit;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    procedure FormShow(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

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, 9);
      Form1.Label1.Refresh;
    end;
  end;
  ArtikelString.Free;
  Application.Terminate;
end;

end.
Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#14

AW: Wann wird eine Form angezeigt ?

  Alt 24. Mär 2018, 17:35
Moin...
Zitat:
Man könnte das auch mit einer eigenen Message lösen
...genau.
Delphi-Quellcode:
const
  WM_AFTERSHOW = WM_USER + 100;
...
procedure FormAfterShow(var Msg: TMessage); message WM_AFTERSHOW;
...
procedure TfoMain.FormAfterShow(var Msg: TMessage);
begin
  // das ist dann sichtbar...
end;
  Mit Zitat antworten Zitat
günni0
(Gast)

n/a Beiträge
 
#15

AW: Wann wird eine Form angezeigt ?

  Alt 24. Mär 2018, 17:36
Moin...
Zitat:
Man könnte das auch mit einer eigenen Message lösen
...genau.
Delphi-Quellcode:
const
  WM_AFTERSHOW = WM_USER + 100;
...
procedure FormAfterShow(var Msg: TMessage); message WM_AFTERSHOW;
...
procedure TfoMain.FormAfterShow(var Msg: TMessage);
begin
  // das ist dann sichtbar...
end;
Genau wie ich oben schon erklärt habe.
  Mit Zitat antworten Zitat
H.Bothur

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

AW: Wann wird eine Form angezeigt ?

  Alt 24. Mär 2018, 17:37

Irgendwo deklarieren
Delphi-Quellcode:
const
 WM_FORM_VISIBLE = WM_USER + 1;
Danke - da war ich gerade Blind ... ich dachte das wäre irgendeine feste Systemkonstante aus einer Unit.
Jetzt klappt es wunderbar :_)

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

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#17

AW: Wann wird eine Form angezeigt ?

  Alt 24. Mär 2018, 17:50
Hallo,
warum nimmst Du nicht FormActivate?

Und dort als letzte Zeile
PostMessage(Handle, WM_CLOSE, 0, 0);
Heiko
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#18

AW: Wann wird eine Form angezeigt ?

  Alt 24. Mär 2018, 17:58
Wenn Form1 das Hauptformular ist, kann man das Problem doch in der DPR lösen:

Man entferne dort die Zeile Application.Run; und füge statt dessen dort ein:
Delphi-Quellcode:
  Form1.Show;
  Form1.DoSomething;
Das Close in DoSomething führt dazu, dass das Programm beendet wird. Man muss es dann nicht per Selbstmord über Application.Terminate; beenden.
Eventuell vorhandene OnClose-Ereignisse werden dann auch noch korrekt verarbeitet.
  Mit Zitat antworten Zitat
H.Bothur

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

AW: Wann wird eine Form angezeigt ?

  Alt 24. Mär 2018, 18:30
Wenn Form1 das Hauptformular ist, kann man das Problem doch in der DPR lösen:
DANKE !! Das ist imho eine schöne und elegante Lösung !!

Gruß
Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Wann wird eine Form angezeigt ?

  Alt 24. Mär 2018, 20:35
Steig lieber auf eine ProgressBar Anzeige um, ein Panel was sich bei jedem Wechsel umbenennt verzögert die abarbeitung.
Besser eine Anzeige per Bar, das Max ist die Menge der Daten, bei unbekannt viel Daten halt Marquee Effekt und alle paar (10'er/50'er/100'er?) Schritte mal den Anwender informieren das was verarbeitet wurde. Nur so am Rande meine 2 Cent.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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:44 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