Also, ich mal was ausprobiert, was zwar irgendwie funktioniert, aber nicht besonders schön ist:
Meine Klasse:
Delphi-Quellcode:
type
TXTStringGrid = class(TCustomControl)
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
StringGrid: TStringGrid;
ScrollBar: TScrollBar;
constructor Create(AOwner: TComponent); override;
end;
implementation
constructor TXTStringGrid.Create(AOwner: TComponent);
var
c: integer;
begin
inherited Create(AOwner);
StringGrid:=TStringGrid.Create(AOwner);
ScrollBar:=TScrollBar.Create(AOwner);
ScrollBar.Kind:=sbVertical;
end;
Und der Aufruf davon:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
StrGrd:=TXTStringGrid.Create(Panel);
StrGrd.Parent:=Panel;
StrGrd.StringGrid.Parent:=Panel;
StrGrd.Align:=alLeft;
StrGrd.ScrollBar.Parent:=Panel;
StrGrd.ScrollBar.Align:=alRight;
end;
Das klappt sogar, der Aufruf ist natürlich schon dämlich, ich möchte eigentlich nur create aufrufen müssen. Das Panel habe ich übrigens verwendet, damit ich trotz der nicht-visuellen Klasse beim Design der Form einen "Platzhalter" habe, der für das zukünftige Steuerelement steht.