Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
ВнизКак минимизироваться в панель задач? Найти похожие ветки
← →
seregin2 (2004-07-30 10:32) [0]Всем привет!
Я создаю окно динамически. Потом запускаю его с помощью ShowModal. Автоматически создаваемых окон в приложении нет, таким образом это окно - единственное. BorderStyle:= vbSingle, BorderIcons:= [biMinimize, biSystemMenu]. Когда сворачиваю его кнопкой или из системного меню, то оно сворачивается на Рабочий стол (как MDIChild в MDI-приложениях, только оные сворачиваются в рабочей области MDIForm). Если сворачиваю через кнопку окна на Панели задач, то сворачивается в Панель задач.
Как мне сделать, чтобы оно сворачивалось ВСЕГДА в Панель задач?
← →
seregin2 (2004-07-30 10:37) [1]О! Так свораиваются окошки в Delphi! :-)
(чтобы легче было понятно сидячим тут)
← →
Sancho © (2004-07-30 10:49) [2]Попробуй Application.CreateForm, не уверен что поможет это лишь предположение, но этот метод делает первую форму которую создает главной формой приложения (Application.MainForm)
← →
GuAV © (2004-07-30 10:49) [3]Вот так вроде получается.
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.
А вообще имхо нужно делать так, как это делается обычно, т.е. создавать обычную форму в дезайнтайме (возможно и пустую), ...
← →
TUser © (2004-07-30 11:08) [4]Перепиши CreateParams, там добавь
Params.ExStyle:=Params.ExStyle or WS_EX_APPWINDOW;
{кажется так, подробнее - в Windows.pas}
Правда для модальной формы не уверен. Но попробуй, если прокатит - нам скажешь.
← →
seregin2 (2004-07-30 12:29) [5]пришел с обеда... сэнкс... CreateForm не поможет - она DFM ищет - у меня его нет - форма динамическая.
WS_EX_APPWINDOW сейчас попробую, спасибо
← →
TUser © (2004-07-30 12:38) [6]В моем понимании динмическая форма - это такая, которую ты описал но не вызываешь конструктора. А ты ее прямо как TForm создаешь? Я думаю, поще написать наследника, убрать его из AutoCreate.
← →
seregin2 (2004-07-30 12:44) [7]> TUser
у меня наследник, но уже неважно, мне EX_APPWINDOW помог. Спасибо!
← →
Kurtevich (2004-07-30 12:44) [8]
MyForm.OnHide() или OnDeactivate();
begin
if WindowState = wsMinimized then
Application.Minimize;
end;
... не уверен насчет правильности имен ...
← →
seregin2 (2004-07-30 14:05) [9]блин, WS_EX_APPWINDOW помог, но теперь появляется еще одна кнопка на Панели задач!
и Application.Minimize работает не так - окно коряво минимизируется, но ладно. Оно восстанавливается в свернутое окно на Рабочем столе.
Если поставить и WS_EX_APPWINDOW и Application.Minimize, то вообще ерунда творится.
Такое ощущение, что у Application есть еще одно скрытое окно(MainForm в моем приложении нет).
← →
seregin2 (2004-07-30 14:29) [10]Все, разобрался.
Не нужно стиль трогать, не нужно Minimize обрабатывать, нужно наследовать от TCustomForm.
Большое спасибо всем, принявшим живое участие :)
← →
seregin2 (2004-07-30 14:34) [11]пардон, от TCustomForm и WS_EX_APPWINDOW! TUser - отдельный сенкс!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.031 c