Einzelnen Beitrag anzeigen

QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.927 Beiträge
 
Delphi 12 Athens
 
#4

AW: bringt GetLastError nach raise Exception noch etwas?

  Alt 17. Aug 2011, 10:39
Ja ich habe da so einen Cashmechanismus für Stammdaten (wir haben sehr viele stammdaten), Bewegungsdaten werden natürlich live ermittelt...
Das ganze Erfolgt in einem Timer Ereignis.
Delphi-Quellcode:
    Try
      //Timer sperren
      MyTimer.Enabled := False; //der Ruft nur killtimer aus updatetimer auf. aber hier könnte evtl Getlast error auch schon einen Wert haben....:( ok
      RefreshDatasets; //Die Stammdaten neu cachen welche in der loggtabelle Änderungen aufweisen.
      MyTimer.Enabled := True; //<-- hier passiert der Fehler
                                //bzw in der methode Extctrls.TTimer.UpdateTimer;
    except
      on E:Exception do
      begin
        e.message := 'Fehler 67: ' + e.Message+
                     #13#10' SysErrorMessage:'+SyserrorMessage(GetlastError);
        MyTimerActive := false;
        raise;
      end;
    end;
UpdateTimer ist in Delphi 7 seltenst dämlich implementiert! Weil die Fehler meldung nur auf Systemen kleiner windows 2000 sinnstiftend ist. Diese Methode möchte ich aber nicht patchen!
Delphi-Quellcode:
procedure TTimer.UpdateTimer;
begin
  KillTimer(FWindowHandle, 1);
  if (FInterval <> 0) and FEnabled and Assigned(FOnTimer) then
    if SetTimer(FWindowHandle, 1, FInterval, nil) = 0 then
      raise EOutOfResources.Create(SNoTimers);
end;
Andreas
Monads? Wtf are Monads?

Geändert von QuickAndDirty (17. Aug 2011 um 10:49 Uhr)
  Mit Zitat antworten Zitat