Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Ereignis OnAfterResize ? (https://www.delphipraxis.net/48650-ereignis-onafterresize.html)

DataCool 28. Jun 2005 15:31


Ereignis OnAfterResize ?
 
Hi Leute,

hat jemand eine Idee wie ich ein Ereignis implementieren kann, das nicht wie OnResize andauernd, während des vergrößern, sondern nur einmalig, wenn das Vergrößern/verkleinern beendet wurde eintritt ?

Der Hintergrund ist folgender : Ich muss bei eintreten ein größenänderung ein TImage in eine bestimmte Größe umrechnen, wenn ich dafür OnResize nehmen würde, dann herzlichen dank an die Performance.

Also hat jemand ne Idee ?

Gruß Data

Christian Seehase 28. Jun 2005 15:33

Re: Ereignis OnAfterResize ?
 
Moin Data,

schau Dir mal MSDN-Library durchsuchenWM_SIZE an.

DataCool 28. Jun 2005 15:39

Re: Ereignis OnAfterResize ?
 
Hi Christian,

darauf denke ich basiert ja das Ereignis OnResize, und die Windows Message WM_SIZE tritt ja auch mehrfach ein !
Ich bräuchte eigentlich eine Message die einmalig nach dem Resize auftritt.

Gruß Data

Christian Seehase 28. Jun 2005 15:50

Re: Ereignis OnAfterResize ?
 
Moin Data,

sorry, ich hatte es mir nicht angeschaut, und es mit denken versucht :wall:
Danach hätte OnResize ja eigentlich auf WM_SIZING reagieren müssen.

Selbst wenn ich WM_SIZE selber implementiere wird das dauernd aufgerufen :gruebel:

DataCool 28. Jun 2005 15:57

Re: Ereignis OnAfterResize ?
 
Hi Christian,

ich habe mir gerade ne Quick and Dirty Lösung gebastelt :

ne Variable LastResize : TDateTime;

Im OnResize meines Controls :

Delphi-Quellcode:
  LastResize := now;
  if not Tim_CheckResizeEnd.Enabled then
    Tim_CheckResizeEnd.Enabled := true;
Code des Timers(Intervall 50, Enabled auf false) :
Delphi-Quellcode:
  if (now - dLastResize) > 52/24/60/60/100 then begin
    Tim_CheckResizeEnd.Enabled := false;
    // use beep just to check, if the after resize work well
    beep;
    // do after Resize stuff
  end;
Aber es muss doch ne elegantere Lösung geben, oder ?

Gruß Data

toms 30. Jun 2005 04:09

Re: Ereignis OnAfterResize ?
 
Delphi-Quellcode:
 private
    { Private declarations } 
    Procedure OnBeforeResize (var msg: TMessage); message WM_ENTERSIZEMOVE;  
    Procedure OnAfterResize (var msg: TMessage); message WM_EXITSIZEMOVE;  


// implementation

Procedure TForm1.OnBeforeResize(var msg: TMessage);
begin
 //..
end;


Procedure TForm1.OnAfterResize(var msg: TMessage);
begin
  //..
end;

DataCool 30. Jun 2005 12:09

Re: Ereignis OnAfterResize ?
 
Hi Toms,

genau das hatte ich gesucht, vielen Dank

Data


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