Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.15;
Скачать: CL | DM;

Вниз

Как минимизироваться в панель задач?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.035 c
14-1091007858
DSKalugin
2004-07-28 13:44
2004.08.15
программа про елочку :-)) П.С. шутка


1-1091341312
Antonmm
2004-08-01 10:21
2004.08.15
Картинка в RichEdit


14-1091007716
Дима
2004-07-28 13:41
2004.08.15
Книги по Delphi 7


1-1091101134
doodle
2004-07-29 15:38
2004.08.15
Как преобразовать Integer в String и прибавить к строке.


14-1090677468
Кириешки
2004-07-24 17:57
2004.08.15
Помогите люди бедному программисту...