Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Объявления типа. (типа объявление :))) [D6, WinXP]


Andy BitOff ©   (2004-08-09 12:58:00) 

Как правильно объявить примерно такой тип:


type
 TIndicationsS = ('aa','bbbb','e');

 TIndicationsN = ('01','15','32');

 TIndicationsSN = Record
   IndicationsString: TIndicationsS;
   IndicationsNumber: TIndicationsN;
 end;

 TIndications = TIndicationsSN;

 
Если что-то не понятно, а я думаю так и будет, потому что непонятно объяснил :) то предоставлю любую информацию по этому вопросу, просто не знаю что еще написать.


GuAV   (2004-08-09 13:20:00) [1]


> const
>  CIndicationsS:array[TIndicationsS]of String = ('aa', 'bbbb',
> 'e');

см TypInfo.GetEnumName


Думкин   (2004-08-09 13:19:00) [2]

type
 TIndicationsS = (aa,bbbb,e);
 TIndicationsN = (s01,s15,s32);

 TIndicationsSN = class
  private
   function GetIndicationsN(n: TIndicationsN): integer;
   function GetIndicationsS(n: TIndicationsS): string;
  public
   property IndicationsString[n : TIndicationsS] : string read GetIndicationsS;
   property IndicationsNumber[n : TIndicationsN] : integer read GetIndicationsN;
 end;

TIndications = TIndicationsSN;

  var
   TIndicationsS_Value : array[TIndicationsS] of string = ('aa','bbbb','e');
   TIndicationsN_Value : array[TIndicationsN] of integer = (01,15,32);

{ TIndicationsSN }

function TIndicationsSN.GetIndicationsN(n: TIndicationsN): integer;
begin
    Result := TIndicationsN_Value[n]
end;

function TIndicationsSN.GetIndicationsS(n: TIndicationsS): string;
begin
    Result := TIndicationsS_Value[n]
end;


Хотя весело. :)


Andy BitOff   (2004-08-09 13:13:00) [3]

const
 TIndicationsS = ['aa','bbbb','e'];

Но такое объявление, тоже не катит.


Goorus   (2004-08-09 13:12:00) [4]

TIndicationsS = ('aa','bbbb','e');

Это ты хочешь задать допустимые принимаемые значения?
Тогда правильно будет так

type
 TIndicationsS = (aa, bbbb, e);

const
 CIndicationsS:array[TIndicationsS]of String = ('aa', 'bbbb', 'e');

// использование

var is:TIndicationsS;
...
ShowMessage( CIndicationsS[is] );

Другого способа я не знаю.


Andy BitOff   (2004-08-09 13:07:00) [5]

Да, количество строк ограничено и не подлежит изменению - const


Smithson   (2004-08-09 13:03:00) [6]

На самом деле, если тебе нужны множества из произвольного количества строк - то никак.
А если набор строк ограничен, то создаешь соответсвующие им константы в множестве и пользуешься ими.


Smithson   (2004-08-09 13:00:00) [7]

Так и правильно.


Думкин   (2004-08-09 13:00:00) [8]


> TIndicationsS = ('aa','bbbb','e');

Это как?


Наверх

Титульная страница Поиск, карта сайта Написать письмо