Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Thread.Terminated erzeugt unbekannter Bezeichner (https://www.delphipraxis.net/83798-thread-terminated-erzeugt-unbekannter-bezeichner.html)

ozz 7. Jan 2007 09:20

Re: Thread.Terminated erzeugt unbekannter Bezeichner
 
Hallo Sunlight7,
danke für das Aua. :idea:
1. Im Prinzip verstehe ich das mit dem not und false. Nur warum ist dies besser?
2. Warum ist das Semikolon denn falsch? Delphi mäckert nicht. :gruebel:
3. Ich warum ist Free besser als Destroy. Free gibt den Speicher frei, destory die Ganze Instanz (dachte ich). :drunken:

dominikkv 7. Jan 2007 09:45

Re: Thread.Terminated erzeugt unbekannter Bezeichner
 
Zitat:

Zitat von ozz
3. Ich warum ist Free besser als Destroy. Free gibt den Speicher frei, destory die Ganze Instanz (dachte ich). :drunken:

Free und Destroy geben beide den Speicher frei...nur Free überprüft zuerst ob das Objekt überhaupt noch existiert und gibt es selbständig mit Destroy frei.
Um Laufzeitfehler vorzubeugen würde ich Free verwenden.

marabu 7. Jan 2007 09:49

Re: Thread.Terminated erzeugt unbekannter Bezeichner
 
Hallo,

Zitat:

Zitat von ozz
1. Im Prinzip verstehe ich das mit dem not und false. Nur warum ist dies besser?

Es ist eine Frage von Stil und Effizienz: Wer den Ausdruck "Terminated = False" auswerten lässt, der kann auch auf jedes Rechenergebnis null aufaddieren. "Terminated" ist bereits ein einfacher logischer Ausdruck, der zusätzliche Vergleich verändert das Ergebnis nicht.

Zitat:

Zitat von ozz
2. Warum ist das Semikolon denn falsch? Delphi mäckert nicht.

Das Semikolon trennt in Delphi Anweisungen: "begin;FURL := SomeUrl" ist äquivalent zu "begin {Leeranweisung};FURL := SomeUrl". Das Semikolon schadet also an dieser Stelle nicht, sieht aber etwas bucklig aus.

Zitat:

Zitat von ozz
3. Ich warum ist Free besser als Destroy. Free gibt den Speicher frei, destory die Ganze Instanz (dachte ich).

Free() prüft vor dem internen Aufruf des Destruktors, ob überhaupt eine gültige Instanz vorliegt. Du kannst also Free immer straflos aufrufen, auch wenn das Objekt vorher gar nicht instanziert wurde.

Grüße vom marabu

ozz 7. Jan 2007 10:52

Re: Thread.Terminated erzeugt unbekannter Bezeichner
 
Hallo marabu, Hallo dominikkv.
herzlichen Dank für die Erläuterungen. Wieder was gelernt. :dancer2:


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:28 Uhr.
Seite 2 von 2     12   

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-2025 by Thomas Breitkreuz