|
|
Регистрация | << Правила форума >> | 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; Понять, что хочет заказчик - бесценно, ведь он платит MasterCard |
Этот пользователь сказал Спасибо cotseec за это полезное сообщение: | ||
Помидоркин (05.04.2014)
|
#9
|
||||
|
||||
Цитата:
Код:
FGrid[i,0].ValueType:= vtBeer; Понять, что хочет заказчик - бесценно, ведь он платит MasterCard |