![]() |
Was passiert beim Ändern einer Eigenschaft eines Objekts?
Hi, ich habe eine Klasse erstellt die wie folgt aussieht:
Delphi-Quellcode:
Änder ich jetzt eine Eigenschaft z.B. MyBackground, wird dann erneut der constructor aufgerufen? Oder tritt ein
type TPanelButton = class
public MyBackground:String; ... private MyPanel:PPanel; ... procedure setBackground(MyBackground:String); ... procedure constructor Create(Background,Caption,TextFont:String; x,y,Textx,Texty,Layer:integer; visible,overlay,refresh,d3d:boolean; event:PByte); end; anderes Ereignis auf? In Java passiert das ganze ja über Methoden wie z.B. setBackground. |
Re: Was passiert beim Ändern einer Eigenschaft eines Objekts
Hi,
Hast du dir schonmal ein OOP/Klassen-Tutorial durchgelesen? Was ist denn das für ein Monster-Konstruktor? Kennst du Properties? Wenn nicht dann such mal im Forum und im Internet danach ;) |
Re: Was passiert beim Ändern einer Eigenschaft eines Objekts
Kommat daruf an, wie es in der klasse deklariert ist. Man kann das private Feld entweder direkt in der Property ansprechen oder wie es hier aussieht über Getter/Setter.
|
Re: Was passiert beim Ändern einer Eigenschaft eines Objekts
Um mal die Bergiffe richtig zu verstehen:
MyBackground ist bei der Definition keine Eigenschaft sondern lediglich ein Feld. Da es im public Teil deklariert ist, kannst du das Feld von aussen ändern. Eine Eigenschaft hingegen wird über Property, normalerweise auch im public Teil, definiert. Greifst du lesend oder schreibend auf diese Property zu, so werden, wie bei Java, die entsprechenden Getter und Settter Methoden aufgerufen. Da wäre dann z.B. ein SetBackGround möglich. Jedenfalls wird beim Schreiben einer Eigenschaft oder eines Feldes von aussen KEIN contructor nochmals aufgerufen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz