Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2009, 16:57   #1
SkAndrew
Форумчанин
 
Регистрация: 05.04.2008
Сообщений: 244
По умолчанию Как передать параметру записи, что в нем параметр это статический массив с данными?

Добрый день!

Объявлена запись:

Код:
type
  TRec = record
    parameter : array[0..2] of Integer = (100, 101, 112);
  end;
Как передать параметру записи, что это в массиве TRec опция parameter с известными в нем величинами? Сейчас такая структура записи не работает. как правильно записать parameter?

Спасибо.

Последний раз редактировалось SkAndrew; 25.06.2009 в 16:59.
SkAndrew вне форума Ответить с цитированием
Старый 25.06.2009, 17:38   #2
Showy
Форумчанин Подтвердите свой е-майл
 
Аватар для Showy
 
Регистрация: 08.08.2007
Сообщений: 183
По умолчанию

Вы хотите в запись запихать константу? Вот код, но он работает в Delphi 2009, в семёрке не пашет. В других не проверял.
Код:
type
  TRec = record
    i: integer;
    const
      parameter : array[0..2] of Integer = (100, 101, 112);
  end;
Until The End Of Time
Showy вне форума Ответить с цитированием
Старый 25.06.2009, 17:49   #3
SkAndrew
Форумчанин
 
Регистрация: 05.04.2008
Сообщений: 244
По умолчанию

Спасибо, но не понятно зачем писать i: integer? в записи можно вносить константы? можете обяснить или дать ссылку на конкретный материал, где это изложено, я не могу найти по гугле? Спасибо.

Последний раз редактировалось SkAndrew; 25.06.2009 в 18:00.
SkAndrew вне форума Ответить с цитированием
Старый 25.06.2009, 19:13   #4
Showy
Форумчанин Подтвердите свой е-майл
 
Аватар для Showy
 
Регистрация: 08.08.2007
Сообщений: 183
По умолчанию

да i не надо, забыл убрать.
Из справки делфи:

Цитата:
In addition to the traditional record types, the Delphi language allows more complex and “class-like” record types. In addition to fields, records may have properties and methods (including constructors), class properties, class methods, class fields, and nested types. For more information on these subjects, see the documentation on Classes and Objects. Here is a sample record type definition with some “class-like” functionality.

Код:
type
  TMyRecord = record
    type
      TInnerColorType = Integer;
    var
      Red: Integer;
    class var
      Blue: Integer;
    procedure printRed();
    constructor Create(val: Integer);
    property RedProperty: TInnerColorType read Red write Red;
    class property BlueProp: TInnerColorType read Blue write Blue;
end;

constructor TMyRecord.Create(val: Integer);
begin
  Red := val;
end;

procedure TMyRecord.printRed;
begin
  writeln('Red: ', Red);
end;
Until The End Of Time
Showy вне форума Ответить с цитированием
Старый 25.06.2009, 20:23   #5
SkAndrew
Форумчанин
 
Регистрация: 05.04.2008
Сообщений: 244
По умолчанию

сложновато для понимания, а попроще ничего нет и поконкретнее к вопросу. Спасибо.
SkAndrew вне форума Ответить с цитированием
Старый 25.06.2009, 21:52   #6
Impuls1989
Форумчанин
 
Аватар для Impuls1989
 
Регистрация: 16.08.2008
Сообщений: 276
По умолчанию

Я так понимаю - вам нужно инициализировать массив, причем сразу при создании переменной типа TRec? Если да, то, как сказал товарищ Showy, такое возможно только с константными массивами. Это тип данных, и массив в нем инициализируется 0 или слуячайными величинами (точно не знаю). Хотите свою инициализацию? Делайте класс CRec, или вызывайте функцию инициализации.
Искусственный интеллект - фигня по сравнению с естественной глупостью
Impuls1989 вне форума Ответить с цитированием
Старый 26.06.2009, 02:02   #7
SkAndrew
Форумчанин
 
Регистрация: 05.04.2008
Сообщений: 244
По умолчанию

Impuls1989 Спасибо за Вашу подсказку, но не понимаю ее. Вы можете привести пример, как выглядит такой код, хотя бы схематично, но так чтобы было понятно. Я хочу разобраться с этим вопросом. Спасибо.
SkAndrew вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как работать с *.gdb и что это за база Yuran БД в Delphi 5 27.05.2009 14:50
Как изменить статический приватный член класса?? 3dgraph Помощь студентам 2 07.05.2009 20:06
[Error] RLINK32: Out of memory! - что это и как лечить? RoamingFire Общие вопросы Delphi 2 11.02.2008 08:32
считает что ReOpArr это обычный массив и не может применить к нему процедуру SetLength. Dunpeal Общие вопросы Delphi 2 24.12.2007 08:07