Главная страница
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.042 c
14-1125268629
Мир
2005-08-29 02:37
2005.09.25
Что означает "absolute", и почему он не работает?


6-1117791451
Трофимов
2005-06-03 13:37
2005.09.25
Apache


4-1123053208
Wind_007
2005-08-03 11:13
2005.09.25
Wab камеры


14-1125759112
NewWonder
2005-09-03 18:51
2005.09.25
Работа в институте?


2-1124199768
Гость22
2005-08-16 17:42
2005.09.25
Как не дать закрыть форму?