AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Try Finally End verlassen bzw. abbrechen
Thema durchsuchen
Ansicht
Themen-Optionen

Try Finally End verlassen bzw. abbrechen

Ein Thema von Schwedenbitter · begonnen am 30. Mai 2014 · letzter Beitrag vom 31. Mai 2014
 
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#1

Try Finally End verlassen bzw. abbrechen

  Alt 30. Mai 2014, 11:45
Hallo,

ich stehe vor folgendem Problem und irgendwie auf dem Schlauch:

In einem sehr einfachen Programm soll beim Klick auf einen Button etwas gemacht werden. Dazu wird der Button zunächst deaktiviert und am Ende wieder aktiviert. Wenn zwischendurch etwas nicht klappt, soll der weitere Code nicht mehr ausgeführt, der Button aber wieder aktiviert werden.
Um es übersichtlich zu haben, möchte ich nicht das ganze verschachteln und - weil vermutlich nicht lege artis - auf ein goto verzichten. Da es sich am Code vermutlich besser erklären lässt, folgendes Beispiel:
Delphi-Quellcode:
Procedure TForm1.BtnStartClick(Sender: TObject);
Const
   DummySpace   ='C:\$space';
Begin
   BtnStart.Enabled:=False;
   MELog.Lines.Clear;
   Try
      MELog.Lines.Append('Step 1: Allocating Memory');
      MELog.Lines.Append('- creating directory "' + DummySpace + '"');
      If (Not CreateDir(DummySpace)) And
         (Not DirectoryExists(DummySpace)) Then
      Begin
         MELog.Lines.Append(' Could not create "' + DummySpace + '".');
         MELog.Lines.Append(' Error was: "' + SysErrorMessage(GetLastError) + '"');
         MELog.Lines.Append(' Opreation aborted.');

         // Hier muss/will ich raus.

      End
      Else MELog.Lines.Append(' success...')

      // Hier nur weiter, wenn Verzeichnis angelegt wurde/existiert

   Finally
      BtnStart.Enabled:=True;
   End;
End;
Wenn Ihr mir sagt, dass es ohne goto nicht geht, dann soll es eben so sein. Eine andere Idee wäre auch, durch eine Division durch Null eine Exception zu produzieren. Aber auch das ist nicht kunstgerecht. Das ist bestimmt total einfach und mir zugegebener Maßen schon fast peinlich diese Frage zu stellen. Aber auch Suchworte wie "abort try finally" und dergleichen brachten mich bislang nicht weiter ...

Gruß, Alex
Alex Winzer
  Mit Zitat antworten Zitat
 


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 08:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz