Einzelnen Beitrag anzeigen

Benutzerbild von Kalakmul
Kalakmul

Registriert seit: 11. Apr 2008
27 Beiträge
 
Delphi 2010 Professional
 
#6

AW: Unterschied zwischen "Self" und Form2 (MDI-Child-Formular)?

  Alt 7. Aug 2014, 16:20
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.

Geändert von Kalakmul ( 7. Aug 2014 um 16:29 Uhr)
  Mit Zitat antworten Zitat