Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Form vorm schliessen von L nach R und R nach L verkleinern (https://www.delphipraxis.net/4847-form-vorm-schliessen-von-l-nach-r-und-r-nach-l-verkleinern.html)

Pseudemys Nelsoni 14. Mai 2003 10:28


Form vorm schliessen von L nach R und R nach L verkleinern
 
hi,

ich möchte das vor dem schliessen meines forms das das fenster von links nach rechts und von rechts nach links, immer 1 pixel kleiner wird (per timer), bis es ganz verschwunden ist (danach wird closed)...aber wenn ich das so mache:

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Form1.Left := form1.Left+1;
  Form1.Width := Form1.Width-1;
end;
wird nur von links nach rechts verkleinert....wenn ich es so mache:

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Form1.Width := Form1.Width-1;
  Form1.Position := poScreenCenter;
end;
dann klappt das mit der grösse zwar, aber flackert wie sau

hat jemand ne idee ?

gruss silent

erniepb 14. Mai 2003 10:34

Hallöle wie wärs wenn du ganz einfach die rste Variante benutzt aber die Breite um 2 subtrahierst .. :idea:

Also:
Code:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Form1.Left := form1.Left+1;
  Form1.Width := Form1.Width-2;
end;
Mfg

Pseudemys Nelsoni 14. Mai 2003 10:37

hoi,

das prob ist, das sich dann die komponenten die auf der form liegen mitbewegen nach rechts, es sollte von den seiten immer kleiner werden und die komps die drauf sind sollten sich nicht bewegen

:wink:

phlux 14. Mai 2003 11:24

Dann musst du das neuzeichnen der Form verhindern!

Pseudemys Nelsoni 14. Mai 2003 11:27

kannst du mir noch sagen wie? *g

phlux 14. Mai 2003 11:33

Hi!
Es sollte so gehen:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
  private
    procedure WMEraseBkgnd(var Msg: TMessage); message WM_ERASEBKGND;
  public
 
  end;
 
procedure TForm1.WMEraseBkgnd;
begin
  Msg.Result := 0;
end;

Pseudemys Nelsoni 14. Mai 2003 12:20

hoi jo sieht ganz gut aus, bloss das es jetzt garnichtmehr gezeichnet wird das heisst wenn ichn anderes fenster über mein prog schiebe hats das andere prog mit drauf designt lol :(

phlux 14. Mai 2003 13:01

hmm das musst du gucken wann dein Fenster aktiviert ist und nur dann Msg.Result := 0 setzen wenn dein Fenster über allen anderen ist, wenn du nämlich nur noch dann dein Fenster nicht neu zeichnest wenn es über allen anderen ist kann sich ja keins mehr drüber schieben ;).

Pseudemys Nelsoni 15. Mai 2003 04:40

danke ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:12 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