Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#17

Re: Standardwert einer Eigenschaft

  Alt 22. Feb 2005, 13:38
Sorry Leute, aber das ist doch alles Quatsch!!!

Delphi-Quellcode:
unit MyComponent;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics;

type
  TMyComponent = class(TComponent)
  private
    FColor: TColor;
  public
    constructor Create(AOwner: TComponent); override;
  published
    property Color: TColor read FColor write FColor default clBlack;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Beispiele', [TMyComponent]);
end;

{ TMyComponent }

constructor TMyComponent.Create(AOwner: TComponent);
begin
  inherited;
  FColor := clBlack;
end;

end.
Designzeit:
- Platzieren der Komponente auf dem Formular --> Aufruf des Konstruktors (setzen der Standard-Werte durch Source im Create)
- Speichern des Formulars (Eigenschaften, die mit dem Default-Wert übereinstimmen, werden nicht gespeichert)
- Ändern der Eigenschaft
- Erneutes Speichern (Eigenschaften, die vom Default-Wert abweichen werden gespeichert)

Laufzeit:
- Erzeugen des Formulars --> Aufruf des Konstruktors
- Laden der dfm-Datei --> erzeugen aller auf dem Formular liegenden Komponenten --> Aufruf des Konstruktors jedes einzelnen --> Setzen der Eigenschaftswerte aus der Formulardatei
- Aufruf des OnCreate-Events des Formulars

Ich hoffe, das hilft etwas aus dieser allgemeinen Ratlosigkeit heraus.

Wer Interesse hat, sollte sich eingehender mit dem Resourcen-Streaming-System von Delphi beschäftigen. Dann kommen auch so Sachen, wie ComponenteState zum Tragen, die hier noch nix zu suchen hatten. Das wird nur benutzt, wenn z.B. im Konstruktor etwas gemacht wird, was nur zur Laufzeit geschehen soll (z.B. Öffnen einer Verbindung zur Datenbank oder so).

MfG
Stevie
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat