-
Перерыл весь гугл, нашел решение для одной части задачи и для второй. Но склеить воедино никак не могу ( Проект на Delphi 7 работал прекрасно, переехал на Delphi XE и появилась эта проблема. Простите, тема заезженная до дыр, но действительно для такого набора в одной задаче не нашел решения.
В суть в следующем: Само приложение не отображается в таскбаре, только в трее. во время исполнения динамически создается форма, которая подвешивается на блокнот. Чтобы форма всегда была над блокнотом, выставляю блокнот ее родителем:
SetWindowLong(DynamicForm.Handle, GWL_HWNDPARENT, NotePad.Handle);
но сразу же после этого в таскбаре появляется кнопка приложения ( Пробовал выставлять стиль в WS_EX_TOOLWINDOW:
SetWindowLong(DynamicForm.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW) нет результата
Повторюсь, этой проблемы не было на D7, все работало как хотелось, но на XE стала появляться кнопка в панели задач. Помогите дельным советом...
-
Application.MainFormOnTaskBar?
-
Главная форма не показывается в таскбаре и с ней проблем нет. Кнопка в таскбаре появляется сразу после создания новой, дочерней, динамической формы и определения ее родителем формы другого приложения.
-
Application.MainFormOnTaskBar
-
НЕ РАБОТАЕТ ЭТО, скрывает ГЛАВНУЮ ФОРМУ и после запуска в таскбаре ничего нет, но когда создается динамическая форма - в такбаре появляется кнопка приложения. Если бы все было так просто, я бы не обращался за помощью. Нужен код приложения для изучения?
-
А ведь это свойство как раз то, что отличает Д7 от более старших версий Дельфи. Ты действительно пробовал поставить его в False в файле проекта?
-
Ок, начнем по порядку. Файл проекта:
program Project1;
uses Vcl.Forms, Unit1 in 'Unit1.pas' {Form1};
{$R *.res}
begin Application.Initialize; Application.MainFormOnTaskbar := false; Application.CreateForm(TForm1, Form1); Application.Run; end.
запускаю - в таскбаре ЕСТЬ кнопка приложения. то не так?
-
используется Delphi XE4 !
-
> w666w (21.10.13 18:28) [6] > > Ок, начнем по порядку. Файл проекта: > > program Project1; > > uses > Vcl.Forms, > Unit1 in 'Unit1.pas' {Form1}; > > {$R *.res} > > begin > Application.Initialize; > Application.MainFormOnTaskbar := false; > Application.CreateForm(TForm1, Form1); > Application.Run; > end. > > запускаю - в таскбаре ЕСТЬ кнопка приложения. то не так? >
Все так. Точно так как было и в Д7. А вот если бы оставил то что было по умолчанию в ХЕ (Application.MainFormOnTaskbar := true) кнопки приложения в таскбаре бы и не было вообще и никогда.
-
Мы как будто на разных языках говорим ))) я же пишу - разницы между
Application.MainFormOnTaskbar := true; и Application.MainFormOnTaskbar := false;
в Delphi XE почему то НЕТ!
-
> Мы как будто на разных языках говорим ))) я же пишу - разницы > между > > Application.MainFormOnTaskbar := true; > и > Application.MainFormOnTaskbar := false; > > в Delphi XE почему то НЕТ!
Её так же нет как и того суслика из анекдота. А ты так и не удосужился прочитать что это за новое свойство, которого не было в Д7. Что оно значит, для чего оно нужно. Что за кнопка находится в таскбаре когда это свойство true и когда false. Как же мы в результате можем говорить на одном языке?
-
> w666w (21.10.13 04:50)
> была над блокнотом, выставляю блокнот ее родителем:SetWindowLong(DynamicForm. > Handle, GWL_HWNDPARENT, NotePad.Handle);
Оный вызов д.б. из процесса блокнота. See also http://www.delphimaster.net/view/4-1258675071/-- Regards, LVT.
|