Dank an alle für die Antworten.
@himitsu (kein "var" in der Deklaration)
Was mir noch nicht ganz klar ist:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 =
class(TForm)
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject);
begin
(Sender
as TButton).Caption := '
Änderung';
end;
end.
In diesem kleinen Programm wird "Sender" benutzt, um die Aufschrift von Button "btn1" zu ändern. In der Deklaration steht auch kein "var" bei Sender dennoch wird die Aufschrift verändert. Vermutlich liegt dies daran, dass die Visibility der verschiedenen Objekte nicht gleich ist. Soweit ich es jetzt verstanden habe, kann also in meinem Beispiel im Beitrag #1 das Formular sich selbst (self) nicht sehen wohl aber seine Member (wie also in diesem Beispiel oben "btn1") - schon etwas eigenartig.
Und wenn self auch nicht exakt Form2 ist (in #1) so bezieht es sich doch letztlich auf Form2, oder ich habe den Eintrag in der Wiki aus Sir Rufos Beitrag noch nicht verstanden:
Zitat:
Der Bezeichner Self verweist in der Implementierung einer Methode auf das Objekt, in dem die Methode aufgerufen wird.
Wer fragt, ist ein Narr für 5 Minuten, wer nicht fragt, ist ein Narr ein Leben lang.