Thema: Delphi Klassen in Delphi

Einzelnen Beitrag anzeigen

Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#12

Re: Klassen in Delphi

  Alt 19. Feb 2004, 10:52
Hallo,
das hat mein Weltbild zerstört.
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

type
  TFigure = class(TObject)
    procedure Draw(Caption: string);
  end;

  TRectangle = class(TFigure)
    procedure Draw(Caption: string);
    procedure Show(Caption : String);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TFigure.Draw(Caption: string);
begin
  Messagebox(0, 'Draw Methode von TFigure', @Caption[1], 0);
end;

procedure TRectangle.Draw(Caption: string);
begin
  Messagebox(0, 'Draw Methode von TRectangle', @Caption[1], 0);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Figure: TFigure;
  Rectangle: TRectangle;
  aObj : TObject;
begin
  ...
  Figure := TFigure.Create;
  try
    TRectangle(Figure).Show('TFigure.Create / TRectangle(Figure).Draw');
      // Show nicht in TFigure trotzdem wird aber TRectangle.Show aufgerufen.
   finally
    FreeAndNil(Figure);
  end;
  ...
end;

procedure TRectangle.Show(Caption: String);
begin
  Messagebox(0, 'Show Methode von TRectangle', @Caption[1], 0);
end;

end.
Das ist nicht zu fassen obwohl Show keine Methode von TFigure ist, wird durch den Cast TRectangle.Show aufgerufen.
Hat jemand dafür eine Erklärung ?
  Mit Zitat antworten Zitat