Показать сообщение отдельно
  #8  
Старый 05.04.2014, 13:38
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

а если так
Код:
type
 
  TValueType = (vtBeer,vtLiters,vtMoney);
 
  TbgCell = record
   Rect: TRect;
   toEdit: Boolean;
   Case ValueType: TValueType of
    vtBeer: (Beer: String[16]);
    vtLiters: (Liters: Integer);
    vtMoney:(Money: Currency);
  public
    procedure Init(ValType: TValueType);
  end;
 
  TbgRow = array[0..12] of TbgCell;
...
procedure TbgCell.Init(ValType: TValueType);
begin
   FillChar(Self, SizeOf(TbgCell), 0); // инициализируем все нулем
   ValueType := ValType;
end;
...
constructor TBaseGrid.Create2(AOwner:TComponent; BData: TBData);
begin
 inherited Create(AOwner);
....
 SetLength(FGrid, BData[0].Count);
 for i:= 0 to Length(FGrid)-1 do
 begin
  FGrid[i,0].Init (vtBeer); // вызываем как метод класса
 
  FGrid[i,1].Init(vtPrice);
 
  FGrid[i,2].Init(vtLiters);
  //... и т.д.
 end;
end;
__________________
Понять, что хочет заказчик - бесценно, ведь он платит MasterCard
Ответить с цитированием