![]() |
Objekt Typ feststellen und gleichen Typ neu erstellen?
Moin !
Nachdem mein RTTI nun funktioniert habe ich noch folgendes Problem: Angenommen ich habe die Serie (TFastLineSeries) und ich möchte ein Objekt vom selben Typ erstellen. Dann würde man eine Zeile nutzen ala
Delphi-Quellcode:
Wie kann ich das universell hinkriegen?
var series1: TChartSeries;
begin series1 := TFastLineSeries.Create(nil); Also Typ bestimmen und dann mit dem ermittelten Typen die Serie erstellen? Die Variable series1 passt jedenfalls für alle Typen: Zitat:
|
Re: Objekt Typ feststellen und gleichen Typ neu erstellen?
Sollte tun :
Delphi-Quellcode:
lSerie := TChartSeries(Instanz.ClassType).Create(Self);
|
Re: Objekt Typ feststellen und gleichen Typ neu erstellen?
Moin !
Delphi-Quellcode:
Chart1 = Qullchart ...
var series1: TChartSeries;
begin series1 := TChartSeries(Chart1[0].ClassType).Create(Self); Chart2.AddSeries(series1); Das führt leider zu einer Exception: Erste Gelegenheit für Exception bei $7C812AFB. Exception-Klasse EAccessViolation mit Meldung 'Zugriffsverletzung bei Adresse 8D208964. Lesen von Adresse 8D208964'. |
Re: Objekt Typ feststellen und gleichen Typ neu erstellen?
Du hast leider recht, ich such weiter
|
Re: Objekt Typ feststellen und gleichen Typ neu erstellen?
Hallo,
vielleicht kann man das Problem mit Hilfe eines Streams lösen: ![]() @guinnes ClassType liefert eine Klassenreferenz (class of TObject), keine Instanz (TObject). Der Typecast kann also so nicht funktionieren. Gruß Hawkeye |
Re: Objekt Typ feststellen und gleichen Typ neu erstellen?
Vielleicht gehts so?
Delphi-Quellcode:
Viele Grüße
type
TChartClass = class of TChartSeries var series1: TChartSeries; begin series1 := TChartClass(Chart1[0].ClassType).Create(Self); Chart2.AddSeries(series1); |
Re: Objekt Typ feststellen und gleichen Typ neu erstellen?
So gehts bei mir:
Delphi-Quellcode:
var
ser2 : TChartSeries; begin ser2 := TChartSeriesClass(Chart1.SeriesList[0].ClassType).Create(Chart1); Chart1.AddSeries(ser2); end; |
Re: Objekt Typ feststellen und gleichen Typ neu erstellen?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:23 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