Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

помогите разобраться с ;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]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо