Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> определение массива, Как мне расширить размерность массива не 
V
    Опции темы
conio
Дата 2.10.2007, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 22.8.2007

Репутация: нет
Всего: нет



есть тип TFType, в нем определены 3 поля: ft1, ft2, ft3

при создании массива
xFType : array [TFType] of Integer =
(    1, //ft1
     2, //ft2
     3, //ft3
     4, //ft1 );

при компиляции получаю Number of elements differs from declaration (количество элементов не соответствует указанному в объявлении).

Как мне расширить размерность массива не изменяя тип TFType.

Спасибо!





PM MAIL   Вверх
Alexeis
Дата 2.10.2007, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



Код

xFType : array [1..4] of Integer



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
conio
Дата 2.10.2007, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 22.8.2007

Репутация: нет
Всего: нет



спасибо ...
и если не сложно немного усложнить этот примерчик то как будет ваглядить такое?

есть 2 -а типа TFType, в нем определены 3 поля: ft1, ft2, ft3
и перечисление 
Код

TTypeNew = (ptU,ptS,ptN);


при создании массива
Код

xFType : array [TFType] of TTypeNew =
(    ptU, //ft1
     ptS, //ft2
     ptN, //ft3
     ptN, //ft1
 );


при компиляции получаю Number of elements differs from declaration (количество элементов не соответствует указанному в объявлении).

Как мне расширить размерность массива не изменяя тип TFType.

Еще раз спасибо!


Это сообщение отредактировал(а) conio - 2.10.2007, 12:21
PM MAIL   Вверх
Alexeis
Дата 2.10.2007, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



conio, не вижу усложнений.
Код

xFType : array [1..4] of TTypeNew = (    ptU, //ft1
     ptS, //ft2
     ptN, //ft3
     ptN, //ft1
 );



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
conio
Дата 2.10.2007, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 22.8.2007

Репутация: нет
Всего: нет



Ну впринципе да только тогда начинаются траблы дальше .... при присвоении элементов массива

Код

var FType:     TFType,
      FColumn: TColumnGrid; // от нестандартного грида


Код

FType := xFType[FColumn.Field.DataType];

Incompatible types: 'Integer' and 'TFType'

---
Есть ли возможность задать размерность массива типом TFType добавив к его размеру(TFType) два его поля?

Это сообщение отредактировал(а) conio - 2.10.2007, 13:07
PM MAIL   Вверх
Alexeis
Дата 2.10.2007, 13:21 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 34
Всего: 459



Предлагаю так сделать
Код

type
 TTypeNew = (ptU,ptS,ptN);
 TFType   = (ft1=1, ft2=2, ft3=3);

var
  xFType : array [1..4] of TTypeNew = (
     ptU, //ft1
     ptS, //ft2
     ptN, //ft3
     ptN //ft1
     );

procedure TForm1.FormCreate(Sender: TObject);
var
  c : TFType;
begin
  C := ft1;
  xFType[byte(C)] := ptN;
end;


Добавлено через 2 минуты и 18 секунд
  В С++ с этим проще, там перечисляемый тип эквивалентен набору констант, потому приведение типов и не нужно вовсе.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
conio
Дата 2.10.2007, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 22.8.2007

Репутация: нет
Всего: нет



Alexeis  Спасибо
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0765 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.