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

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

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;

{$R *.DFM}

procedure TMainForm.FormCreate(Sender: TObject);
begin
  with lbSamps.Items do
  begin
    AddObject('Word', TypeInfo(Word));
    AddObject('Integer', TypeInfo(Integer));
    AddObject('Byte', TypeInfo(Byte));
  end;
end;

procedure TMainForm.lbSampsClick(Sender: TObject);
var
  OrdTypeInfo: PTypeInfo;
  OrdTypeData: PTypeData;

  TypeNameStr: string;
  TypeKindStr: string;
  MinVal, MaxVal: 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));
    end;
  end;
end;

end.

Программа на Delphi, которая предоставляет информацию о целых типах, таких как Word, Integer и Byte. Программа имеет два формата: MainFrm и соответствующий ему модуль.

В модуле MainFrm определено класс TMainForm, которое наследуется от TForm, стандартного класса Delphi для формы. Форма содержит два компонента: lbSamps (список) и memInfo (memo).

Два процедуры определены:

  1. FormCreate( Sender: TObject ): эта процедура вызывается при создании формы. Она пополняет список lbSamps тремя элементами: "Word", "Integer" и "Byte". Каждый элемент соответствует целому типу.
  2. lbSampsClick( Sender: TObject ): эта процедура вызывается, когда элемент в списке lbSamps кликнут. Она получает информацию о выбранном типе и отображает ее в memo memInfo.

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

Код использует эти функции следующим образом:

  1. В FormCreate создается три элемента в списке с помощью TypeInfo(Word), TypeInfo(Integer) и TypeInfo(Byte).
  2. В lbSampsClick получается информация о выбранном типе:
    • OrdTypeInfo := PTypeInfo(Items.Objects[ItemIndex]): получает указатель на информацию типа для выбранного элемента.
    • OrdTypeData := GetTypeData(OrdTypeInfo) : получает указатель на данные типа для выбранного элемента.
    • TypeNameStr := OrdTypeInfo.Name : получает имя выбранного типа.
    • TypeKindStr := GetEnumName(TypeInfo(TTypeKind), Integer(OrdTypeInfo^.Kind)) : получает тип выбранного типа (например, целое, вещественное).
    • MinVal := OrdTypeData^.MinValue; MaxVal := OrdTypeData^.MaxValue; : получает минимальное и максимальное значения для выбранного типа.

Программа использует встроенные типы Delphi, такие как Word, Integer и Byte. Она также использует модуль TypInfo для работы с типами на этапе выполнения.

Если вы хотите получить информацию о других целых типах в Delphi, вам нужно добавить больше элементов в список в FormCreate и обрабатывать их клики в lbSampsClick.

В статье описывается использование типов целых в программировании на языке Pascal, с помощью примера кода, демонстрирующего получение информации о типах Word, Integer и Byte.


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

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




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


:: Главная :: Свойства и События ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 14:18:38/0.005155086517334/1