Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Anfängerfrage zu Komponenten: Wie Default Wert im Object Inspector setzen? (https://www.delphipraxis.net/188096-anfaengerfrage-zu-komponenten-wie-default-wert-im-object-inspector-setzen.html)

iphi 31. Jan 2016 10:01

Anfängerfrage zu Komponenten: Wie Default Wert im Object Inspector setzen?
 
Hallo,

ich habe eine kleine Testkonente unter Delphi7 geschrieben:
Delphi-Quellcode:
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.
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?

Danke für Eure Hilfe!

mkinzler 31. Jan 2016 10:12

AW: Anfängerfrage zu Komponenten: Wie Default Wert im Object Inspector setzen?
 
Dein Konstructor wird nicht verwendet

Delphi-Quellcode:
constructor Create(AOwner: TComponent); override;
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.

Im Konstruktor würde ich direkt das private Feld verwenden

Delphi-Quellcode:
FTest := 10;

iphi 31. Jan 2016 10:23

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!

HolgerX 31. Jan 2016 12:17

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 16:17 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