Einzelnen Beitrag anzeigen

JohannesK

Registriert seit: 17. Jul 2003
Ort: Abtwil
118 Beiträge
 
Delphi 2010 Professional
 
#1

Unterschiede TTimer zwischen Delphi 7 und 2010?

  Alt 7. Jul 2015, 15:35
Hallo,

ich habe ein merkwürdiges Problem beim Wechsel eines Programms von D7 auf D2010. Das Programm ist komplett identisch übernommen, lediglich einige Komponenten für OPC-Zugriffe sind aktualisiert. Im Programm werden verschiedene Timer erstellt, die den Aufruf unterschiedlicher Erfassungsgruppen steuern. Die Timer sind jeweils in einer Klasse zusammengefasst.

Delphi-Quellcode:
  TSavetimer = class(TComponent)
    private
      STimer: TTimer;
      RTimer: TTimer;
      SInterval: integer;
      RInterval: integer;
      AInterval: integer;
    public
      constructor create(conn: TUniconnection; aSaveObj: TdOPCGroup);
      destructor destroy;
      procedure SaveTimerEvent(sender: TObject);
      procedure ReadTimerEvent(sender: TObject);
  end;

constructor TSavetimer.create(conn: TUniconnection; aSaveObj: TdOPCGroup);
begin
  inherited create(application);
  SaveObj := aSaveObj;
  STimer := TTimer.Create(self);
  STimer.Enabled := false;
  STimer.OnTimer := SaveTimerEvent;
  RTimer := TTimer.Create(self);
  RTimer.Enabled := false;
  RTimer.OnTimer := ReadTimerEvent;
end;

procedure TSavetimer.SaveTimerEvent(sender: TObject);
var tr: TSaveThread;
begin
   try
      tr := TSaveThread.Create(self);
      tr.FreeOnTerminate := false;
      tr.execute;
      repeat sleep(10) until tr.Terminated;
      tr.Free;
     except
       //
     end;
end;
Die Timer sind den Gruppen über einen entsprechenden Pointer zugeordnet. D7 läuft seit Jahren problemos, D2010 löst keine Timer aus.

Hat irgendjemand einen Tipp?
mit freundlichem Gruss

So einfach wie möglich. Aber nicht einfacher.
  Mit Zitat antworten Zitat