-
для приложения без форм. Как это реализовать?
Манипуляции с Application.Handle через ShowWindow/SetWindowLong не помогли
-
> TIF © (22.10.09 03:49) > > для приложения без форм.
А что имеется в виду? WinAPI о формах вообще не знает ничего.
-
> А что имеется в виду?
VCL Forms Application из которого удаляется форма с юнитом, создаваемые по-умолчанию (вместо них создаётся новый чистый Unit.pas). Итого = Unit.pas + Project.dpr Ну или если попроще, то просто минимальный Project.dpr: program Project;
uses
...
begin
...
end.
-
Дело в том что такой проект мало чем отличается пустого проекта на Pascal. Если дополнить этот проект директивой {$APPTYPE CONSOLE} (или создать New->Others->ConsoleApplication) то проект дополнится консолевким окном и принципы работы с этим окном фактически не будут отличатся от Pascal.
Но! Эта программа - всего лишь просто процесс, он будет сидеть в диспетчере задач но окна у него нет. Для того чтобы у него появилось окно, нужно сначала зарегистрировать через WinAPI новый класс окна, а далее создать через тот же WinAPI новое окно и вручную обрабатывать все сообщения которые посылает в это окно пользователь и система.
Только после создания окна, на таскбаре автоматически генерируется кнопка с заголовком окна и иконкой назначенной нашему приложению. Если я не ошибаюсь эта будет та иконка что отображается и в проводние виндовс, соответственно эта же иконка будет и в левом верхнем углу заголовка окна. В WinAPI вероятно имеются специальные функции для гибкой настройки всего вышеперечисленного но это нужно читатать и изучать WinAPI.
Пока не изучите базовые принципы работы WinAPI то врядли сможете стать хорошим программистом так как даже использую VCL необходимо понимать как она работает.
-
> Ну или если попроще, то просто минимальный Project.dpr: > program Project; > uses > ... > begin > ... > end.
И откуда возьмется Application.Handle ?
-
Из первых ...
-
> И откуда возьмется Application.Handle ?
Ну наверное из uses forms; > Только после создания окна, на таскбаре автоматически генерируется > кнопка с заголовком окна и иконкой назначенной нашему приложению. >
То есть категорично "нет окна - не будет и кнопки"? Кнопка всегда связана с каким-либо окном? Ок. Допустим что никакой лазейки создания кнопки для процесса нет, но ведь Application - это как раз и есть самое главное окно delphi-приложения, только невидимое? Окно, значит, есть... (или у меня ошибка в рассуждениях). А как для него кнопку-то сотворить для него?
-
RTFS: TApplication.Run
-
> TApplication.Run
Посмотрел. Про кнопку ничего не увидел, намёк не понял :(
-
> Посмотрел. Про кнопку ничего не увидел, намёк не понял
Посмотри еще раз. Если нет главной формы, нет обработки сообщений, откуда кнопка возьмется ?
|