
05.04.2014, 13:38
|
 |
Активный
|
|
Регистрация: 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
|