Главная страница
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.013 c
8-28941
_cooler
2002-10-29 09:58
2003.02.10
Как поставить GLScene?


1-28748
Sentinel
2003-01-31 23:48
2003.02.10
ShlObj.SHGetPathFromIDList - обратное преобразование.


8-28943
DDS
2002-10-28 10:44
2003.02.10
Как выдрать из EXE иконку с размером 16Х16 с хорошим качеством


3-28637
AlexAlex2
2003-01-22 15:33
2003.02.10
Редактируемый Grid с помощью компонентов dbExpress


4-29150
malkolinge
2002-12-26 12:29
2003.02.10
TreeView with CheckBox