ورود

View Full Version : رویداد minimiza چیه



nassim_20
چهارشنبه 05 تیر 1387, 21:19 عصر
وقتی برنامه از طریق ویندوز mini میشه مثلا از طریق دکمه های winkey+d و یا Show Desktop در Quike Launch
از کجا و از طریق چه رویدادی میشه فهمید که برنامه مینیمایز شده؟

vcldeveloper
پنج شنبه 06 تیر 1387, 00:07 صبح
http://barnamenevis.org/forum/showthread.php?t=111387

nassim_20
پنج شنبه 06 تیر 1387, 00:26 صبح
کدی که اینجا نوشته تنها زمانیکه دکمه مینیمایز برنامه رو بزنیم کار میکنه ولی من می خواهم وقتی خارج از برنامه، برنامه رو کوچک می کنیم اتفاق بیافتد
توی ویندوز از طرق مختلف میشه یه پنجره رو کوچک کرد دو از راهاش اینکه طریق دکمه های winkey+d و یا Show Desktop در Quike Launch
بدون اینکه حتی برنامه active باشه البته این موردش برای من اهمیتی نداره که اگه فرم فعال هم نبود کارکنه فقط می خواهم وقتی کاربر از بیرون از برنامه پنجره رو کوچک میکنه من بفهمم و کدم رو اونموقع اجرا کنم
کدم هم اینکه می خواهم رزولوشن رو برگردونم به حالت قبل و وقتی باز برگشت به برنامه رزولوشن برگردد به حالت دلخواه من

nassim_20
پنج شنبه 06 تیر 1387, 00:33 صبح
فکر کنم در رویداد Application.OnMinimize باید کدم رو قرار بدم ولی نمی دونم چطوری باید ازش استفاده کنم اینو نوشتم ارور داد

procedure Application.OnMinimize;
begin
ShowMessage('Minimize);
end;

nassim_20
پنج شنبه 06 تیر 1387, 00:37 صبح
این کد رو هم پیدا کردم ولی اون چیزی که می خواهم نیست

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMinimize := AppMinMessage;
Application.OnRestore := AppMaxMessage
end;

procedure TForm1.AppMinMessage(Sender: TObject);
begin
ShowMessage('Minimize');
end;

procedure TForm1.AppMaxMessage(Sender: TObject);
begin
ShowMessage('Maximize');
end;

nassim_20
پنج شنبه 06 تیر 1387, 11:16 صبح
بالاخره خودم پیداش کردم خیلی ساده بود ولی من گیج شده بودم
برای استفاده از این رویداد باید از تب additional کامپوننت ApplicationEvents رو استفاده می کردم و از رویداد onminimaze
که البته اینجا این رویداد به کارم نیامد و من در رویداد deactive کدم رو نوشتم بدین صورت


procedure TForm1.ApplicationEvents1Deactivate(Sender: TObject);
begin
if not(Application.Active) then
begin
Application.HintHidePause := 2500;
if (x<>1024) and (y<>768) then
SetResolution(x,y);
end;
end;