![]() |
Unterschied D2009 <-> XE7 Komponenten dynamisch erstellen auf Form -> Fehlermeldung
Hallo zusammen,
kann mir mal bitte einer kurz sagen, warum der nachfolgende Code unter D2009 funktioniert und unter XE7 nicht mehr? Fehlermeldung bei AddCol ist dann: Element hat kein übergeordnetes Fenster Unit1:
Delphi-Quellcode:
Unit2:
unit Unit1;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Unit2; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } frm2 : TForm2; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin if not Assigned(frm2) then frm2 := TForm2.Create(Application); if Assigned(frm2) then frm2.Show; end; end.
Delphi-Quellcode:
Viele Grüße
unit Unit2;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, VirtualTrees; type TMyVirtualStringTree = class(TVirtualStringTree) private public constructor Create(AOwner: TComponent); override; end; type TForm2 = class(TForm) GroupBox1: TGroupBox; Button1: TButton; procedure FormCreate(Sender: TObject); private { Private-Deklarationen } MyVst : TMyVirtualStringTree; public { Public-Deklarationen } end; var Form2: TForm2; implementation {$R *.dfm} procedure TForm2.FormCreate(Sender: TObject); begin if not Assigned(MyVst) then begin MyVst := TMyVirtualStringTree.Create(Self); MyVst.Align := alClient; MyVst.Parent := GroupBox1; MyVst.Show; end; end; { TMyVirtualStringTree } constructor TMyVirtualStringTree.Create(AOwner: TComponent); procedure AddCol(aVst: TVirtualStringTree; aCaption: String; aWidth: Integer); begin with aVst.Header.Columns.Add do begin Text := aCaption; Width := aWidth; end; end; begin inherited; NodeDataSize := SizeOf(Double); TreeOptions.PaintOptions := [toShowButtons, toShowDropmark, toShowRoot, toShowHorzGridLines, toShowVertGridLines, toThemeAware, toUseBlendedImages] - [toShowTreeLines]; Header.Options := [hoColumnResize, hoDrag, hoShowHint, hoShowSortGlyphs, hoVisible]; TreeOptions.SelectionOptions := [toFullRowSelect]; Header.Columns.Clear; AddCol(self, 'a', 150); AddCol(self, 'b', 150); AddCol(self, 'c', 150); end; end. Edit: Compilieren lässt es sich sowohl unter D2009 als auch unter XE7. Nur beim D2009 sehe ich mein VirtualStringTree und erhalte keine Exception, unter XE7 erhalte ich eine Exception und sehe keinen Tree. Was wurde da geändert an den Delphi Versionen? |
AW: Unterschied D2009 <-> XE7 Komponenten dynamisch erstellen auf Form -> Fehlermeldu
Möchtest du vielleicht noch die VirtualStringTree-Version mit angeben?
|
AW: Unterschied D2009 <-> XE7 Komponenten dynamisch erstellen auf Form -> Fehlermeldu
Klappt es, wenn Du erst den Parent setzt und danach erst das Align?
Delphi-Quellcode:
if not Assigned(MyVst) then
begin MyVst := TMyVirtualStringTree.Create(Self); MyVst.Parent := GroupBox1; MyVst.Align := alClient; MyVst.Show; end; |
AW: Unterschied D2009 <-> XE7 Komponenten dynamisch erstellen auf Form -> Fehlermeldu
Der Fehler entsteht ja im .Create, das setzen des Parents danach bzw. das Setzen des Align hat da keine Auswirkung.
V5.5 -> spielt aber denke ich keine Rolle, da es unter D2009 und XE7 die gleiche Version ist ;-) Viele Grüße |
AW: Unterschied D2009 <-> XE7 Komponenten dynamisch erstellen auf Form -> Fehlermeldu
Zitat:
Zitat:
|
AW: Unterschied D2009 <-> XE7 Komponenten dynamisch erstellen auf Form -> Fehlermeldu
Ups, diese Version 5.5.1 habe ich noch nicht. Danke für den Hinweis.
Edit: Ich hatte immer nur auf der Hauptseite geguckt, welche Version grad aktuell ist und da steht groß, V5.5 ![]() Wenn man aber auf Download geht, steht dann V5.5.1. Das hatte ich nie extra geprüft Danke |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:43 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-2025 by Thomas Breitkreuz