Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.10.17;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.037 c
10-1047265554
Softik
2003-03-10 06:05
2004.10.17
Как выгрузить корректно из памяти ОЛЕ-объект? ведь присвоение


1-1096548492
bs
2004-09-30 16:48
2004.10.17
Сохранение данных из поля memo в текстовый файл


1-1096621361
-=Evgen=-
2004-10-01 13:02
2004.10.17
Как построить вертикальный график в Fast Report


14-1096220599
Фёдор Мегатронов
2004-09-26 21:43
2004.10.17
Есть ли декомпилятор прог написаных на делфи ?


14-1096447111
PVOzerski
2004-09-29 12:38
2004.10.17
А где бы найти ssh-клиента для Win32?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский