Einzelnen Beitrag anzeigen

RaSoWa1

Registriert seit: 1. Jun 2006
Ort: Halle/Saale
140 Beiträge
 
Delphi 2010 Professional
 
#1

Sonderbares verhalten von Align in eigener Komponente

  Alt 28. Mär 2011, 20:07
Hallo,

ich habe mir untenstehende Komponente abgeleitet. Sie funktioniert auch wie sie soll. Nur zeigt sie zur Entwurfszeit ein sonderbares Verhalten:
  1. Wenn ich sie aus der Komponentenpalette auf ein z.B. Panel ziehe und anschließend im Objektinspektor die Eigenschaft Align auf alClient setze, füllt sie das ganze Formular aus, statt das Panel.
  2. Wenn ich diese Komponente dann mit Ausschneiden/Einfügen auf das Panel lege, füllt sie, wie es richtig ist, nur das Panel aus.
Ich vermute: bei 1. wird das Formular der Besitzer und nicht das Panel, wie vorgesehen.
Habe ich einen Fehler imn Code?

Gruß Klaus.
Delphi-Quellcode:
type
  TFileAuswahl = class(TCustomPanel)
  private { Private-Deklarationen }
    FShellTreeView : TShellTreeView;
    FSplitter : TSplitter;
    FPanelGrd,
    FPanelPath,
    FPanelBtn : TPanel;
    FBtnAlles,
    FBtnNichts,
    FBtnUmkehr : TButton;

    FGrdFiles : TFilterGrid;
    FGrdFilesOnClick : TNotifyEvent;
    FGrdFilesDblClick : TNotifyEvent;

....

    function Create_GrdFiles(aOwner: TWinControl): TFilterGrid;
    function Create_ShellTreeView(aOwner: TWinControl): TShellTreeView;
    function Create_Splitter(aOwner: TWinControl): TSplitter;
    function Create_PanelGrd(aOwner: TWinControl): TPanel;
    function Create_PanelPath(aOwner: TWinControl): TPanel;
    function Create_PanelBtn(aOwner: TWinControl): TPanel;
    function Create_Button(aOwner: TWinControl; mode: Integer): TButton;
......
  protected { Protected-Deklarationen }
  public { Public-Deklarationen }
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;

  published { Published-Deklarationen }
    // aus ExtCtrls:
    property Align;
    property AutoSize;
    property Anchors;
    property BevelEdges;
    property BevelInner;
    property BevelKind;
    property BevelOuter;
    property BevelWidth;
    property BorderWidth;
    property BorderStyle;
    property Constraints;
    property Ctl3D;
    property DoubleBuffered;
    property Enabled;
    property FullRepaint;
    property Visible;
    property ParentShowHint;
    property PopupMenu;
    property ShowHint;
    property TabOrder;
    property TabStop;
    property OnResize;

    // eigene:

    property Path: String read GetPath write SetPath;
    property Filename: String read GetFilename;

.....
  end;

implementation

constructor TFileAuswahl.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  Parent := AOwner as TWinControl;

  FShellTreeView := Create_ShellTreeView(Self);
  FSplitter := Create_Splitter(Self);
  FPanelGrd := Create_PanelGrd(Self);
  FPanelPath := Create_PanelPath(FPanelGrd);
  FPanelBtn := Create_PanelBtn(FPanelGrd);
  FBtnUmkehr := Create_Button(FPanelBtn, 3);
  FBtnNichts := Create_Button(FPanelBtn, 2);
  FBtnAlles := Create_Button(FPanelBtn, 1);
  FGrdFiles := Create_GrdFiles(FPanelGrd);
......

end;

destructor TFileAuswahl.Destroy;
begin
  FPicIcon.Free;
  FShellTreeView.Free;
  FSplitter.Free;
  FGrdFiles.Free;
  inherited;
end;
Klaus
  Mit Zitat antworten Zitat