Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Vererbung von Ereignissen (https://www.delphipraxis.net/75069-vererbung-von-ereignissen.html)

glunzl 13. Aug 2006 21:36


Vererbung von Ereignissen
 
Hallo!

Ich bastel mir gerade ein Panel, auf dem dann ein Label erscheint. Panel mit Label (war mal Edit) drauf

Nun stehe ich vor dem nächsten Problem. Ich möchte, im OnResize Event des Panels die Labelgröße ändern. Vorgestellt hatte ich mir das wie folgt:
Delphi-Quellcode:
unit DatPanel;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type TDatPanel = class(TPanel)
  private
    fLabel1 : TLabel ;
  public
    constructor Create(AOwner: TComponent); override ;
    procedure PanelResize(Sender: TObject); override ; // [FEHLER] Methode 'PanelResize' nicht in Basisklasse gefunden
  end ;


implementation

constructor TDatPanel.Create(AOwner: TComponent);
begin
  inherited;
  fLabel1 := TLabel.Create(self);  
  with fLabel1 do begin
    Parent := self ;
    Top := 2 ;
    Left := 2 ;
    Font.Size := 8 ;
    Caption := 'Hallo' ;
    end ;

end;
procedure TDatPanel.PanelResize(Sender: TObject);
begin
  inherited ;
  fLabel1.Width := Parent.ClientWidth div 2 ;
end;

end.
Es komt immer zu dem Fehler "[FEHLER] Methode 'PanelResize' nicht in Basisklasse gefunden" in der kommentierten Zeile. Wie komme ich denn an den richtigen Methodennamen des OnResize Events heran? In der ExtCtrls.pas finde ich diese Methode nicht.

Auf "procedure PanelResize(Sender: TObject);" kam ich, indem ich ein Panel als Komponente auf eine Form gelegt habe und dan den Eventhandler bearbeitet habe. Analog dazu habe ich das in meiner Unit gemacht, aber das funzt nicht.

Tipps, Ratschläge?

Gruß und Dank!
glunzl

Khabarakh 13. Aug 2006 21:52

Re: Vererbung von Ereignissen
 
Zitat:

Zitat von glunzl
In der ExtCtrls.pas finde ich diese Methode nicht.

Wie kommst du denn auf die Idee, in dieser Unit zu suchen, wenn das Ereignis doch von TControl vererbt wird :gruebel: ?
Delphi-Quellcode:
protected Controls.TControl.Resize; dynamic;

SirThornberry 13. Aug 2006 21:58

Re: Vererbung von Ereignissen
 
Alternativ kann man noch SetBounds überschreiben.

glunzl 13. Aug 2006 22:28

Re: Vererbung von Ereignissen
 
Zitat:

Zitat von Khabarakh
Zitat:

Zitat von glunzl
In der ExtCtrls.pas finde ich diese Methode nicht.

Wie kommst du denn auf die Idee, in dieser Unit zu suchen, wenn das Ereignis doch von TControl vererbt wird :gruebel: ?

Die Idee kam über den ToolTip, wenn Du über TPanel stehst. :-)

Zitat:

Zitat von Khabarakh
Delphi-Quellcode:
protected Controls.TControl.Resize; dynamic;

Und wie heisst jetzt meine Prozedur? Ich denke
Delphi-Quellcode:
 procedure TControl.Resize(Sender: TObject); override ;
wohl nicht ... :gruebel:

@SirThornberry: SetBounds ist auch gut :-)

glunzl 13. Aug 2006 23:10

Re: Vererbung von Ereignissen
 
Zitat:

Zitat von glunzl
Und wie heisst jetzt meine Prozedur? Ich denke
Delphi-Quellcode:
 procedure TControl.Resize(Sender: TObject); override ;
wohl nicht ... :gruebel:

Nee,
Delphi-Quellcode:
procedure Resize; override ;
muß es heißen ... :wall:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:10 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