Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Unterschied zwischen initialization und letztes begin (https://www.delphipraxis.net/73231-unterschied-zwischen-initialization-und-letztes-begin.html)

ferby 14. Jul 2006 00:42


Unterschied zwischen initialization und letztes begin
 
Hallo,

wo ist hier der Unterschied?
Ich meine, wann verwende ich welche Methode um
eine Variabel, oder was weiß ich zu initialisieren,
und wofür verwende ich die andere Methode?

Die zwei folgenden Quellcodes sind bis
auf die vorvorletzte Zeile Ident, und machen
meiner Ansicht auch das gleiche.....
oder gibt es da Uuterschiede im Detail?

Einmal so:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Controls, Forms, Dialogs, Classes, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  end;

var
  Form1: TForm1;

  a:string;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  showmessage(a);
end;

initialization
  a:='TEST';
end.
Und einmal so:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Controls, Forms, Dialogs, Classes, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  end;

var
  Form1: TForm1;

  a:string;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  showmessage(a);
end;

begin
  a:='TEST';
end.
Ich möchte einfach wissen wann ich initialization bzw. begin verwende und warum
nicht jeweils die andere Methode?

muRR 14. Jul 2006 02:29

Re: Unterschied zwischen initialization und letztes begin
 
Nun der wichtigste Unterschied, der mir einfiele, wäre der, dass man mittels initialization und finalization eine golable Variable initialisieren und deinitialisieren kann. Das meint auch Handles erstellen und freigeben, also den reservierten Speicher wieder aufräumen. Bei begin kann man nur initialisieren und müsste sich darauf verlassen, dass in einer Prozedur aufgeräumt wird. So hat man diese Unsicherheit nicht.

marabu 14. Jul 2006 06:21

Re: Unterschied zwischen initialization und letztes begin
 
Guten Morgen Ferdinand,

wenn dir die neuen Sprachmittel initialization und finalization zur Verfügung stehen, dann benutze ausschließlich diese. Nur aus Gründen der Abwärtskompatibilität wird auch noch die alte Methode unterstützt - aber auch nicht immer:

Delphi-Quellcode:
implementation

{$R *.dfm}

var
  OldExitProc: Pointer;

procedure DoInitialize;
begin
  // ... init code
  OldExitProc := ExitProc;
  ExitProc := @DoFinalize;
end;

procedure DoFinalize; far;
begin
  ExitProc := OldExitProc;
  // ... final code
end;

begin
  DoInitialize;
end.
Näheres findest du in der Online Hilfe unter ExitProc.

Grüße vom marabu

Muetze1 14. Jul 2006 08:27

Re: Unterschied zwischen initialization und letztes begin
 
Ist der far; Parameter mit absolet mit Win32?

xaromz 14. Jul 2006 08:34

Re: Unterschied zwischen initialization und letztes begin
 
Hallo,
Zitat:

Zitat von Muetze1
Ist der far; Parameter mit absolet mit Win32?

ist er, aber er stört ja auch nicht :wink: .

Gruß
xaromz

ferby 14. Jul 2006 13:42

Re: Unterschied zwischen initialization und letztes begin
 
Hallo,

danke für die Antworten,
dann werde ich nur initialization verwenden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:55 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-2025 by Thomas Breitkreuz