![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
не видно свойства класса
coder123 © (2013-10-25 12:43:00)почему не видно свойств класса:
unit Unit2;
interface
type
TItem = class of TData;
TData = class
private
FID: Integer;
public
property ID: Integer read FID write FID;
end;
implementation
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
Unit2;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
Item: TItem;
begin
Item. //<- как обратиться к ID
end;
end.
Palladin (2013-10-25 14:48:00) [1]
> TItem = class of TData;
Зачем ты использовал эту конструкцию?
DVM (2013-10-25 13:44:00) [2]
> coder123 (25.10.13 12:43)
Если исправить вот так:
TItem = class of TData;
TData = class
private
class var FID: Integer;
public
class property ID: Integer read FID write FID;
end;
то свойство ID будет видно, т.к. относится к классу TData, а не его экземпляру.
[ВладОшин] (2013-10-25 13:28:00) [3]
> в TItem нет такого свойства.
+1
Item должен быть TData
зато можно
var
Item: TData;
begin
Item := TItem.Create;
Item.ID
end;
DVM (2013-10-25 13:22:00) [4]
> coder123 (25.10.13 12:43)
TItem это метакласс. Его экземпляр это - класс TData, но класс TData и экземпляр класса TData это разные вещи.
RWolf (2013-10-25 13:06:00) [5]Никак, в TItem нет такого свойства.