Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Перевести значения перечисляемого типа в строки

Delphi , Синтаксис , Преобразования

Перевести значения перечисляемого типа в строки

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

{ 
  You obtain a string equivalent of an enumerated type value using the 
  GetEnumName function: 
}

  function GetEnumName(TypeInfo: PTypeInfo; Value: Integer): string;

 { 
  The first argument is a pointer to the enumerated type’s RTTI information, 
  and the second argument is the ordinal position of the value within the enumerated type. 
  GetEnumName returns a string representing the corresponding enumerated type value. 
  You get the ordinal position of an enumerated type value based on a string using the 
  GetEnumValue function: 
}

  function GetEnumValue(TypeInfo: PTypeInfo; const Name: string): Integer;

 { 
  Like GetEnumName, the first argument is a pointer to the RTTI information. 
  The second argument is a string that represents the enumerated type value. 
  This function returns the ordinal position of the corresponding value. 
}

 // Example: 

// Declare a custom type: 
type
   TOurType = (otFirst, otSecond, otThird, otForth, otFifth, otLast);

 var
   Form1: TForm1;

 implementation

 {$R *.DFM}

 uses
   TypInfo;

 procedure TForm1.Button1Click(Sender: TObject);
 var
   OT: TOurType;
   FT: TFontStyle;
 begin
   // Enumerate TFontStyle values 
  // Zeigt alle TFontStyle Werte an 

  Memo1.Lines.Add('The TFontStyle values:');
   for FT := Low(TFontStyle) to High(TFontStyle) do
     Memo1.Lines.Add(GetEnumName(TypeInfo(TFontStyle), Ord(FT)));

   // Enumerate our custom TOurType values 
  // Werte vom Benutzerdefiniertern Typ TOurType auflisten. 

  Memo1.Lines.Add('The TOurType values:');
   for OT := Low(TOurType) to High(TOurType) do
     Memo1.Lines.Add(GetEnumName(TypeInfo(TOurType), Ord(OT)));
 end;

Код-снippet на языке Delphi демонстрирует, как конвертировать значения типов с перечислением в строки с помощью функции GetEnumName.

Вот разбивка кода:

  1. Функция GetEnumName принимает два параметра:
  2. TypeInfo: указатель на информацию о типе RTTI (Run-Time Type Information) для типа с перечислением.
  3. Value: целое число, представляющее порядковый номер значения в типе с перечислением.

  4. Функция GetEnumValue используется для получения порядкового номера значения типа с перечислением на основе строки.

  5. В примере объявлены два пользовательских типа: TOurType и TFontStyle. Эти типы включают несколько значений.

  6. В процедуре Button1Click, код использует цикл для перебора всех значений в обоих типах с помощью функций Low и High, которые возвращают наименьший и наибольший порядковые номера для типа.

  7. В каждой итерации цикла вызывается функция GetEnumName с информацией о типе RTTI и текущим порядковым номером как аргументами. Возвращенная строка представляет соответствующее значение типа с перечислением.

  8. Полученные строки затем добавляются в компонент мему (Memo1) для отображения.

Вывод будет следующим:

"Значения TFontStyle: fsBold fsItalic fsUnderline fsStrikeOut"

"Значения TOurType: otFirst otSecond otThird otForth otFifth otLast" Этот пример демонстрирует, как использовать GetEnumName и GetEnumValue, чтобы конвертировать значения типов с перечислением в строки в Delphi.

В статье описывается использование функций GetEnumName и GetEnumValue для преобразования значений перечисляемых типов в строки и наоборот, а также примеры их использования в коде программы.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Преобразования ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 02:01:06/0.0032131671905518/0