Можно ли использовать в сервисе компоненты, полученные из TWinControl? - PullRequest
2 голосов
/ 16 апреля 2010

Я создаю сервис Delphi.Есть ли способ использовать элементы управления, полученные из TWinControl, внутри сервисов?В конечном итоге элемент управления и любые элементы управления, которые я на него наделяю, будут сохранены в растровое изображение.Но все, что я пытаюсь получить, это сообщение об ошибке «элемент управления не имеет родительского окна».

Я успешно создал TBitMap и могу выполнять те же функции.Но наличие всей функциональности, встроенной в VCL, значительно упростит задачу.

Ответы [ 3 ]

2 голосов
/ 16 апреля 2010

Ваша программа жалуется, что у элемента управления нет родительского окна, поэтому предоставьте его. Создайте форму и поместите туда свои элементы управления. Формы могут быть окнами верхнего уровня, поэтому им не нужно иметь родителей. Форма будет служить родительским окном для остальных элементов управления.

Они все еще не будут видны, но, по крайней мере, они будут существовать.

1 голос
/ 16 апреля 2010

Я не думаю, что службы Windows предоставляются в качестве настольной службы. Если это так (без рабочего стола), вы не сможете делать ничего, что требует дескриптора окна в службе.

TBitmap работает там, потому что использует битовые дескрипторы и контроллеры памяти. Оконные ручки не требуются.

0 голосов
/ 17 апреля 2010

из-за приложения службы delphi не может использовать twincontrol (модуль форм), я всегда использую оболочку службы Windows. лучшая обертка теперь я знаю NSSM. Это приложение с открытым исходным кодом, которое запускает ваше приложение с правами системной учетной записи в сервисном режиме. он может контролировать код выхода вашего приложения и регистрировать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...