AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls abgeleitete Combobox: Element hat kein übergeordnetes Fenster
Thema durchsuchen
Ansicht
Themen-Optionen

abgeleitete Combobox: Element hat kein übergeordnetes Fenster

Ein Thema von Getox · begonnen am 25. Jun 2019 · letzter Beitrag vom 25. Jun 2019
 
Getox

Registriert seit: 28. Dez 2012
155 Beiträge
 
Delphi XE3 Professional
 
#1

abgeleitete Combobox: Element hat kein übergeordnetes Fenster

  Alt 25. Jun 2019, 10:54
Hallo,

ich habe selber eine Combobox von TCustomComboBox abgeleitet. Ich habe ein Frame erstellt, wo ich diese Combobox einfach nur aus der Komponentenpalette heraus draufziehe - mehr nicht. Von diesem Frame erzeuge ich dann per Code eine Instanz und setze es auf in eine Groupbox, welche sich auf einem Form befindet.
Code:
fFramePerson := TFramePersonen.Create(self);
fFramePerson.Parent := gbPerson;
ob ich als Owner "self" oder die Groupbox übergebe macht keinen Unterschied in Bezug auf mein Problem.

Beim Start des Programms meckert Delphi noch nicht... aber wenn das Form freigegeben wird, wo der Frame drauf ist kommt:
Zitat:
Element 'OtAutoComboBox1' hat kein übergeordnetes Fenster.
Ich kümmere mich nicht um das Freigeben des Frames, da es ja das Form als Owner hat.

Was habe ich falsch gemacht?
Hier meine Komponente (ist bei weitem noch nicht fertig... aber ich will ja erstmal dass es so läuft, bevor ich weiter dran rumbastel). Den Parent setze ich ja sogar manuell im Construktor. Auf dem Frame befinden sich noch weitere von mir abgeleitete Komponenten (von tCustomEdit) und die machen keine Probleme.

Code:
unit otAutoComboBox;

interface

uses
  System.SysUtils, System.Classes, Vcl.Controls, Vcl.StdCtrls, Graphics, Winapi.Messages, System.Generics.Collections, UnitOtObject;

type
  TOtAutoComboBox = class(TCustomComboBox)
    procedure WMPaint(var Message: TWMPaint); message WM_PAINT;
  private
    { Private-Deklarationen }
    procedure setObjectList(aObjectList: TObjectList<TOtObject>);
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
    property objectList: TObjectList<TOtObject> write setObjectList;

    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    { Published-Deklarationen }
    property Align;
    property Font;
    property Height default 24;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('XXXXX', [TOtAutoComboBox]);
end;

{ TOtAutoComboBox }

procedure TOtAutoComboBox.setObjectList(aObjectList: TObjectList<TOtObject>);
var
  i: Integer;
begin
  Items.Clear;
  if aObjectList <> nil then
    for i := 0 to aObjectList.Count - 1 do
      Items.AddObject(aObjectList.Items[i].ToString, aObjectList.Items[i]);
end;

procedure TOtAutoComboBox.WMPaint(var Message: TWMPaint);
var
  CC: TControlCanvas;
begin
  inherited;
  CC := TControlCanvas.Create;
  try
    cc.Control := Self;
    CC.Brush.Color := clGray;
    CC.FrameRect(ClientRect);
  finally
    CC.Free;
  end;
end;

constructor TOtAutoComboBox.Create(AOwner: TComponent);
begin
  inherited;
  AutoSize := False;
  ParentCtl3D := False;
  Ctl3D := False;
  Constraints.MaxHeight := 24;
  Height := 24;
  Font.Size := 11;
  BevelInner := bvNone;
  Parent := AOwner as TWinControl;
end;

destructor TOtAutoComboBox.Destroy;
begin
  objectList := nil;
  inherited;
end;

end.
Ist ein Nilpferd ein Pferd, das nicht vorhanden ist?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz