Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Problem: Kein Übergeordnetes Fenster bei neuer Komponente (https://www.delphipraxis.net/77575-problem-kein-uebergeordnetes-fenster-bei-neuer-komponente.html)

MarcRB1975 21. Sep 2006 12:33


Problem: Kein Übergeordnetes Fenster bei neuer Komponente
 
Hallo,
ich hab ein Problem mit einer Komponentenerstellung.
Ich bekomme immer den Fehler : '' hat kein übergeordnetes Fenster.
Das versteh ich überhaupt nicht. :wall:

Mein Source:

Delphi-Quellcode:
type
TMTabelle = Class(TStringGrid)

private

protected

public
    destructor Destroy;
    constructor Create(AOwner:TComponent);override;
    procedure Laden;

published

end;

procedure Register;

implementation

List :   TListBox;


procedure Register;
begin
RegisterComponents('Standard', [TMTabelle]);
end;

destructor TMTabelle.Destroy;
begin
inherited ;
end;

constructor TMTabelle.Create(AOwner:TComponent);
begin
inherited Create(AOwner);
List := TListbox.Create(self);
List.Parent := self;
Laden;                    // <--- dieser Verweis bringt mir den Fehler, aber warum??
end;

procedure TMTabelle.Laden;
var Pfad : String;
begin
pfad := 'Beispiel.txt';
List.Items.LoadFromFile(Pfad);
end;

Ich kann absolut nicht verstehen, warum er mir, wenn ich auf die Procedur "Laden" verweise, den Fehler bringt. "List" hab ich doch Parent zugewiesen.

Vielleicht könnte mir ja jemand sagen, was ich da falsch mache. :roll:

Bernhard Geyer 21. Sep 2006 12:51

Re: Problem: Kein Übergeordnetes Fenster bei neuer Komponent
 
Brrr. List ist eine globale Variable.
Denk mal nach was passiert wenn du 2 Instanzen deiner Komponente erzeugst.

Es könnte sein das Du zwar einen (VCL-)Parent definiert hast, aber dieser noch kein Windows-Handle hat bei List.Items.LoadFromFile schon mit Windows-Handles gearbeitet wird.
Was spricht dagegen wenn du diese Liste in einer internen Liste speicherst und erst wenn die ListBox sichtbar ist dies Listbox füllst.

runger 21. Sep 2006 12:56

Re: Problem: Kein Übergeordnetes Fenster bei neuer Komponent
 
Hallo,

nimm statt Tlistbox Tstringlist dann gehts. Tlistbox ist eine visuelle Komponente. Wo soll diese sich denn hinzeichnen wenn kein übergeordnetes Fenster da ist?

Rainer

MarcRB1975 21. Sep 2006 13:21

Re: Problem: Kein Übergeordnetes Fenster bei neuer Komponent
 
Hallo,
ohh... danke für die schnellen Nachrichten. Ich werd das mal gleich versuchen, ob das geht.

DANKE!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz