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

Вниз

Сохранение свойства типа 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.028 c
4-1122642701
keeper1957
2005-07-29 17:11
2005.09.25
Файлы и процессы


14-1125298599
ПЛОВ
2005-08-29 10:56
2005.09.25
Подскажите, как проверить PHP-скрипты на локальном компьютере?


2-1124396570
vitovt
2005-08-19 00:22
2005.09.25
E-mail


4-1122615350
rentgen
2005-07-29 09:35
2005.09.25
TButton(ALL).Caption:= Батон ;


11-1107283638
Sphinxx
2005-02-01 21:47
2005.09.25
Как опросить компоненты на форме?