AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Service und TTimer

Ein Thema von Digielm · begonnen am 5. Jan 2009 · letzter Beitrag vom 6. Jan 2009
Antwort Antwort
Seite 3 von 4     123 4      
Digielm

Registriert seit: 2. Aug 2006
246 Beiträge
 
Delphi 5 Enterprise
 
#21

Re: Service und TTimer

  Alt 5. Jan 2009, 16:03
hab ich auch schon gemacht und hat bis jetzt immer geklappt.

der Timer ist auf der Testform drauf.

Kann ich denn ggf auch nen Timer ohne forms o.ä. machen ??
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#22

Re: Service und TTimer

  Alt 5. Jan 2009, 16:04
Klar:
Delphi-Quellcode:
.
.
.
  private
    TimerUhr: TTimer;
.
.
.
timerUhr := TTimer.create(self);
timerUhr.Interval := 10000;
timerUhr.onTimer := TimerUhrTimer;
timerUhr.enabled := true;
Sherlock
Oliver
  Mit Zitat antworten Zitat
Digielm

Registriert seit: 2. Aug 2006
246 Beiträge
 
Delphi 5 Enterprise
 
#23

Re: Service und TTimer

  Alt 6. Jan 2009, 09:44
Also hab das mal mit dem Create des times ausprobiert.

Aber leider krieg ich das ding nicht zum laufen ich weiß nicht wieso oder warum


Kann mir da jemand helfen ?
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#24

Re: Service und TTimer

  Alt 6. Jan 2009, 10:05
Hallo,

häng' bitte mal Deinen Quelltext dran, so ist das doch ein bisserl arges Stochern im Nebel.
  Mit Zitat antworten Zitat
Digielm

Registriert seit: 2. Aug 2006
246 Beiträge
 
Delphi 5 Enterprise
 
#25

Re: Service und TTimer

  Alt 6. Jan 2009, 10:32
Also hab grade mal folgendes Probiert

Delphi-Quellcode:
procedure TERPConnect.WndProc(var msg : TMessage);
begin
    addlogtext('Messages');
    inherited WndProc(msg);
end;
habe leider festgestellt das mein Dienst keinerlei Messages mehr übergibt wenn der Create ausgefürt wurde, d.h. nach dem das ganze created wurde geht nix mehr
  Mit Zitat antworten Zitat
Digielm

Registriert seit: 2. Aug 2006
246 Beiträge
 
Delphi 5 Enterprise
 
#26

Re: Service und TTimer

  Alt 6. Jan 2009, 10:39
Hier der Project Source

Delphi-Quellcode:
program Testservice;

{%DelphiDotNetAssemblyCompiler '$(SystemRoot)\microsoft.net\framework\v2.0.50727\System.dll'}
{%DelphiDotNetAssemblyCompiler '$(SystemRoot)\microsoft.net\framework\v2.0.50727\System.Data.dll'}
{%DelphiDotNetAssemblyCompiler '$(SystemRoot)\microsoft.net\framework\v2.0.50727\System.Drawing.dll'}
{%DelphiDotNetAssemblyCompiler '$(SystemRoot)\microsoft.net\framework\v2.0.50727\System.XML.dll'}
{%DelphiDotNetAssemblyCompiler 'c:\programme\gemeinsame dateien\borland shared\bds\shared assemblies\4.0\Borland.Vcl.dll'}
{%DelphiDotNetAssemblyCompiler 'c:\programme\gemeinsame dateien\borland shared\bds\shared assemblies\4.0\Borland.Delphi.dll'}
{%DelphiDotNetAssemblyCompiler 'c:\programme\gemeinsame dateien\borland shared\bds\shared assemblies\4.0\Borland.VclRtl.dll'}
{%DelphiDotNetAssemblyCompiler '..\Borland.Data.Mssql.dll'}
{%DelphiDotNetAssemblyCompiler '$(SystemRoot)\microsoft.net\framework\v2.0.50727\System.Configuration.Install.dll'}
{%DelphiDotNetAssemblyCompiler '$(SystemRoot)\microsoft.net\framework\v2.0.50727\System.ServiceProcess.dll'}

uses
  windows,
  forms,
  System.Reflection,
  system.serviceprocess,
  System.Runtime.CompilerServices,
  Main in 'Main.pas',
  ccLog in '..\ccLog.pas',
  Service in 'Service.pas{Service.TService1: system.serviceprocess.servicebase};

{$R *.res}

{$REGION 'Programm/Assemblierungs-Informationen'}
//
// Die allgemeinen Assemblierungsinformationen werden durch die folgenden
// Attribute gesteuert. Ändern Sie die Attributwerte, um die zu einer
// Assemblierung gehörenden Informationen zu modifizieren.
//

[assembly: AssemblyDescription('')]
[assembly: AssemblyConfiguration('')]
[assembly: AssemblyCompany('')]
[assembly: AssemblyProduct('')]
[assembly: AssemblyCopyright('')]
[assembly: AssemblyTrademark('')]
[assembly: AssemblyCulture('')]

// Der Delphi-Compiler steuert AssemblyTitleAttribute via ExeDescription.
// Sie können dies in der IDE über Projekt/Optionen festlegen.
// Wenn Sie das Attribut AssemblyTitle wie unten gezeigt manuell festlegen,
// wird die IDE-Einstellung überschrieben.
// [assembly: AssemblyTitle('')]


//
// Die Versionsinformation einer Assemblierung enthält die folgenden vier Werte:
//
// Hauptversion
// Nebenversion
// Build-Nummer
// Revision
//
// Sie können alle vier Werte festlegen oder für Revision und Build-Nummer die
// Standardwerte mit '*' - wie nachfolgend gezeigt - verwenden:

[assembly: AssemblyVersion('1.0.*')]

//
// Zum Signieren einer Assemblierung müssen Sie einen Schlüssel angeben. Weitere Informationen
// über das Signieren von Assemblierungen finden Sie in der Microsoft .NET Framework-Dokumentation.
//
// Mit den folgenden Attributen steuern Sie, welcher Schlüssel für die Signatur verwendet wird.
//
// Hinweise:
// (*) Wenn kein Schlüssel angegeben wird, ist die Assemblierung nicht signiert.
// (*) KeyName verweist auf einen Schlüssel, der im Crypto Service Provider
// (CSP) auf Ihrem Rechner installiert wurde. KeyFile verweist auf eine
// Datei, die einen Schlüssel enthält.
// (*) Wenn sowohl der KeyFile- als auch der KeyName-Wert angegeben ist, wird
// die folgende Verarbeitung durchgeführt:
// (1) Wenn KeyName in dem CSP gefunden wird, wird dieser Schlüssel verwendet.
// (2) Wenn KeyName nicht, aber KeyFile vorhanden ist, wird der Schlüssel
// in KeyFile im CSP installiert und verwendet.
// (*) Ein KeyFile können Sie mit dem Utility sn.exe (Starker Name) erzeugen.
// Der Speicherort von KeyFile sollte relativ zum Projektausgabeverzeichnis
// %Projektverzeichnis%\bin\<Konfiguration> angegeben werden. Wenn sich Ihr
// KeyFile z.B. im Projektverzeichnis befindet, würden Sie das Attribut
// würden Sie das Attribut AssemblyKeyFile folgendermaßen festlegen:
// [assembly: AssemblyKeyFile('..\\..\\mykey.snk')]
// (*) Verzögerte Signatur ist eine erweiterte Option; nähere Informationen
// dazu finden Sie in der Microsoft .NET Framework-Dokumentation.
//
[assembly: AssemblyDelaySign(true)]
[assembly: AssemblyKeyFile('')]
[assembly: AssemblyKeyName('')]


//
// Verwenden Sie untenstehende Attribute, um die COM-Sichtbarkeit Ihrer Assembilierung zu steuern.
// Als Vorgabe ist die ganze Assemblierung für COM sichtbar. Das Setzen von ComVisible auf false
// ist die empfohlene Vorgabe für Ihre Assemblierung. Um eine Klasse und Interface für COM sichtbar
// zu machen, setzen Sie ComVisible für jeden Einzelnen auf true. Es wird auch empfohlen ein
// Guid-Attribut hinzuzufügen.
//

[assembly: ComVisible(False)]
//[assembly: Guid('')]
//[assembly: TypeLibVersion(1, 0)]
{$ENDREGION}

[STAThread]
begin
  Application.Initialize;
  System.ServiceProcess.ServiceBase.Run(Service.TService1.Create);
end.
service Source


Delphi-Quellcode:

unit Service;

interface

uses
  System.Drawing, System.Collections, System.ComponentModel,
  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 }
  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, toolsdotnet;

//{$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.OnStart(args: array of string);
begin
  Mainform := TMainform.Create(self);
end;

end.
Mainform
Delphi-Quellcode:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Borland.Vcl.StdCtrls, System.ComponentModel, Borland.Vcl.ComCtrls, System.Collections,
  Borland.Vcl.ExtCtrls, Microsoft.Win32, System.IO, System.Data.OleDb,
  System.Collections.Specialized, System.Text.RegularExpressions, System.Threading, System.Diagnostics,
  System.Data.SqlClient, System.Data, comobj;

type
  TMainform = class(TForm)
    ProgressBar1: TProgressBar;
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
  private
    adresstimer: TTimer;
  protected
    procedure WndProc(var msg : TMessage); override;
  end;

var
  Mainform: TMainform;

implementation

procedure TMainform.FormCreate(Sender: TObject);
begin
  adresstimer := TTimer.Create(application.MainForm);
  adresstimer.OnTimer := Button1Click;
  adresstimer.Interval := 60000;
  adresstimer.Enabled := true;
end;

procedure TMainform.Button1Click(Sender: TObject);
begin
  addlogtext('Starte abgleich');
end;
end.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#27

Re: Service und TTimer

  Alt 6. Jan 2009, 10:43
Hmmm, den Timer würde ich eigentlich in Deinem Service erzeugen, nicht auf dem Form...

Sherlock
Oliver
  Mit Zitat antworten Zitat
Digielm

Registriert seit: 2. Aug 2006
246 Beiträge
 
Delphi 5 Enterprise
 
#28

Re: Service und TTimer

  Alt 6. Jan 2009, 10:44
Hab ich auch versucht klappt auch da nicht

Keine Ahnunug warum ich keinerlei MSG bekomme
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#29

Re: Service und TTimer

  Alt 6. Jan 2009, 10:58
Hallo,

wat passiert denn hier?

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('Ende OnStart');
end;
Welche Logeinträge bekommst Du zu sehen?
  Mit Zitat antworten Zitat
Digielm

Registriert seit: 2. Aug 2006
246 Beiträge
 
Delphi 5 Enterprise
 
#30

Re: Service und TTimer

  Alt 6. Jan 2009, 11:00
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:18 Uhr.
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