![]() |
Anfängerfrage zu Komponenten: Wie Default Wert im Object Inspector setzen?
Hallo,
ich habe eine kleine Testkonente unter Delphi7 geschrieben:
Delphi-Quellcode:
Ich hätte erwartet, dass ich im Object Inspector bei der Property den Default Wert 10 sehe, ich sehe aber Null. Wenn ich die Komponente auf einer Form verwende, und dort TestComponent1.Test abfrage, ist die auch auf Null gesetzt. Was mache ich falsch?
unit TestComponent;
interface uses Windows, Messages, SysUtils, Classes; type TTestComponent = class(TComponent) private { Private declarations } FTest: integer; constructor Create(AOwner: TComponent); protected { Protected declarations } public { Public declarations } published { Published declarations } property Test: Integer read FTest write FTest default 10; end; procedure Register; implementation constructor TTestComponent.Create(AOwner: TComponent); begin inherited Create(AOwner); Test:=10; end; procedure Register; begin RegisterComponents('Samples', [TTestComponent]); end; end. Danke für Eure Hilfe! |
AW: Anfängerfrage zu Komponenten: Wie Default Wert im Object Inspector setzen?
Dein Konstructor wird nicht verwendet
Delphi-Quellcode:
Das Default bei der Deklaration der Property bedeutet nicht, dass dies der Standardwert sein soll, sondern dass dieser Wert nicht in die dfm übernommen wird.
constructor Create(AOwner: TComponent); override;
Im Konstruktor würde ich direkt das private Feld verwenden
Delphi-Quellcode:
FTest := 10;
|
AW: Anfängerfrage zu Komponenten: Wie Default Wert im Object Inspector setzen?
Danke, override, das wars! Habs sogar verstanden :-)
Vielen Dank für den Tipp! |
AW: Anfängerfrage zu Komponenten: Wie Default Wert im Object Inspector setzen?
..
und der constructor gehört in den public Bereich ;) (Compiuler sollte eigendlich warnen) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:12 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