Текущий архив: 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.44 MB
Время: 0.038 c