![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как минимизироваться в панель задач? [D5, Win2k]
seregin2 © (2004-07-30 10:32:00)Всем привет!
Я создаю окно динамически. Потом запускаю его с помощью ShowModal. Автоматически создаваемых окон в приложении нет, таким образом это окно - единственное. BorderStyle:= vbSingle, BorderIcons:= [biMinimize, biSystemMenu]. Когда сворачиваю его кнопкой или из системного меню, то оно сворачивается на Рабочий стол (как MDIChild в MDI-приложениях, только оные сворачиваются в рабочей области MDIForm). Если сворачиваю через кнопку окна на Панели задач, то сворачивается в Панель задач.
Как мне сделать, чтобы оно сворачивалось ВСЕГДА в Панель задач?
seregin2 (2004-07-30 14:34:00) [1]пардон, от TCustomForm и WS_EX_APPWINDOW! TUser - отдельный сенкс!
seregin2 (2004-07-30 14:29:00) [2]Все, разобрался.
Не нужно стиль трогать, не нужно Minimize обрабатывать, нужно наследовать от TCustomForm.
Большое спасибо всем, принявшим живое участие :)
seregin2 (2004-07-30 14:05:00) [3]блин, WS_EX_APPWINDOW помог, но теперь появляется еще одна кнопка на Панели задач!
и Application.Minimize работает не так - окно коряво минимизируется, но ладно. Оно восстанавливается в свернутое окно на Рабочем столе.
Если поставить и WS_EX_APPWINDOW и Application.Minimize, то вообще ерунда творится.
Такое ощущение, что у Application есть еще одно скрытое окно(MainForm в моем приложении нет).
seregin2 (2004-07-30 12:44:00) [4]> TUser
у меня наследник, но уже неважно, мне EX_APPWINDOW помог. Спасибо!
Kurtevich (2004-07-30 12:44:00) [5]
MyForm.OnHide() или OnDeactivate();
begin
if WindowState = wsMinimized then
Application.Minimize;
end;
... не уверен насчет правильности имен ...
TUser (2004-07-30 12:38:00) [6]В моем понимании динмическая форма - это такая, которую ты описал но не вызываешь конструктора. А ты ее прямо как TForm создаешь? Я думаю, поще написать наследника, убрать его из AutoCreate.
seregin2 (2004-07-30 12:29:00) [7]пришел с обеда... сэнкс... CreateForm не поможет - она DFM ищет - у меня его нет - форма динамическая.
WS_EX_APPWINDOW сейчас попробую, спасибо
TUser (2004-07-30 11:08:00) [8]Перепиши CreateParams, там добавь
Params.ExStyle:=Params.ExStyle or WS_EX_APPWINDOW;
{кажется так, подробнее - в Windows.pas}
Правда для модальной формы не уверен. Но попробуй, если прокатит - нам скажешь.
Sancho (2004-07-30 10:49:00) [9]Попробуй Application.CreateForm, не уверен что поможет это лишь предположение, но этот метод делает первую форму которую создает главной формой приложения (Application.MainForm)
GuAV (2004-07-30 10:49:00) [10]Вот так вроде получается.
program Project1;
uses
Forms;
{$R *.res}
var F: TForm;
begin
// F:=TForm.Create(nil); // так не работает
with Application do CreateForm(TForm, F); // так работает
with F do
try
ShowModal;
finally
Free;
end;
end.
А вообще имхо нужно делать так, как это делается обычно, т.е. создавать обычную форму в дезайнтайме (возможно и пустую), ...
seregin2 (2004-07-30 10:37:00) [11]О! Так свораиваются окошки в Delphi! :-)
(чтобы легче было понятно сидячим тут)