Announcement

Collapse
No announcement yet.

try...finally und try...except

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • try...finally und try...except

    Hallo alle zusammen,

    ich habe in meiner Anwendung mehrer Formulare damit diese nicht beim Start alle erstellt werden habe ich dies nur auf bedarf mit dem jeweiligen Ereignis verknüpft, allerdings muss ich ja jetzt dafür sorgen das die Sache ordentlich beendet wird und was passieren soll wenn das Form nicht erstellt werden konnte, oder?
    Mit Try...except kann ich also darauf einfluss nehmen was passiert wenn das Formular nicht erstellt werden konnte, oder?
    Was macht try...finally? Kann ich hiermit das Formular wieder destroy, wenn ich es nicht mehr benötige?

    Eure Nausi

  • #2
    Der Unterschied ist einfach der, dass <b>finally</b> immer abgearbeitet wird (auch z.B. nach einem <b>exit</b>, was nicht allgemein bekannt ist). Wenn du also ein Formular erzeugen und nach modaler Anzeige wieder freigeben möchtest, geht das so:
    <pre>
    TestForm := TTestForm.create(self);
    try
    TestForm.showmodal;
    finally
    TestForm.free;
    end;
    </pre>
    try...except behandelt nur Exceptions und wird auch nur dann ausgelöst.

    Gruß Ul

    Comment


    • #3
      Falls du eine Variablenphobie hast, dann geht auch
      <pre>
      with TTestForm.create(self) do
      try
      showmodal;
      finally
      free;
      end;
      </pre>
      Der Vorteil liegt darin das Delphi eine anonyme Variable einrichtet, die ausserhalb des with nicht mehr existiert. Damit kann man auch nicht mehr versehentlich darauf zugreifen

      Comment

      Working...
      X