Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.17;
Скачать: CL | DM;

Вниз

TComponent & "read","write"   Найти похожие ветки 

 
Stas_on ©   (2004-09-21 19:58) [0]

Господа, как в классе(наследник TComponent"a) правильно
  задать массив типа Record"a, и как нужно задавать ему
  "read" & "write" чтобы потом можно было его сохранить в файл.
Пр.:
 Tiles = (sea,earth,stone,...);
 fTitle = record
   a: array[1..9] of tiles;
   b: string;
   c: Integer;
 end;
 Some : class(TComponent)
 protected
   N : String;
 publishing    
 property массив[1..9] of fTitle read ?? write ??
                               //что нужно   писать?
 
 end;


 
Defunct ©   (2004-09-21 20:00) [1]

Propery Title[Index: Integer]:TTitleRec Read GetTitleRec Write SetTitleRec


 
Stas_on ©   (2004-09-21 20:02) [2]

Что(и где )должно быть в Get... и Set...?


 
Defunct ©   (2004-09-21 20:07) [3]

Stas_on ©   (21.09.04 20:02) [2]

TSomeClass : class(TComponent)
Private
 ...

 Procedure SetTitleRec(Index: Integer; ATitle: TTitleRec);
 Function  GetTitleRec(Index: Integer): TTitleRec;
 ...
Published
 [1]

End;


 
Stas_on ©   (2004-09-21 20:08) [4]

Спаибо!


 
VMcL ©   (2004-09-21 20:08) [5]

>>Stas_on ©  (21.09.04 19:58)

property Title[Index: Integer]: TTitleRec
Ctrl+Shift+C


 
Stas_on ©   (2004-09-23 19:12) [6]

1)При попытке компиляции
Пишет -->
[Error] SaveClass.pas(35): Published property "Title" cannot
                              be of type ARRAY
(35):
   property Tiles[Index: Integer]: fTiles read GetTypes write SetTypes;

 fTiles = record
   x,y : Integer;
   s : String;
   Tile : array [1..9] of Tiles;
 End;

Может что ни так делаю.
Есть ли у кого законченный пример?
Если нужна какая-то информация - пишите.

2)Кто нибудь знает, что нужно писать в Get...(...) & Set...(...)?
Прошу показательный пример(если не трудно)!


 
jack128 ©   (2004-09-23 19:42) [7]

Stas_on ©   (23.09.04 19:12) [6]
Error] SaveClass.pas(35): Published property "Title" cannot
                             be of type ARRAY

перениси его в секцю public

> 2)Кто нибудь знает, что нужно писать в Get...(...) &
>Set...(...)?
> Прошу показательный пример(если не трудно)!
смотри в исходниках VCL


 
Defunct ©   (2004-09-23 19:44) [8]

А обязательно это свойство делать Published?
Сделайте

 Public
   [1]


 
GrayFace ©   (2004-09-23 19:58) [9]

Ну не по-человечески это - называть тип с буквы f.
Делай так:
TTitle = record .....

fTitles:array[0..9] of TTitle;
GetTitle(i:integer):TTitle;
SetTitle(i:integer; v:TTitle);

public // не published

property Titles[i: Integer]: fTitles read GetTitle write SetTitle;

implementation

GetTitle(i:integer):TTitle;
Result:=fTitles[i];

SetTitle
fTitles[i]:=v;


 
Stas_on ©   (2004-09-24 12:38) [10]

Public не сохраняется в файл!


 
jack128 ©   (2004-09-24 12:49) [11]

Stas_on ©   (24.09.04 12:38) [10]
естественно. Перекрой DefineProperties (если мы говорим о стандартных методах сохронения компонентов)


 
Stas_on ©   (2004-09-24 13:51) [12]

> jack128 ©   (24.09.04 12:49) [11]
 Я чего-то о таких не слышал!
 Где их искать-то?


 
Basken   (2004-09-24 13:58) [13]


> Stas_on ©   (24.09.04 13:51) [12]


Посмотри в TPersistent...


 
Stas_on ©   (2004-09-24 14:03) [14]

Как их перекрыть?


 
Basken   (2004-09-24 15:57) [15]

Есть статейка на rsdn http://rsdn.ru/article/delphi/serialization.xml

И в исходниках можна посмотреть как перекрывается DefineProperties...


 
jack128 ©   (2004-09-24 21:43) [16]

Stas_on ©   (24.09.04 13:51) [12]
TStream.Read/WriteComponent/ TFiler/TReader/TWriter + F1 хотя ИМХО в1 тут мало помогает. Более менее начинаешь представлять как это все работает только после анализа исходников. (естественно знание rtti необходимо ;-) )


 
jack128 ©   (2004-09-24 21:48) [17]

хотя ИМХО F1 тут


 
GrayFace ©   (2004-09-28 14:20) [18]

А че такое rtti?



Страницы: 1 вся ветка

Текущий архив: 2004.10.17;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.039 c
3-1095652006
korvin
2004-09-20 07:46
2004.10.17
Компонет печати или запрос?


1-1096347348
vasili
2004-09-28 08:55
2004.10.17
Нид Хелп с компонентом ТEdit


3-1095286910
Vasis
2004-09-16 02:21
2004.10.17
Вложенный запрос


1-1096955475
DelphiN!
2004-10-05 09:51
2004.10.17
А в %C0


14-1096139584
kaZaNoVa
2004-09-25 23:13
2004.10.17
Windows 2003 & Modem