» Главная
eXcode.ru » Статьи » Delphi/Pascal » Большой FAQ по Delphi » Компоненты и Классы » Свойства и События
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 9





Получить информацию о перечисляемых типах




Автор: 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.
К началу статьи





Добавил: LedWormДата публикации: 2005-10-30 22:27:02

Рейтинг статьи:0.00 [Голосов 0]Кол-во просмотров: 2356
Оцените статью:

Комментарии читателей

Всего комментариев: 1

2018-01-13 13:25:16
Ncdqdkq
Платим за лайки! - Ежедневные выплаты!

Наш сервис предоставляет настоящие лайки на фото заказчиков, которые готовы платить за качество.

Именно для этого мы и набираем удалённых сотрудников, которые будут выполнять работу, то есть ставить лайки и зарабатывать за это деньги.

Чтобы стать нашим удалённым сотрудником и начать ставить лайки, зарабатывая при этом 45 рублей за 1 поставленный лайк,

Вам достаточно просто зарегистрироваться на нашем сервисе. > www.click-likes.tk <

Вывод заработанных средств ежедневно в течении нескольких минут.
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Какой язык интерфейса Вы используете в своих программах?
Русский
55% (111)
Английский
26% (53)
Немецкий
0% (0)
Французский
1% (3)
Несколько языков
10% (21)
Никакой :)
0% (0)
Использую только картинки
0% (1)
Что такое интерфейс?
6% (13)

Проголосовало: 202
Если у тебя на компьютере постоянно живут вирусы, то еще не известно, кому в первую очередь надо лечиться.
Рейтинг: 8/10 (6)
Посмотреть все анекдоты