![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Объявления типа. (типа объявление :))) [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');
Это как?