Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi [gelöst] Property von abgel. Klasse überschreiben (https://www.delphipraxis.net/27300-%5Bgeloest%5D-property-von-abgel-klasse-ueberschreiben.html)

dizzy 7. Aug 2004 15:44


[gelöst] Property von abgel. Klasse überschreiben
 
Ich versuche gerade krampfhaft die Width und Height -Properties von TGraphicControl in einer davon abgeleiteten Klasse zu überschreiben.
Das Problem ist nämlich, dass ich für das Schreiben dieser Werte eine Set-Prozedur einbauen muss, da diverse Arrays bei diesem Ereignis ihre Länge verändern müssen.
Aber ich möchte auch keinen anderen Namen für Width/Height verwenden, da sie ja letzten Endes ihre Funktion beibehalten. Es soll halt nur noch etwas dabei geschehen.

Die Resize-Prozedur habe ich schon überschrieben, aber wie mir scheint wird diese nicht aufgerufen, wenn die Größenänderung in der IDE passiert. Das muss/möchte ich aber schon haben :?

Bei:
Delphi-Quellcode:
published
  property Width: Integer read Width write SetWidth;
end;
spuckt mich der Compiler an :).


Hätte da jemand eine gute Idee?

Dank und Gruß,
dizzy

dizzy 7. Aug 2004 16:39

Re: [gelöst] Property von abgel. Klasse überschreiben
 
Mirage228 hat's hinbekommen. Hier der Weg:

Delphi-Quellcode:
type
  TMyClass = class(TGraphicControl)
  private
    function GetWidth: Integer;
    procedure SetWidth(w: Integer);
  .
  .
  published
    property Width: Integer write SetWidth read GetWidth;

.
.

function TMyClass.GetWidth: Integer;
begin
  result := inherited Width;
end;

procedure TMyClass.SetWidth(w: Integer);
begin
  inherited Width := w;
end;
Man muss also Getter und Setter neu definieren wenn man eine geerbte Property überschreiben will.
Danke!

dizzy


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