Thema: Delphi Try finally Code Blöcke

Einzelnen Beitrag anzeigen

DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#1

Try finally Code Blöcke

  Alt 16. Feb 2007, 11:54
Hallo,

ich habe ein kleines Problem, ich möchte ein wenig mehr Anwendersicherheit in mein Programm bekommen,
so dass mein Programm möglichst viele 'Ausnahmesituationen' meistern kann

Folgendes Konstrukt habe ich:
Delphi-Quellcode:
try
    Self.Enabled:=False;
    for I := 1 to 64 do
    begin
      if aktSitzung.connected = false then begin exit; end; // Hier habe ich ein exit!!!
      Get_ProduktOffset(aktPOffset,i);
      Get_AlarmHH(aktAlarmHH,i);
      Get_AlarmH(aktAlarmH,i);
      Get_AlarmL(aktAlarmL,i);
      Get_AlarmLL(aktAlarmLL,i);
      JvStringGrid1.Cells[1,i]:=FloatToStrF(aktPOffset,ffFixed,4,2);
      JvStringGrid1.Cells[2,i]:=FloatToStrF(aktAlarmHH,ffFixed,4,2);
      JvStringGrid1.Cells[3,i]:=FloatToStrF(aktAlarmH,ffFixed,4,2);
      JvStringGrid1.Cells[4,i]:=FloatToStrF(aktAlarmL,ffFixed,4,2);
      JvStringGrid1.Cells[5,i]:=FloatToStrF(aktAlarmLL,ffFixed,4,2);
      JvProgressBar1.StepBy(1);
      Application.ProcessMessages;
    end;
finally
 Self.Enabled:=True;
end;
Ich hole mir 64 Datensätze aus einem Gerät und sperre vorher mein Formular, damit der Benutzer nicht wild herumklicken kann (weis das ist die Hammerschlag Methode (werde mir auch noch was anderes einfallen lassen) aber so probier ich es ersteinmal).
Dann könnte evtl. die Verbindung abbrechen, dann will ich dass er sofort den Finally block ausführt!!!
Ich prüfe ja oben ob noch eine Verbindung besteht, falls nein springe ich raus aus der Routine, aber dann wird ja mein
Finally Block nicht ausgeführt, oder ?????

Danke für eure Antworten
  Mit Zitat antworten Zitat