Ich versteh's einfach nicht mehr.
Mit:
Delphi-Quellcode:
procedure TfraButtonleiste.SetButtons(const Value: TButtonTypeSet);
var
i : TButtonType;
begin
FButtons := Value;
ClearButtons;
for i := fbtSchliessen to fbtAttributieren do
begin
if i in FButtons then
case i of
fbtSchliessen : AddButton(i, FOnClickSchliessen);
fbtUebernehmen : AddButton(i, FOnClickUebernehmen);
fbtHilfe : AddButton(i, FOnClickHilfe);
...
fbtAttributieren : AddButton(i, FOnClickAttributieren);
end;
end;
end;
gehts.
TButtonTypeSet ist ein einfaches Set. Ich setze die Buttons im IO und sie sind zur Entwurfszeit da.
Wenn ich das Gleiche mit einer Collection mache (nur um die Reihenfolge beeinflussen zu können) geht es nicht mehr.
Delphi-Quellcode:
procedure TfraButtonleiste.SetButtonCollection(const Value: TButtonCollection);
var
i : integer;
begin
ClearButtons;
FButtonCollection.Assign(Value);
for i := 0 to FButtonCollection.Count - 1 do
begin
case FButtonCollection.Items[i].ButtonType of
fbtSchliessen : AddButton(FButtonCollection.Items[i].ButtonType, FOnClickSchliessen);
fbtUebernehmen : AddButton(FButtonCollection.Items[i].ButtonType, FOnClickUebernehmen);
fbtHilfe : AddButton(FButtonCollection.Items[i].ButtonType, FOnClickHilfe);
...
fbtAttributieren : AddButton(FButtonCollection.Items[i].ButtonType, FOnClickAttributieren);
end;
end;
end;
Das SetButtonCollection scheint zur Entwurfszeit nicht ausgelöst zu werden.