چگونگی حذف دکمه فرم از نوار وظیفه در دلفی 2007
با سلام به دوستان خوبم
همه می دونید تو دلفی های ماقبل 2006 و 2007 به راحتی با افزودن یک روال به قسمت پابلیک و پردازش مسیج های رسیده به آن می تونستیم فرم رو مینیمایز کنیم مثلا این کدش بود :
procedure TForm1.InTaskbar(_AppHandle:THandle;_Be:Boolean);
begin
ShowWindow(_AppHandle, SW_HIDE);
if _Be then
SetWindowLong(_AppHandle, GWL_EXSTYLE,WS_EX_WINDOWEDGE)
else
SetWindowLong(_AppHandle, GWL_EXSTYLE,WS_EX_APPWINDOW-WS_EX_TOOLWINDOW);
ShowWindow(_AppHandle, SW_SHOW);
end;
(کد از آقای احدی)
که با فراخونیش و دادن هندل فرممون می تونستیم دکمه رو روی Taskbar پنهان کنیم.
ولی تو دلفی 2007 برای یه جور سازگاری هایی با ویستا مجبور شدن یه سری تغییرات بدن که حتی باعث شده کمپوننت هایی که تو ورژن های اخیر تو این زمینه کاربرد داشتند هم غیر قابل استفاده بشن
تو این نسخه یه روال جدید به نام MainFormOnTaskBar به کلاس Application برنامه اضافه شده .
می رم سر اصل مطلب :
دستور زیر رو در بخش یونیت اصلی پروژتون اضافه کنید
دقت کنید قبل از create هر فرمی باشه
Application.MainFormOnTaskBar:=False;
حالا باید در رویداد OnShow فرم مورد نظرتون دستور زیر رو استفاده کنین :
(ShowWindow(Application.Handle, SW_HIDE
با اجرای برنامتون می بینید که دیگه دکمه ای روی نوار وظیفه در کار نیست .
البته هر جای برنامه اگر خواستید می تونید با دادن این دستور (یا همون دستور قبلی)دوباره نمایش دکمه رو فعال (یا غیر فعال) کنید :
Application.MainFormOnTaskBar:=True;
سوالی بود در خدمتم.