![]() |
|
|
Регистрация | << Правила форума >> | 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; Грамотно поставленный вопрос содержит не менее 50% ответа. Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть. |
#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); Грамотно поставленный вопрос содержит не менее 50% ответа. Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть. |
#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); Грамотно поставленный вопрос содержит не менее 50% ответа. Грамотно поставленная речь вызывает уважение, а у некоторых даже зависть. |
#7
|
|||
|
|||
![]() а так в R.Values[] адреса записываются
![]() R.Values[0].x = 4525424 R.Values[0].y = 4525432 R.Values[1].x = 3 R.Values[1].y = 4525440 |