AliReza Vafakhah
دوشنبه 02 خرداد 1390, 01:17 صبح
سلام دوستان
تو برنامه ام مشکلی داشتم که با CreateParams حل شد ولی یه مشکل دیگه واسم ایجاد کرد.
مشکلی که من داشتم نمی تونستم به صورت عادی چندتا از فرم های برنامه رو با خاصیت FormStyle:= fsStayOnTop قرار بدم چون فقط این خاصیت روی فرم اصلی عمل می کنه. به هر حال با CreateParams و تغییر ExStyle فرم های فرزند (همون فرم های که می خواهم OnTop باشند) این مشکل حل شد اما یک مشکل دیگه واسم ایجاد شده.
اگر CreateParams فرم را OnTop کنیم و فرم در BorderStyle برابر با bsToolWindow باشد مشکلی پیش نمیاد اما اگر BorderStyle هر چه به غیر از bsToolWindow باشد در این صورت یک Taskbar باتن (Button ) از فرم ایجاد میشه که جالب اینجاست هرچه در CreateParams این ویژگی برداشته میشه روی فرم هیچ تاثیری نداره.
دوستان یک نمونه از تفاوت نمایش فرم رو در پروژه ضمیمه قرار دادم که منظورم را بیشتر بیان می کند.
procedure CreateParams(var Params: TCreateParams); override;
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
Self.Hide;
end;
procedure TForm2.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
with Params do
begin
{
"" ExStyle:= (ExStyle or WS_EX_TOPMOST) and not WS_EX_APPWINDOW ""
Can not Remove Taskbar Button
}
ExStyle:= ExStyle or WS_EX_TOPMOST;
WndParent:= GetDesktopWindow;
end;
end;
تو برنامه ام مشکلی داشتم که با CreateParams حل شد ولی یه مشکل دیگه واسم ایجاد کرد.
مشکلی که من داشتم نمی تونستم به صورت عادی چندتا از فرم های برنامه رو با خاصیت FormStyle:= fsStayOnTop قرار بدم چون فقط این خاصیت روی فرم اصلی عمل می کنه. به هر حال با CreateParams و تغییر ExStyle فرم های فرزند (همون فرم های که می خواهم OnTop باشند) این مشکل حل شد اما یک مشکل دیگه واسم ایجاد شده.
اگر CreateParams فرم را OnTop کنیم و فرم در BorderStyle برابر با bsToolWindow باشد مشکلی پیش نمیاد اما اگر BorderStyle هر چه به غیر از bsToolWindow باشد در این صورت یک Taskbar باتن (Button ) از فرم ایجاد میشه که جالب اینجاست هرچه در CreateParams این ویژگی برداشته میشه روی فرم هیچ تاثیری نداره.
دوستان یک نمونه از تفاوت نمایش فرم رو در پروژه ضمیمه قرار دادم که منظورم را بیشتر بیان می کند.
procedure CreateParams(var Params: TCreateParams); override;
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
Self.Hide;
end;
procedure TForm2.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
with Params do
begin
{
"" ExStyle:= (ExStyle or WS_EX_TOPMOST) and not WS_EX_APPWINDOW ""
Can not Remove Taskbar Button
}
ExStyle:= ExStyle or WS_EX_TOPMOST;
WndParent:= GetDesktopWindow;
end;
end;