PDA

View Full Version : تغییر در فرم



Sandbad
سه شنبه 28 فروردین 1386, 22:19 عصر
من می خوام یه فرم داشته باشم که یه رویداد اضافی به نام onChangeState داشته باشه که وقتی فرم maximize یا minimize یا restore می شه بعدش این رویداد رخ بده.
توجه داشته باشید که OnResize قبل از تغییر خصوصیت WindowState رخ می ده و وقتی دکمه های سیستمی روی Border زده بشه(maximize,minimize,restore) اول OnResize رخ می‌ده بعد WindowState عوض می‌شه.
لطفا کاملا راهنمایی کنید و مراحل کار رو کامل بگین.
با تشکر از لطف شما.

Delphi_OnLine999
چهارشنبه 29 فروردین 1386, 01:19 صبح
.
.
.
private
{ Private declarations }
procedure GetMessage_System(var msg:TMessage);message WM_SYSCOMMAND;
public
{ Public declarations }
end;
.
.
.


procedure TForm1.GetMessage_System(var msg: TMessage);
begin
case msg.WParam of
SC_CLOSE:begin ShowMessage('Before Close.....in Closeing') ; exit; end;
SC_MAXIMIZE:begin ShowMessage('Before Maximaize..');end;
SC_MINIMIZE:begin ShowMessage('Before Minimaize..');end;
SC_RESTORE:begin ShowMessage('Before Restore..');end;
end;
inherited;
end;

توجه کن به عنوان مثال در فرم شما در این مثال با زدن کلید ضربدر بسته نمی شود به عبارتی تا به inherited; نرسی که وظیفه ارث بری از کلاس والد خود را دارد شما می توانی فرم خود را کنترل کنی.
موفق باشی