Главная страница
    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.043 c
14-1096471177
Nous Mellon
2004-09-29 19:19
2004.10.17
Споим преподавателей наших мозгопожирателей! Со вкусом... :)


6-1091760804
DelphiN!
2004-08-06 06:53
2004.10.17
Как перехватить закачку IE?


14-1096296459
Stef
2004-09-27 18:47
2004.10.17
Многопоточность


1-1096720987
M-Alex
2004-10-02 16:43
2004.10.17
Edit.


1-1096470003
Flying-home
2004-09-29 19:00
2004.10.17
New() & Dispose()





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский