AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Vererbung von Ereignissen

Ein Thema von glunzl · begonnen am 13. Aug 2006 · letzter Beitrag vom 13. Aug 2006
Antwort Antwort
Benutzerbild von glunzl
glunzl

Registriert seit: 21. Mär 2004
Ort: Reinbek
119 Beiträge
 
Delphi 7 Professional
 
#1

Vererbung von Ereignissen

  Alt 13. Aug 2006, 21:36
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
Michael
--
10 Jahre Step5 entschuldigen hoffentlich meinen Programmierstiel!
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#2

Re: Vererbung von Ereignissen

  Alt 13. Aug 2006, 21:52
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 ?
protected Controls.TControl.Resize; dynamic;
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Vererbung von Ereignissen

  Alt 13. Aug 2006, 21:58
Alternativ kann man noch SetBounds überschreiben.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von glunzl
glunzl

Registriert seit: 21. Mär 2004
Ort: Reinbek
119 Beiträge
 
Delphi 7 Professional
 
#4

Re: Vererbung von Ereignissen

  Alt 13. Aug 2006, 22:28
Zitat von Khabarakh:
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 ?
Die Idee kam über den ToolTip, wenn Du über TPanel stehst.

Zitat von Khabarakh:
protected Controls.TControl.Resize; dynamic;
Und wie heisst jetzt meine Prozedur? Ich denke
 procedure TControl.Resize(Sender: TObject); override ; wohl nicht ...

@SirThornberry: SetBounds ist auch gut
Michael
--
10 Jahre Step5 entschuldigen hoffentlich meinen Programmierstiel!
  Mit Zitat antworten Zitat
Benutzerbild von glunzl
glunzl

Registriert seit: 21. Mär 2004
Ort: Reinbek
119 Beiträge
 
Delphi 7 Professional
 
#5

Re: Vererbung von Ereignissen

  Alt 13. Aug 2006, 23:10
Zitat von glunzl:
Und wie heisst jetzt meine Prozedur? Ich denke
 procedure TControl.Resize(Sender: TObject); override ; wohl nicht ...
Nee, procedure Resize; override ; muß es heißen ...
Michael
--
10 Jahre Step5 entschuldigen hoffentlich meinen Programmierstiel!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:37 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