Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.331 Beiträge
 
Delphi 12 Athens
 
#6

AW: Eigene Komponente (Toolbar) programmieren

  Alt 8. Mär 2011, 09:56
Nur durch Änderung des Owners sollte sich nichts am Programmablauf ändern, da der Owner nur für die Freigabe der Subkomponenten zuständig ist und sonst keinen Einfluß besitzt, abgesen vom Property .Components und vom FindComponent.

Der Owner gibt seine zugeordneten Komponenten frei, wenn er selbst freigegeben wird ... Notification ist also etwas overload.

PS: Buttons kann nur einen Button aufnehmen, weswegen man hier ein Array, eine Liste (TObjectList) oder eben die vorhandene Liste .Components verwenden sollte.

Delphi-Quellcode:
unit Testtoolbar2;

interface

uses
  SysUtils, Classes, Controls, ToolWin, ComCtrls, ImgList, cxGraphics;

type TTestBars = set of (Standard1, Standard2, Standard3, Standard4, Standard5);

type
  TTestToolbar = class(TToolBar)
  private
    { Private-Deklarationen }
    Buttons : array[0..3] of TToolbutton;
    ImageList: TcxImageList;
  public
    { Public-Deklarationen }
    constructor Create(aOwner: TComponent); override;
  end;

  procedure Register;

implementation

constructor TTestToolbar.Create;
begin
  inherited;
  Parent := Owner as TWinControl;
  { wann sollten die/der denn erzeugt wurden sein? }
  //if Assigned(Buttons) then
  // Exit;

  { sollen die Buttons wirklich NUR im Formdesigner vorhanden sein? }
  //if csDesigning in ComponentState then
  //begin
    Buttons[0] := TToolButton.Create(Self);
    Buttons[0].Parent := Self;
    Buttons[0].Caption := 'Speichern';

    Buttons[1] := TToolButton.Create(Self);
    Buttons[1].Parent := Self;
    Buttons[1].Caption := 'Zurück';

    Buttons[2] := TToolButton.Create(Self);
    Buttons[2].Parent := Self;
    Buttons[2].Caption := 'Vor';

    Buttons[3] := TToolbutton.Create(self.Parent);
    Buttons[3].Parent := Self;
    Buttons[3].Caption := 'Neu';
  //end;

  //Standardeigenschaften für Toolbar setzten
  ShowCaptions := True;
end;

procedure Register;
begin
  RegisterComponents('ZTestKomponenten', [TTestToolbar]);
end;

end.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 8. Mär 2011 um 09:58 Uhr)
  Mit Zitat antworten Zitat