Получить информацию о перечисляемых типахDelphi , Компоненты и Классы , Свойства и СобытияПолучить информацию о перечисляемых типахАвтор: Xavier Pacheco unit MainFrm; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TMainForm = class(TForm) lbSamps: TListBox; memInfo: TMemo; procedure FormCreate(Sender: TObject); procedure lbSampsClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var MainForm: TMainForm; implementation uses TypInfo, Buttons; {$R *.DFM} procedure TMainForm.FormCreate(Sender: TObject); begin // Add some example enumerated types with lbSamps.Items do begin AddObject('TButtonState', TypeInfo(TButtonState)); AddObject('TFormStyle', TypeInfo(TFormStyle)); AddObject('Boolean', TypeInfo(Boolean)); end; end; procedure TMainForm.lbSampsClick(Sender: TObject); var OrdTypeInfo: PTypeInfo; OrdTypeData: PTypeData; TypeNameStr: string; TypeKindStr: string; MinVal, MaxVal: Integer; i: integer; begin memInfo.Lines.Clear; with lbSamps do begin // Get the TTypeInfo pointer OrdTypeInfo := PTypeInfo(Items.Objects[ItemIndex]); // Get the TTypeData pointer OrdTypeData := GetTypeData(OrdTypeInfo); // Get the type name string TypeNameStr := OrdTypeInfo.Name; // Get the type kind string TypeKindStr := GetEnumName(TypeInfo(TTypeKind), Integer(OrdTypeInfo^.Kind)); // Get the minimum and maximum values for the type MinVal := OrdTypeData^.MinValue; MaxVal := OrdTypeData^.MaxValue; // Add the information to the memo with memInfo.Lines do begin Add('Type Name: ' + TypeNameStr); Add('Type Kind: ' + TypeKindStr); Add('Min Val: ' + IntToStr(MinVal)); Add('Max Val: ' + IntToStr(MaxVal)); // Show the values and names of the enumerated types if OrdTypeInfo^.Kind = tkEnumeration then for i := MinVal to MaxVal do Add(Format(' Value: %d Name: %s', [i, GetEnumName(OrdTypeInfo, i)])); end; end; end; end. Программное приложение на языке Delphi, которое отображает информацию о типах с перечислением в списке и поле заметок. Вот разбивка кода: Декларация модуля
Модуль Секция интерфейса
Секция интерфейса определяет используемые интерфейсы, включая Декларация типов
Декларация типов определяет два класса: Декларация переменных
Декларация переменных определяет экземпляр основной формы, который является экземпляром класса Секция реализации Секция реализации содержит код для двух процедур:
Вот некоторые важные точки:
В целом, этот код демонстрирует, как работать с встроенной информацией о типах Delphi и отображать информацию о типах с перечислением в пользовательском интерфейсе. В статье описывается программный код на языке Delphi, который демонстрирует получение информации о перечисляемых типах, таких как TButtonState и TFormStyle. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Свойства и События ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |