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