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

Вниз

Сохранение свойства типа array - линкер не пущает   Найти похожие ветки 

 
AZ ©   (2004-11-08 03:59) [0]

Не подскажет ли уважаемое сообщество, почему линкер после установки зарегистрированного компонента на форму
воспринимает DFM-файл как 16-и разрядный?

Делаю сохранение свойства в DFM как обычно:

procedure TShiftSett.DefineProperties(Filer: TFiler);
begin
 inherited;
 Filer.DefineProperty("ShChiefs",LoadShChiefs,SaveShChiefs,True);
end;

procedure TShiftSett.LoadShChiefs(Reader: TReader);
var
 i: integer;
begin
 for i:=0 to 3 do begin
  FShChiefs[i].ChiefName:=Reader.ReadString;
  FShChiefs[i].ShiftNo:=Reader.ReadInteger;
  FShChiefs[i].ShTime:=Reader.ReadFloat;
 end;
end;

procedure TShiftSett.SaveShChiefs(Writer: TWriter);
var
 i: integer;
begin
 for i:=0 to 3 do begin
  Writer.WriteString(FShChiefs[i].ChiefName);
  Writer.WriteInteger(FShChiefs[i].ShiftNo);
  Writer.WriteFloat(FShChiefs[i].ShTime);
 end;
end;

А линкер обижается и говорит, что 16-и битные DFM не поддерживает...
То что дело именно в сохранении свойства, показывет закомментирование вышеуказанных процедур.


 
Юрий Зотов ©   (2004-11-09 16:21) [1]

Попробуйте так:

procedure TShiftSett.LoadShChiefs(Reader: TReader);
var
 i: integer;
begin
 Reader.ReadListBegin;
 for i := 0 to 3 do
 begin
   FShChiefs[i].ChiefName := Reader.ReadString;
   FShChiefs[i].ShiftNo := Reader.ReadInteger;
   FShChiefs[i].ShTime := Reader.ReadFloat;
 end;
 Reader.ReadListEnd;
end;

procedure TShiftSett.SaveShChiefs(Writer: TWriter);
var
 i: integer;
begin
 Writer.WriteListBegin;
 for i := 0 to 3 do
 begin
   Writer.WriteString(FShChiefs[i].ChiefName);
   Writer.WriteInteger(FShChiefs[i].ShiftNo);
   Writer.WriteFloat(FShChiefs[i].ShTime);
 end;
 Writer.WriteListEnd;
end;

Если снова будет ругаться, попробуйте использовать Read/WriteListBegin и Read/WriteListEnd внутри циклов.


 
AZ ©   (2004-11-10 04:32) [2]

>Юрий Зотов ©   (09.11.04 16:21) [1]

Жаль, что Вы не мой лечащий врач...
Ваш дагноз, как всегда, точен.
Большое спасибо.



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

Форум: "Компоненты";
Текущий архив: 2005.09.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.04 c
14-1125300493
red_imp
2005-08-29 11:28
2005.09.25
Народ помогите где найти книгу


6-1117379207
Галинка
2005-05-29 19:06
2005.09.25
Можно ли писать интернет-примочки на Дельфи?


8-1115883781
Fl@sh
2005-05-12 11:43
2005.09.25
TBitMap


4-1122551436
Icar
2005-07-28 15:50
2005.09.25
LPT-порт


14-1125968559
vidiv
2005-09-06 05:02
2005.09.25
Как принтер так печатает?!





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