Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi On "AfterShow" ? (https://www.delphipraxis.net/29701-aftershow.html)

Pseudemys Nelsoni 13. Sep 2004 15:33


On "AfterShow" ?
 
hi,

ich möchte eine prozedur ausführen unmittelbar nachdem mein Form sichtbar(!) ist

aber weder im OnCreate/OnShow noch OnActivate wird das Fenster angezeigt bevor meine prozedur beendet ist...

wie kann ich das nun hinbekommen? So eine art "OnAfterShow" ?

Funky-Sepp 13. Sep 2004 16:02

Re: On "AfterShow" ?
 
Du musst die Methode Paint der Form überschreiben

Delphi-Quellcode:
  TMyForm = class( TForm )
  private
    fPainted : Boolean;
  protected
  public
    procedure Paint; Override;
    procedure AfterShow;
  published
  end;

implementation


procedure TMyForm.Paint;
begin
  inherited Paint;
  if not fPainted then begin
    fPainted := True;
    AfterShow;
  end;
end;
Das müsste funktionieren

Pseudemys Nelsoni 13. Sep 2004 16:21

Re: On "AfterShow" ?
 
danke, funzt einwandfrei :)

richard_boderich 11. Jul 2005 12:11

Re: On "AfterShow" ?
 
@all

dabei wird die routine doch aber jedesmal aufgerufen, wenn das form neu gezeichnet wird oder?

Gruß richard

sniper_w 11. Jul 2005 12:24

Re: On "AfterShow" ?
 
Zitat:

dabei wird die routine doch aber jedesmal aufgerufen, wenn das form neu gezeichnet wird oder?
Richtig.

richard_boderich 11. Jul 2005 12:29

Re: On "AfterShow" ?
 
@ sniper_w

erstma thx für deine antwort. :)
muss ich denn sonst noch irgendwas beachten, wenn ich diese Routine einsetze. die automatische
neuzeichnung bei minimieren oder verkleinern des forms funktioniert also trozdem ja ?
außerdem will ichs nur einmal ausführen. wuerd das so machen?

Delphi-Quellcode:
procedure TMyForm.Paint;
begin
  inherited Paint;
  if not fPainted then begin
    fPainted := True;
    if hastenichgesehn=true then AfterShow;
  end;
end;

alcaeus 11. Jul 2005 12:35

Re: On "AfterShow" ?
 
Hallo Richard,

erstens hab ich mal dein Posting von oben geloescht ;)

Und ja, so sollte es funktionieren. Korrekter waere aber, das mehrfache aufrufen im OnAfterShow-Handler selbst abzufangen. Das OnAfterShow-Ereignis soll ja nach dem Show ausgeloest werden, und das kann bekanntlich mehr als einmal ausgefuehrt werden. Aber wie gesagt, so gehts auch ;)

Greetz
alcaeus

richard_boderich 11. Jul 2005 12:41

Re: On "AfterShow" ?
 
@alcaeus,


ok, vielen dank du ;) hast was gut bei mir.

:cheers:

bis denn,

Richard

PS.: Wann kann man mit deinem Tut über die DPCollection rechnen ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz