Zitat:
Aus deinem Code entnehme ich, dass du da die Buttons entfernst und erst dann die Liste bereinigst.
Das sehe ich nicht so zumindest nicht beim ersten start und da kracht es ja schon.
Denn..
NewNumButtons := ButtonWidth * ButtonHeight;
"ButtonWidth * ButtonHeight" = 1 * 1
Da NewNumButtons in dem Fall 1 ist, also nicht weniger wie FColButtons.Count wird hier auch nichts gelöscht.
Nachher mag das zutreffend sein dafür muss ich einfach nur die beiden abfragen vertauschen.
Obwohl Ctrl.RemoveButton(Btn) nichts mit RemoveButton(Btn) zu tun hat.
Zitat:
der für den Eintrag und das Entfernen der Buttons.
Das dürften die fehlenden Funktionen sein.
Delphi-Quellcode:
function TClsProgBar.AddButton(var oButton: TClsButtonInfo): Bool;
begin
if ButtonExists(oButton.Num) then
RemoveButton(oButton.Num);
FColButtons.Add(oButton);
FColButtons.Insert(oButton.Num, oButton);
Result := True;
end;
Delphi-Quellcode:
function TClsProgBar.ButtonExists(Btn: Integer): Bool;
begin
FOButton := Button(Btn);
Result := Assigned(FOButton);
end;
Beim ersten start kracht es schon (also EListError)
Notfalls kann ich den Source mal hochladen.
gruss