Ich habe es dann auch mit dem Left := 0 gemerkt
Folgende Lösung habe ich jetzt:
Delphi-Quellcode:
unit HeaderListe;
interface
uses
SysUtils, Classes, Controls, StdCtrls, Types, Windows, Graphics, ComCtrls;
type
THeaderListBox =
class(TListBox)
private
{ Private-Deklarationen }
FHeaderControl : THeaderControl;
protected
{ Protected-Deklarationen }
public
{ Public-Deklarationen }
constructor Create(AOwner:TComponent);
override;
destructor Destroy;
override;
published
{ Published-Deklarationen }
end;
{ ---------------------------------------------------------------------------- }
procedure Register;
{ ---------------------------------------------------------------------------- }
implementation
{ ---------------------------------------------------------------------------- }
procedure Register;
begin
RegisterComponents('
Test', [THeaderListBox]);
end;
{ ---------------------------------------------------------------------------- }
{ THeaderListBox }
{ ---------------------------------------------------------------------------- }
constructor THeaderListBox.Create(AOwner: TComponent);
var
HS: THeaderSection;
begin
inherited Create(AOwner);
Self.Left := 248;
Self.Width := 249;
Self.Height := 185;
Self.Top := 100;
Self.Style := lbOwnerDrawFixed;
FHeaderControl := THeaderControl.Create(AOwner);
FHeaderControl.Parent := TWinControl(AOwner);
FHeaderControl.Align := alCustom;
FHeaderControl.Left := 248;
FHeaderControl.Width := 249;
FHeaderControl.Height := 20;
FHeaderControl.Top := 81;
FHeaderControl.Style := hsButtons;
FHeaderControl.Show;
with FHeaderControl
do
begin
HS := Sections.Add;
HS.Text := '
Item1';
HS.Width := Width
div 2;
HS := Sections.Add;
HS.Text := '
Item2';
HS.Width := Width
div 2;
end;
end;
{ ---------------------------------------------------------------------------- }
destructor THeaderListBox.Destroy;
begin
FHeaderControl.Free;
inherited;
end;
{ ---------------------------------------------------------------------------- }
end.
Wenn ich die Kompo zur Laufzeit anzeige funktioniert es.Wenn ich sie aber installiere, dann habe ich auf dem Formular 2Kompo's die ich einzeln anwählen kann und wenn ich F9 drücke kommt ein Fehler:
Exception EClassNotFound in Modul .....
Klasse THeaderControl nicht gefunden.
Wenn ich im Contructor aber folgendes schreibe, dann kommt der Fehler nicht aber ich sehe die HeaderKompo dann zur Designzeit nicht:
Delphi-Quellcode:
inherited Create(AOwner);
Self.Left := 248;
Self.Width := 249;
Self.Height := 185;
Self.Top := 100;
Self.Style := lbOwnerDrawFixed;
Self.OnDrawItem := DrawAllItem;
if ComponentState = [csDesigning] then Exit;
begin
FHeaderControl := THeaderControl.Create(AOwner);
FHeaderControl.SetSubComponent(True);
FHeaderControl.Parent := TWinControl(AOwner);
FHeaderControl.Align := alCustom;
FHeaderControl.Left := 248;
FHeaderControl.Width := 249;
FHeaderControl.Height := 20;
FHeaderControl.Top := 81;
FHeaderControl.Style := hsButtons;
FHeaderControl.Show;
FHeaderControl.OnSectionResize := SectionResize;
end;
Ich hoffe ihr könnt mir helfen...
MFG Alex