Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Application oder self (https://www.delphipraxis.net/4460-application-oder-self.html)

meggles 30. Apr 2003 08:55


Application oder self
 
Hallo,
mal ein paar generelle Fragen: Ich habe eine Prozedur geschrieben, die mir eine Connection-Komponente für die Datenbank initialisiert.

1. Muss als Parameter immer der Sender übergeben werden?
2. Wenn ich die Prz. aufrufen will, was gebe ich dann als Sender an? self oder application? Ich raff den Unterschied nicht ganz, bzw. self vestehe ich, aber wann sollte ich application als Sender übergeben...?


Danke!!
Simon

Jens Schumann 30. Apr 2003 11:33

Hallo,

so ganz schlau werde ich aus Deinen Schilderungen nicht.
Aber ich versuche trotzdem mal was loszulassen.

zu 1) Der Parameter Sender tritt für gewöhlich bei EventHandler auf.
Damit ist es möglich das sendende Objekt zu indentifzieren.
Das Objekt, dass das Event feuert übergibt dafür im Sender-
Parameter den impliziten Paramter Self.
Jeder Methode eines Objektes wird implizit der Paramter Self
übergeben. Auch wenn die Methode keine "sichtbaren" Paramter
erwartet.
Beispiel:
Delphi-Quellcode:
procedure TMyObject.DoEvent;
begin
  If Assigned(FOnMyEvent) then
    FOnMyEvent(Self) // Event abfeuern
end;
Niemand zwingt einen hier den Parameter Self für den Sender-
Parameter zu verwenden. Da aber alle Welt hier Self erwartet sollte
man Self übergeben.

zu 2) Bei Application handelt um eine automatisch erzeugte Instanz
von TApplication. Jedes Delphi Programm, das auf der VCL aufbaut erzeugt/verwendet automatisch eine Instanz dieser Klasse. TApplication
bildet das sog. Anwendungsobjekt bzw kapselt das Programm in Richtung
Windows. Application verwaltet auch ein eigenes Fenster, dass normaler-
weise jedoch unsichtbar bleibt. D.h. das Application als Paramter
(im Rahmen Deiner Fragestellung) eigentlich keine Rolle spielt.

Innerhalb von Winsight ist TApplication sichtbar !!!

meggles 30. Apr 2003 12:02

Danke
 
:hello: Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz