Delphi-Quellcode:
{ TMyScrollBar }
//******************************************************************************
constructor TMyScrollBar.Create(AOwner: TComponent);
begin
inherited;
FHBrush := CreateSolidBrush(ColorToRGB(FBackColor));
end;
//******************************************************************************
destructor TMyScrollBar.Destroy;
begin
DeleteObject(FHBrush);
inherited;
end;
//******************************************************************************
procedure TMyScrollBar.SetBackColor(const Value: Tcolor);
begin
FBackColor := Value;
DeleteObject(FHBrush);
FHBrush := CreateSolidBrush(ColorToRGB(FBackColor));
end;
//******************************************************************************
procedure TMyScrollBar.WMCtlColor(var Message: TWMCtlColorScrollbar);
begin
Message.Result := FHBrush;
end;
Ungetestet, gefunden bei SO. Damit ist sollte das Speicherleck zu sein.
Bereichsprüfungsfehler? Zeige doch mal auch was Du in der Message Procedure anstellst ?! Bei mir klappen alle Varianten.