![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Цитата:
Код:
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);
end;
TbgRow = array[0..12] of TbgCell;Возможно ли одновременно с объявлением массива записей присвоить начальные значения полей элемента? |
|
#2
|
||||
|
||||
|
Цитата:
Код:
...
var
i: integer;
begin
for i:= Low(TbgRow) to High(TbgRow) do
with TbgRow[i] do
begin
toEdit:= false;
ValueType:= vtFuel;
end;
end;
...З.Ы. А кстати, в вашем списке газолинчик как раз и отсутствует ![]() |
|
#3
|
|||
|
|||
|
Попробовал бы сам поискать, что-ли...
Код:
type person = record
name:string;
age: integer;
end;
const persons:array[1..2] of person = (
(name:'vanya';age:10),
(name:'petya';age:20)); |
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Помидоркин (05.04.2014)
| ||
|
#4
|
||||
|
||||
|
Я тоже так начал копать, но дойдя до
Код:
... TbgRow: array[0..12] of TbgCell = ((toEdit: false; ValueType: vtFuel),(),(),(),(),(),(),(),(),(),(),(),()); ... |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Помидоркин (05.04.2014)
| ||
|
#5
|
||||
|
||||
|
Цитата:
Цитата:
А не подойдет. Код:
const persons:array[1..2] of person = (... Код:
type .... TbgRow = array[0..12] of TbgCell = ((toEdit:False;ValueType:vtFuel), Видимо придется "по-старинке" Последний раз редактировалось M.A.D.M.A.N., 05.04.2014 в 12:19. |
|
#6
|
||||
|
||||
|
Цитата:
Код:
... var i: integer; bg1, bg2 : array[0..12] of TbgCell; begin for i:= Low(TbgRow) to High(TbgRow) do begin bg1[i]:= TbgRow[i]; bg2[i]:= TbgRow[i]; end; end; ... |
|
#7
|
||||
|
||||
|
Цитата:
![]() те же штаны только застежка сзади, Код:
type
TBaseGrid = class(TCustomControl)
private
...
FGrid: array of TbgRow;
...Код:
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].toEdit:= False; FGrid[i,0].ValueType:= vtBeer; FGrid[i,1].toEdit:= False; FGrid[i,1].ValueType:= vtPrice; FGrid[i,2].toEdit:= True; FGrid[i,2].ValueType:= vtLiters; //... и т.д. end; end; |
|
#8
|
||||
|
||||
|
а если так
Код:
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; |
| Этот пользователь сказал Спасибо cotseec за это полезное сообщение: | ||
Помидоркин (05.04.2014)
| ||
|
#9
|
||||
|
||||
|
Цитата:
Код:
FGrid[i,0].ValueType:= vtBeer; Понять, что хочет заказчик - бесценно, ведь он платит MasterCard ![]() |