AGB  ·  Datenschutz  ·  Impressum  







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

Frage zu FormCreate

Ein Thema von S20000 · begonnen am 22. Mai 2008 · letzter Beitrag vom 22. Mai 2008
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#11

Re: Frage zu FormCreate

  Alt 22. Mai 2008, 16:00
Zitat von HiWieGehts:
OnCreate und OnShow werden aufgerufen, bevor die Form angezeigt wird. Daher auch das von die beschriebene verhalten.
Mache aus deinem TForm1.FormCreate ein TForm1.InitShowMessage. Diese rufst du dann nachdem Show für Form1 auf.
Eine weitere, nicht sehr schöne Möglichkeit, ist die Verwendung eines Timers. Diesen startest du im OnCreate oder OnShow und im OnTimer mache dein ShowMessage.
Dann doch lieber OnActivate mit einem Merker.
Alles andere ist Murks.
Das hätten die Leute bei meinem alten Arbeitgeber so gemacht, weill sie Luschen sind und es nicht besser konnten.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
HiWieGehts

Registriert seit: 19. Aug 2005
101 Beiträge
 
Delphi 10.4 Sydney
 
#12

Re: Frage zu FormCreate

  Alt 22. Mai 2008, 16:07
Zitat von RavenIV:
Zitat von HiWieGehts:
OnCreate und OnShow werden aufgerufen, bevor die Form angezeigt wird. Daher auch das von die beschriebene verhalten.
Mache aus deinem TForm1.FormCreate ein TForm1.InitShowMessage. Diese rufst du dann nachdem Show für Form1 auf.
Eine weitere, nicht sehr schöne Möglichkeit, ist die Verwendung eines Timers. Diesen startest du im OnCreate oder OnShow und im OnTimer mache dein ShowMessage.
Dann doch lieber OnActivate mit einem Merker.
Alles andere ist Murks.
Das hätten die Leute bei meinem alten Arbeitgeber so gemacht, weill sie Luschen sind und es nicht besser konnten.
So eine Antwort kann wohl nur jemand schreiben, der beim Lesen einer Zeile die vorhergehende schon wieder vergessen hat.
  Mit Zitat antworten Zitat
S20000

Registriert seit: 22. Apr 2008
84 Beiträge
 
#13

Re: Frage zu FormCreate

  Alt 22. Mai 2008, 16:08
Hi,

kannst du das etwas näher erklären?

Zitat:
Mache aus deinem TForm1.FormCreate ein TForm1.InitShowMessage. Diese rufst du dann nachdem Show für Form1 auf.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#14

Re: Frage zu FormCreate

  Alt 22. Mai 2008, 16:10
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    [...]
  private
    FFirstShow: Boolean;
  end;

implementation

procedure TForm1.Create(Sender: TObject);
begin
  FFirstShow := true;
end;

procedure TForm1.Activate(Sender: TObject);
begin
  if (FFirstShow) then
  begin
    ShowMessage('Hallo!');
    FFirstShow := false;
  end;
end;
Btw. stimme ich Raven zu, dass das mit dem Marker die eleganteste Lösung ist.
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#15

Re: Frage zu FormCreate

  Alt 22. Mai 2008, 16:13
oder du regelst das ganze gleich in der Projektdatei (Projekt -> Quelltext anzeigen)
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: Frage zu FormCreate

  Alt 22. Mai 2008, 16:18
Das geht nicht. Die Formulare werden erst in Application.Run angezeigt, und das kehrt erst ganz am Ende zurück.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#17

Re: Frage zu FormCreate

  Alt 22. Mai 2008, 16:19
"Falsch", werden sie nicht.

Nutze in meinem Projekt folgendes:

Delphi-Quellcode:
begin
  Application.Initialize;

  flogin := Tflogin.Create(Application);
  if flogin.ShowModal = mrOK then
  begin
    Application.CreateForm(Tfmain, fmain);
    Application.Run;
  end;
end.
Geht ohne Probleme
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#18

Re: Frage zu FormCreate

  Alt 22. Mai 2008, 16:22
Ja, ShowModal kann Application.Run ersetzen, wie man im VCL-Code sieht.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
S20000

Registriert seit: 22. Apr 2008
84 Beiträge
 
#19

Re: Frage zu FormCreate

  Alt 22. Mai 2008, 16:25
Vielen Dank, die Idee mit dem Merker ist gut!
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#20

Re: Frage zu FormCreate

  Alt 22. Mai 2008, 16:26
Zitat von Apollonius:
Das geht nicht. Die Formulare werden erst in Application.Run angezeigt, und das kehrt erst ganz am Ende zurück.
Delphi-Quellcode:
begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);

  Form1.Show;
  Form1.Refresh;
  Form1.MyOwnCreate; // Eigene procedure, hier kannst du deine nachricht anzeigen lassen

  Application.Run;
end.
Dominik
Wer anderen eine Grube gräbt, hat ein Gruben-Grab-Gerät!
  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 22:35 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