Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Поток и форма.


Автор: Ak47black 2.1.2008, 18:08
Здравствуйте.
Подскажите пожалуйста как элементарно показать форму и потока
Вот такой код
Код

program Project2;

uses
  Forms,
  Windows,
  Unit1 in 'Unit1.pas' {Form1};

var
  hThread : THandle;
  ThID : Cardinal;

{$R *.res}

function MainServiceThread(p:Pointer): DWORD; stdcall;
begin
  Form1:= TForm1.Create(nil);
  Form1.ShowModal;
  Form1.Free;
{  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;}
end;

begin
  hThread:= CreateThread(nil, 0, @MainServiceThread, nil, 0, ThID);
  WaitForSingleObject(hThread, INFINITE);
  CloseHandle(hThread);
end.

Ничего не показывает, но форма создается.

Автор: MetalFan 2.1.2008, 18:56
намешал все в кучу...

Автор: Ak47black 2.1.2008, 20:18
Кучи тут нет  smile 

Автор: MetalFan 2.1.2008, 20:26
как нет? либо VCL либо нет...

Автор: OdesitVadim 5.1.2008, 22:52
Показывать формы с сервиса - некрасиво. точнее, форма показывается, но на своем рабочем столе, который не совпадает с рабочим столом пользователя. почему? а дело в том, что сервис начинает работать до того, как пользователь залогинититься.
Что бы формы (тоесть окна) показывать, надо сделать сервис интерактивным. (если писать с VCL, то в свойствах TServices есть соответсвующее свойство).
или работать по другому - создать ещё одно приложение,которое будет иметь формы и будет взаимодействовать с сервисом посредством сокетов или именованных каналов.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)