Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.03 c
1-1091380009
GuAV
2004-08-01 21:06
2004.08.15
Как вставить кнопки в TToolBar, созданный в ран-тайме?


1-1091221698
Ivanov
2004-07-31 01:08
2004.08.15
Как сделать"вкладку"


6-1087152399
Денис
2004-06-13 22:46
2004.08.15
сокс+смтп


1-1091439784
Вопрос
2004-08-02 13:43
2004.08.15
Цвет серий в TChartLegend


4-1080805108
shiller
2004-04-01 11:38
2004.08.15
Скрытие процесса в NT




   Наверх