Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.10;
Скачать: CL | DM;

Вниз

помогите разобраться с Tservice   Найти похожие ветки 

 
koly01 ©   (2003-01-29 15:02) [0]

Здравствуйте!

Обьясните мне что то я не понимаю, делаю проект с TService, к проекту цепляю форму убираю ее из автосоздания и создаю, запускаю ее в TSERVICE.start
На форме находиться программа которая выполняется ... к форме есть еще один модкль *.Pas в котором находяться некоторые процедуры для выполнения вызываються они из основнолй программы расположенной на форме ... дык вот после запуска TSERVICE форма стартует нормально начинает выполняться и просто останавливаеться на пути ... service - работает, форма тоже не закрывается ... но программа на ней не продолжает выполнение ...
ЧТО ДЕЛАТЬ ... незнаю

С Уважением Koly01


 
Darkwin ©   (2003-01-29 15:06) [1]

Что значит "программа на форме"?


 
koly01 ©   (2003-01-29 15:08) [2]

не предерайтесть к словам ... вы же все поняли .
Есть приложение с формой и соответствующим кодом ...,
просто нужно очень, торопилься ... вот и немного неточно написал .


 
Darkwin ©   (2003-01-29 15:23) [3]

вот сервис
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs, Unit2;

type
TService1 = class(TService)
procedure ServiceStart(Sender: TService; var Started: Boolean);
procedure ServiceStop(Sender: TService; var Stopped: Boolean);
private
{ Private declarations }
public
function GetServiceController: TServiceController; override;
{ Public declarations }
end;

var
Service1: TService1;
f:TForm2;

implementation


{$R *.DFM}

procedure ServiceController(CtrlCode: DWord); stdcall;
begin
Service1.Controller(CtrlCode);
end;

function TService1.GetServiceController: TServiceController;
begin
Result := ServiceController;
end;

procedure TService1.ServiceStart(Sender: TService; var Started: Boolean);
begin
f:=TForm2.Create(nil);
ShowWindow(f.Handle,SW_SHOW);
end;

procedure TService1.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
f.Free;
end;

end.

вот форма по таймеру меняется капшион
unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;

type
TForm2 = class(TForm)
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Timer1Timer(Sender: TObject);
begin
Caption:=DateTimeToStr(Now);
end;

end.



 
Digitman ©   (2003-01-29 15:27) [4]

потому что все обработчики событий класса TService выполняются в доп.код.потоке сервис-процесса


 
koly01 ©   (2003-01-29 15:35) [5]

А теперь сделай в событии таймер
вызов процедуры которая ... находиться в другом предцепленной Unit3, которая производит запись в файл или базу ...



 
koly01 ©   (2003-01-29 15:36) [6]

Digitman ©

НЕ понял поподробней об этом ....


 
Digitman ©   (2003-01-29 15:54) [7]


> koly01


А почитать ? Для начала ? Про использование VCL в доп.код.потоках ?


 
koly01 ©   (2003-01-30 05:45) [8]

Подскажите где почитать ...???
почитаю ...


 
Digitman ©   (2003-01-30 08:27) [9]

Да хэлп же ! Перед носом ведь он) .. см. TThread и его метод Synchronize()



Страницы: 1 вся ветка

Текущий архив: 2003.02.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
8-28935
Fredericco
2002-10-29 14:14
2003.02.10
Видеозахват средствами DirectX.


6-28953
FDel
2002-12-16 16:04
2003.02.10
IP-адрес


8-28934
MikeIp
2002-10-29 10:19
2003.02.10
Бордюр шрифта (Outline)


14-29017
denis24
2003-01-23 10:33
2003.02.10
печать на принтер


8-28939
NailMan
2002-09-26 05:06
2003.02.10
Узнать информацию о видео-файле