Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Service und TTimer (https://www.delphipraxis.net/126947-service-und-ttimer.html)

nahpets 6. Jan 2009 10:30

Re: Service und TTimer
 
Zitat:

Zitat von Digielm
das hier passiert in meinem Log

06.01.2009 10:59:41 Start OnStart
06.01.2009 10:59:41 Dienst gestartet
06.01.2009 10:59:41 Ende OnStart

Langsam kapiere ich nix mehr, wo kommt denn bitte das Dienst gestartet her?
Delphi-Quellcode:
procedure TService1.OnStart(args: array of string);
begin
  addlogtext('Start OnStart');
  Try
    Mainform := TMainform.Create(self);
  Except
    on e : Exception Do addlogtext(e.Message);
  end;
  addlogtext('Vor Button1Click');
  Try
    MainForm.Button1Click(Nil);
  Except
    on e : Exception Do addlogtext('Fehler in Button1Click: ' + e.Message);
  end;
  addlogtext('Hinter Button1Click');
  Try
    MainForm.Adresstimer.Enabled := false;
    MainForm.Adresstimer.Interval := 1000;
    MainForm.Adresstimer.Enabled := true;
  Except
    on e : Eception do addlogtext('Fehler beim Aktivieren des Timers: ' + e.Message);
  end;
  addlogtext('Ende OnStart');
  // Eine Sekunde hinter dem 'Ende OnStart' sollte im Log ein Eintrag 'Starte abgleich' stehen.
  // Wenn nicht, weiß ich auch nicht mehr weiter.
end;

Digielm 6. Jan 2009 10:57

Re: Service und TTimer
 
selbst wenn ich das hier mache

Delphi-Quellcode:
unit Service;

interface

uses
  System.Drawing, System.Collections, System.ComponentModel, svcmgr,
  System.Windows.Forms, System.Data, system.serviceprocess, System.Configuration.Install;

type
  [RunInstaller(true)]
  TService1 = class(System.ServiceProcess.ServiceBase)
  {$REGION 'Vom Designer verwalteter Code'}
  strict private
    /// <summary>
    /// Erforderliche Designervariable.
    /// </summary>
    Components: System.ComponentModel.Container;
    /// <summary>
    /// Erforderliche Methode zur Unterstützung des Designers -
    /// ändern Sie die Methode nicht mit dem Quelltext-Editor
    /// </summary>
    procedure InitializeComponent;
  {$ENDREGION}
  strict protected
    /// <summary>
    /// Ressourcen nach der Verwendung bereinigen
    /// </summary>
    procedure Dispose(Disposing: Boolean); override;
  private
    { Private-Deklarationen }
    Timer1 : System.Windows.Forms.Timer;
    procedure timer(sender: TObject; e: System.EventArgs);
  public
    { Public-Deklarationen }
  strict protected
    procedure OnStop; override;
    procedure OnStart(args: array of string); override;
  public
    constructor Create;
  end;
//
var
  Service1: TService1;

// [assembly: RuntimeRequiredAttribute(TypeOf(ServiceBase))]

implementation

uses Main, ccLog;

//{$R *.nfm}
{$AUTOBOX ON} 

{$REGION 'Vom Windows Form-Designer erzeugter Code'}
/// <summary>
/// Erforderliche Methode zur Unterstützung des Designers --
/// ändern Sie die Methode nicht mit dem Quelltext-Editor
/// </summary>
procedure TService1.InitializeComponent;
begin
  Self.Components := System.ComponentModel.Container.Create;
  Self.ServiceName := 'Testdienst';
end;
{$ENDREGION}

procedure TService1.Dispose(Disposing: Boolean);
begin
  if Disposing then
  begin
    if Components <> nil then
      Components.Dispose();
  end;
  inherited Dispose(Disposing);
end;

constructor TService1.Create;
begin
  inherited Create;
  //
  // Erforderlich für die Unterstützung des Windows Forms-Designers
  //
  InitializeComponent;
  //
  // TODO: Fügen Sie nach dem Aufruf von InitializeComponent Konstruktorcode hinzu.
  //
end;

procedure TService1.onstop;
begin
//
end;

procedure TService1.timer(sender: System.Object; e: System.EventArgs);
begin
  addlogtext('STarte timerevent');
end;


procedure TService1.OnStart(args: array of string);

begin
  Try
    Timer1 := System.Windows.Forms.Timer.Create;
    Timer1.Interval := 10000;
    Include(Self.timer1.Tick, timer);
    addlogtext('Start OnStart');
    Main.create;
  Except
    on e : Exception Do addlogtext(e.Message);
  end;
  addlogtext('Ende OnStart');
  Timer1.Start;

end;



end.
klappt das nicht :-(

nahpets 6. Jan 2009 11:16

Re: Service und TTimer
 
Hallo,

da weiß ich nun auch nicht mehr weiter, lass' mal das Main.Create weg, wenn das dann immer noch nicht geht, geb' ich's dran.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:48 Uhr.
Seite 4 von 4   « Erste     234   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz