![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте!
Помогите пожалуйста, никак не могу понять, как мне инициализировать константу типа запись, у которой одно из полей - динамический массив: Код:
type
TMyRecord = record
Name: String;
Value: array of TMyValue;
end;
const
defMyRecord: TMyRecord =
(name: 'Название';
Value: // вот, что писать здесь, никак не пойму
); |
|
#2
|
||||
|
||||
|
Код:
type
MyType=record
C: Integer;
Values: array of Byte;
end;
const
a: array [0..2] of byte = (1, 23, 0);
R: MyType = (C: 3; Values: @a);
implementation
procedure TForm1.Button1Click(Sender: TObject);
var
i: Byte;
begin
for i := 0 to R.C - 1 do
ShowMessage(IntToStr(R.Values[i]));
end; |
|
#3
|
|||
|
|||
|
Проблема в том, что у меня элемент массива не Byte, а структура,
и получается, что вот такой код выдает ошибку при компиляции: Код:
type
MyValueType=record
x,y: integer;
end;
const
defMyValue1: MyValueType = (x: 2; y: 3);
defMyValue2: MyValueType = (x: 4; y: 5);
type
MyType=record
C: Integer;
Values: array of MyValueType;
end;
const
a: array [0..1] of MyValueType = (defMyValue1, defMyValue2);
// компилятор ругается на предыдущую строчку,
// точнее, на круглые скобки
R: MyType = (C: 3; Values: @a); |
|
#4
|
||||
|
||||
|
Код:
type
MyValueType=record
x,y: integer;
end;
MyType=record
C: Integer;
Values: array of MyValueType;
end;
const
a: array [0..1] of MyValueType = ((x: 2; y: 3), (x: 4; y: 5));
R: MyType = (C: 2; Values: @a); |
|
#5
|
|||
|
|||
|
спасибо, так работает, но я предполагаю использовать константы defMyValue1, defMyValue2... не только в константе MyType, поэтому хотелось бы определить их лишь однажды, а при определении MyType использовать имена defMyValue1, defMyValue2...Это как-нибудь возможно?
|
|
#6
|
||||
|
||||
|
Код:
type
MyValueType=record
x,y: integer;
end;
const
defMyValue1: MyValueType = (x: 2; y: 3);
defMyValue2: MyValueType = (x: 4; y: 5);
type
MyType=record
C: Integer;
Values: array of MyValueType;
end;
const
a: array [0..1] of ^MyValueType = (@defMyValue1, @defMyValue2);
R: MyType = (C: 3; Values: @a); |
|
#7
|
|||
|
|||
|
а так в R.Values[] адреса записываются
(R.Values[0].x = 4525424 R.Values[0].y = 4525432 R.Values[1].x = 3 R.Values[1].y = 4525440 |