![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
помогите разобраться с ;Tservice [D5, NT4, Win2k, WinXP]
koly01 © (2003-01-29 15:02:00)Здравствуйте!
Обьясните мне что то я не понимаю, делаю проект с TService, к проекту цепляю форму убираю ее из автосоздания и создаю, запускаю ее в TSERVICE.start
На форме находиться программа которая выполняется ... к форме есть еще один модкль *.Pas в котором находяться некоторые процедуры для выполнения вызываються они из основнолй программы расположенной на форме ... дык вот после запуска TSERVICE форма стартует нормально начинает выполняться и просто останавливаеться на пути ... service - работает, форма тоже не закрывается ... но программа на ней не продолжает выполнение ...
ЧТО ДЕЛАТЬ ... незнаю
С Уважением Koly01
Digitman (2003-01-30 08:27:00) [1]Да хэлп же ! Перед носом ведь он) .. см. TThread и его метод Synchronize()
koly01 (2003-01-30 05:45:00) [2]Подскажите где почитать ...???
почитаю ...
Digitman (2003-01-29 15:54:00) [3]
> koly01
А почитать ? Для начала ? Про использование VCL в доп.код.потоках ?
koly01 (2003-01-29 15:36:00) [4]Digitman ©
НЕ понял поподробней об этом ....
koly01 (2003-01-29 15:35:00) [5]А теперь сделай в событии таймер
вызов процедуры которая ... находиться в другом предцепленной Unit3, которая производит запись в файл или базу ...
Digitman (2003-01-29 15:27:00) [6]потому что все обработчики событий класса TService выполняются в доп.код.потоке сервис-процесса
Darkwin (2003-01-29 15:23:00) [7]вот сервис
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.
koly01 (2003-01-29 15:08:00) [8]не предерайтесть к словам ... вы же все поняли .
Есть приложение с формой и соответствующим кодом ...,
просто нужно очень, торопилься ... вот и немного неточно написал .
Darkwin (2003-01-29 15:06:00) [9]Что значит "программа на форме"?