Einzelnen Beitrag anzeigen

torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

Komponente mit ChildControls entwickeln

  Alt 21. Okt 2010, 14:37
Hallo Wissende,

ich möchte eine eigene DataBar entwickeln. Das soll wie folgt aussehen.

Als Mutter soll ein TPanel zum Einsatz kommen. Darauf soll eine Combobox und 2 Buttons platziert werden. Also eigentlich eine Toolbar. Die Buttons sollen später zum Navigieren in der Combobox dienen, falls nötig. Die Combobox soll gespeicherte Einträge aufnehmen und OnItemSelect die passenden Inhalte des Eintrages aus einer IniDatei laden. So viel nur als Background für Euch zum wissen. Das Ganze habe ich schon sehr oft so gemacht, nur nervt es mich, dass ich das Ganz immer über die Objektablege in jeden Dialog einpflegen muss. Aus diesem Grund möchte ich nun eine Komponente daraus machen.

Zur Zeit scheitere ich leider daran, dass mir unklar ist, wie ich die Combobox auf dem Panel platziere. Ich erhalte leider immer eine Fehlermeldung von Delphi7.

Hier mal mein Code, der sicher noch nicht optimal ist. Ich würde mich freuen, wenn mir der Ein oder Andere ein paar Tipps geben könnte. Die verwendeten Komponenten sind zum Teil von TMS, aber ich könnte es Testweise auch auf Standard-Controls von Delphi umschreiben.

Delphi-Quellcode:
unit myDataBar;

interface

uses
  SysUtils, Classes, Controls, AdvToolBar, StdCtrls;

type
  TmyDataBar = class(TAdvDockPanel)
  private
    { Private-Deklarationen }
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
    FToolbar : TAdvToolbar;
    FDataCombo : TCombobox;
    Fbtn_next : TAdvToolBarButton;
    Fbtn_previous : TAdvToolBarButton;
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    { Published-Deklarationen }
  end;

procedure Register;

implementation
{$R mydatabar.dcr}

procedure Register;
begin
  RegisterComponents('Beispiel', [TmyDataBar]);
end;

constructor TmyDataBar.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);

  Self.Height := 43;
  Self.Align := daTop;

  FToolbar := TAdvToolBar.Create(AOwner);
  FToolbar.Parent := Self;
  FToolbar.FullSize := True;

  FDataCombo := TComboBox.Create(FToolbar);
  FDataCombo.Parent := FToolbar;
  FDataCombo.Width := 200;

  Fbtn_next := TAdvToolBarButton.Create(FToolbar);
  Fbtn_next.Parent := FToolbar;
  Fbtn_next.Caption := 'Next';

  Fbtn_previous := TAdvToolBarButton.Create(FToolbar);
  Fbtn_previous.Parent := FToolbar;
  Fbtn_previous.Caption := 'Previous';
end;

destructor TmyDataBar.Destroy;
begin
  inherited;
end;

end.
Danke
Tom
  Mit Zitat antworten Zitat