Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi GetPropValues: Eigenschaft ... existiert nicht (https://www.delphipraxis.net/128886-getpropvalues-eigenschaft-existiert-nicht.html)

CVo 8. Feb 2009 15:41


GetPropValues: Eigenschaft ... existiert nicht
 
Hallo,

ich möchte per Variable ein Property eines Objects auslesen:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, typinfo, stdctrls;

type
  TForm1 = class(TForm)
    procedure FormDblClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;


  TTest = class(TObject)
  private
    test1 : String;
    test2 : integer;
  published
    property gettest1 : string read test1 write test1;
  end;

var
  Form1: TForm1;
  t1, t2 : TTest;

implementation

{$R *.dfm}


procedure TForm1.FormDblClick(Sender: TObject);
begin
  t1 := TTest.Create;
    t1.test1 := 'hallo';
    t1.test2 := 1;

  t2 := TTest.Create;
    t2.test1 := 'hallo2';
    t2.test2 := 2;


  showmessage(GetPropValue(t1,'gettest1'));
end;

end.
Aber beim Ausführen bekomme ich stets "Eigenschaft gettest1 existiert nicht.".
Wie müsste denn die Funktion richtig lauten?

Vielen Dank schon mal
Christian

DeddyH 8. Feb 2009 15:50

Re: GetPropValues: Eigenschaft ... existiert nicht
 
Du müsstest AFAIK entweder von TPersistent ableiten oder den Compilerschalter {$M+} setzen. Leider finde ich gerade nicht die richtigen Suchbegriffe für die Threads, in denen das bereits angesprochen wurde.

[edit] Das heißt natürlich TPersistent :oops: [/edit]

himitsu 8. Feb 2009 15:54

Re: GetPropValues: Eigenschaft ... existiert nicht
 
Zitat:

Zitat von DeddyH
Leider finde ich gerade nicht die richtigen Suchbegriffe für die Threads, in denen das bereits angesprochen wurde.

bei Hier im Forum suchenGetPropValue ist die Auswahl doch nicht sooo groß :angel2:

CVo 8. Feb 2009 16:00

Re: GetPropValues: Eigenschaft ... existiert nicht
 
Mit dem Ableiten von TPersistent hat es geklappt.
Was ist denn der Unterschied von TPersistent zu TObject?

Bernhard Geyer 8. Feb 2009 16:04

Re: GetPropValues: Eigenschaft ... existiert nicht
 
Zitat:

Zitat von CVo
Mit dem Ableiten von TPersistent hat es geklappt.
Was ist denn der Unterschied von TPersistent zu TObject?

Bei direkter Ableitung von TOBject fehlen die nötigen RTTI-Informationen. Dieses stehen erst mit {M+} oder bei Ableitung von TPersistent zur Verfügung. Bei neueren Delphi-Versionen solltest du auch einen entsprechenden Compilerhinweis/Warnung bekommen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:52 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