Получить список типов свойств и их описание
Получить список типов свойств и их описание
unit OrdForm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, TypInfo, ToolWin, ComCtrls, ExtCtrls, DdeMan, Menus, DBCtrls,
DBTables, Db, checklst, Grids, Mask, Buttons, DBGrids, DBCGrids, FileCtrl,
Outline, Tabnotbk, Tabs;
type
TForm1 = class (TForm)
Listbox1: TListBox;
ListBox2: TListBox;
Splitter1: TSplitter;
procedure Listbox1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
procedure AddType (pti: PTypeInfo);
procedure AddToList (const S: String );
end ;
procedure ShowOrdinal (pti: PTypeInfo; sList: TStrings);
procedure ListEnum (pti: PTypeInfo; sList: TStrings);
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Listbox1Click(Sender: TObject);
var
pti: PTypeInfo;
begin
pti := PTypeInfo (ListBox1.Items.Objects [
Listbox1.ItemIndex]);
ListBox2.Items.Clear;
ShowOrdinal (pti, ListBox2.Items);
// special case: TColor
if ListBox1.Items [ListBox1.ItemIndex] = 'TColor' then
begin
ListBox2.Items.Add ('');
ListBox2.Items.Add ('Values...');
GetColorValues (AddToList);
end ;
// special case: TCursor
if ListBox1.Items [ListBox1.ItemIndex] = 'TCursor' then
begin
ListBox2.Items.Add ('');
ListBox2.Items.Add ('Values...');
GetCursorValues (AddToList);
end ;
end ;
procedure TForm1.AddToList (const S: String );
begin
ListBox2.Items.Add (S);
end ;
// show RTTI information for ordinal types
procedure ShowOrdinal (pti: PTypeInfo; sList: TStrings);
var
ptd: PTypeData;
begin
// protect against misuse
if not (pti^.Kind in [tkInteger, tkChar,
tkEnumeration, tkSet, tkWChar]) then
raise Exception.Create ('Invalid type information');
// get a pointer to the TTypeData structure
ptd := GetTypeData (pti);
// access the TTypeInfo structure
sList.Add ('Type Name: ' + pti^.Name);
sList.Add ('Type Kind: ' + GetEnumName (
TypeInfo (TTypeKind),
Integer (pti^.Kind)));
// access the TTypeData structure
sList.Add ('Implement: ' + GetEnumName (
TypeInfo (TOrdType),
Integer (ptd^.OrdType)));
// a set has no min and max
if pti^.Kind <> tkSet then
begin
sList.Add ('Min Value: ' + IntToStr (ptd^.MinValue));
sList.Add ('Max Value: ' + IntToStr (ptd^.MaxValue));
end ;
// add the enumeration base type
// and the list of the values
if pti^.Kind = tkEnumeration then
begin
sList.Add ('Base Type: ' + (ptd^.BaseType)^.Name);
sList.Add ('');
sList.Add ('Values...');
ListEnum (pti, sList);
end ;
// show RRTI info about set base type
if pti^.Kind = tkSet then
begin
sList.Add ('');
sList.Add ('Set base type information...');
ShowOrdinal (ptd.CompType^, sList);
end ;
end ;
procedure ListEnum (pti: PTypeInfo; sList: TStrings);
var
I: Integer;
begin
with GetTypeData(pti)^ do
for I := MinValue to MaxValue do
sList.Add (' ' + IntToStr (I) + '. ' +
GetEnumName (pti, I));
end ;
procedure TForm1.AddType (pti: PTypeInfo);
begin
ListBox1.Items.AddObject(pti^.Name, TObject (pti))
end ;
procedure TForm1.FormCreate(Sender: TObject);
begin
AddType (TypeInfo (Boolean));
AddType (TypeInfo (Byte));
AddType (TypeInfo (Cardinal));
AddType (TypeInfo (Char));
AddType (TypeInfo (Integer));
AddType (TypeInfo (LongInt));
AddType (TypeInfo (ShortInt));
AddType (TypeInfo (SmallInt));
AddType (TypeInfo (TAlign));
AddType (TypeInfo (TAlignment));
AddType (TypeInfo (TBatchMode));
AddType (TypeInfo (TBevelShape));
AddType (TypeInfo (TBevelStyle));
AddType (TypeInfo (TBitBtnKind));
AddType (TypeInfo (TBitmapHandleType));
AddType (TypeInfo (TBlobStreamMode));
AddType (TypeInfo (TBookmarkFlag));
AddType (TypeInfo (TBorderIcon));
AddType (TypeInfo (TBorderIcons));
AddType (TypeInfo (TBorderStyle));
AddType (TypeInfo (TBrushStyle));
AddType (TypeInfo (TButtonLayout));
AddType (TypeInfo (TButtonSet));
AddType (TypeInfo (TButtonState));
AddType (TypeInfo (TCanvasState));
AddType (TypeInfo (TCanvasStates));
AddType (TypeInfo (TCheckBoxState));
AddType (TypeInfo (TCloseAction));
AddType (TypeInfo (TColor));
AddType (TypeInfo (TColorDialogOption));
AddType (TypeInfo (TColorDialogOptions));
AddType (TypeInfo (TColumnButtonStyle));
AddType (TypeInfo (TColumnValue));
AddType (TypeInfo (TColumnValues));
AddType (TypeInfo (TComboBoxStyle));
AddType (TypeInfo (TCommonAVI));
AddType (TypeInfo (TComponentState));
AddType (TypeInfo (TComponentStyle));
AddType (TypeInfo (TConfigMode));
AddType (TypeInfo (TConfigModes));
AddType (TypeInfo (TConsistentAttribute));
AddType (TypeInfo (TConsistentAttributes));
AddType (TypeInfo (TControlState));
AddType (TypeInfo (TControlStyle));
AddType (TypeInfo (TCursor));
AddType (TypeInfo (TDataAction));
AddType (TypeInfo (TDatabaseEvent));
AddType (TypeInfo (TDataEvent));
AddType (TypeInfo (TDataSetState));
AddType (TypeInfo (TDateTimeKind));
AddType (TypeInfo (TDBCtrlGridBorder));
AddType (TypeInfo (TDBCtrlGridKey));
AddType (TypeInfo (TDBCtrlGridOrientation));
AddType (TypeInfo (TDBGridColumnsState ));
AddType (TypeInfo (TDBGridOption ));
AddType (TypeInfo (TDBGridOptions ));
AddType (TypeInfo (TDisplayCode ));
AddType (TypeInfo (TDragMessage ));
AddType (TypeInfo (TDragMode));
AddType (TypeInfo (TDragState));
AddType (TypeInfo (TDrawingStyle ));
AddType (TypeInfo (TDropDownAlign ));
AddType (TypeInfo (TDuplicates ));
AddType (TypeInfo (TEditCharCase));
AddType (TypeInfo (TFieldChars ));
AddType (TypeInfo (TFieldKind ));
AddType (TypeInfo (TFieldType ));
AddType (TypeInfo (TFileAttr ));
AddType (TypeInfo (TFilerFlags ));
AddType (TypeInfo (TFileType ));
AddType (TypeInfo (TFillMode ));
AddType (TypeInfo (TFillStyle ));
AddType (TypeInfo (TFilterOption ));
AddType (TypeInfo (TFilterOptions ));
AddType (TypeInfo (TFindItemKind ));
AddType (TypeInfo (TFindOption ));
AddType (TypeInfo (TFindOptions ));
AddType (TypeInfo (TFontDialogDevice ));
AddType (TypeInfo (TFontDialogOption ));
AddType (TypeInfo (TFontDialogOptions ));
AddType (TypeInfo (TFontPitch));
AddType (TypeInfo (TFontStyle ));
AddType (TypeInfo (TFontStyles ));
AddType (TypeInfo (TFormBorderStyle ));
AddType (TypeInfo (TFormState ));
AddType (TypeInfo (TFormStyle ));
AddType (TypeInfo (TGetMode ));
AddType (TypeInfo (TGetResult ));
AddType (TypeInfo (TGridDrawState ));
AddType (TypeInfo (TGridOptions ));
AddType (TypeInfo (TGridScrollDirection ));
AddType (TypeInfo (THeaderSectionStyle ));
AddType (TypeInfo (THelpContext));
AddType (TypeInfo (THitTest ));
AddType (TypeInfo (THitTests ));
AddType (TypeInfo (THKInvalidKey ));
AddType (TypeInfo (THKInvalidKeys ));
AddType (TypeInfo (THKModifier ));
AddType (TypeInfo (THKModifiers ));
AddType (TypeInfo (TIconArrangement ));
AddType (TypeInfo (TImageType ));
AddType (TypeInfo (TImeMode ));
AddType (TypeInfo (TIndexOptions ));
AddType (TypeInfo (TIntfFlags ));
AddType (TypeInfo (TItemChange ));
AddType (TypeInfo (TItemState ));
AddType (TypeInfo (TItemStates ));
AddType (TypeInfo (TKeyIndex ));
AddType (TypeInfo (TListArrangement ));
AddType (TypeInfo (TListBoxStyle ));
AddType (TypeInfo (TLoadResource ));
AddType (TypeInfo (TLoadResources ));
AddType (TypeInfo (TLocateOption ));
AddType (TypeInfo (TLocateOptions ));
AddType (TypeInfo (TLockType ));
AddType (TypeInfo (TMaskCharType ));
AddType (TypeInfo (TMaskDirectives ));
AddType (TypeInfo (TMaskedState ));
AddType (TypeInfo (TMenuBreak ));
AddType (TypeInfo (TModalResult));
AddType (TypeInfo (TMouseButton ));
AddType (TypeInfo (TMsgDlgBtn ));
AddType (TypeInfo (TMsgDlgButtons ));
AddType (TypeInfo (TMsgDlgType ));
AddType (TypeInfo (TNavButtonStyle ));
AddType (TypeInfo (TNavGlyph ));
AddType (TypeInfo (TNavigateBtn ));
AddType (TypeInfo (TNodeAttachMode ));
AddType (TypeInfo (TNodeState ));
AddType (TypeInfo (TNumberingStyle ));
AddType (TypeInfo (TOpenOptions ));
AddType (TypeInfo (TOperation ));
AddType (TypeInfo (TOperation));
AddType (TypeInfo (TOutlineBitmap ));
AddType (TypeInfo (TOutlineBitmaps ));
AddType (TypeInfo (TOutlineNodeCompare ));
AddType (TypeInfo (TOutlineOption ));
AddType (TypeInfo (TOutlineOptions ));
AddType (TypeInfo (TOutlineStyle ));
AddType (TypeInfo (TOutlineType ));
AddType (TypeInfo (TOwnerDrawState ));
AddType (TypeInfo (TPanelBevel ));
AddType (TypeInfo (TParamBindMode ));
AddType (TypeInfo (TParamFlags ));
AddType (TypeInfo (TParamType ));
AddType (TypeInfo (TPenMode ));
AddType (TypeInfo (TPenStyle ));
AddType (TypeInfo (TPixelFormat ));
AddType (TypeInfo (TPopupAlignment ));
AddType (TypeInfo (TPosition ));
AddType (TypeInfo (TPrintDialogOption ));
AddType (TypeInfo (TPrintDialogOptions ));
AddType (TypeInfo (TPrintRange ));
AddType (TypeInfo (TPrintScale ));
AddType (TypeInfo (TProgressStage ));
AddType (TypeInfo (TRecNoStatus ));
AddType (TypeInfo (TResType ));
AddType (TypeInfo (TResType));
AddType (TypeInfo (TResyncMode ));
AddType (TypeInfo (TScalingFlags ));
AddType (TypeInfo (TScrollBarInc));
AddType (TypeInfo (TScrollBarKind));
AddType (TypeInfo (TScrollCode));
AddType (TypeInfo (TScrollStyle ));
AddType (TypeInfo (TScrollStyle));
AddType (TypeInfo (TSearchDirection ));
AddType (TypeInfo (TSearchType ));
AddType (TypeInfo (TSearchTypes ));
AddType (TypeInfo (TSectionTrackState ));
AddType (TypeInfo (TSelectDirOpt ));
AddType (TypeInfo (TSelectDirOpts ));
AddType (TypeInfo (TShapeType ));
AddType (TypeInfo (TShiftState));
AddType (TypeInfo (TShowAction ));
AddType (TypeInfo (TSortType ));
AddType (TypeInfo (TStaticBorderStyle ));
AddType (TypeInfo (TStatusPanelBevel ));
AddType (TypeInfo (TStatusPanelStyle ));
AddType (TypeInfo (TTableType ));
AddType (TypeInfo (TTabOrder));
AddType (TypeInfo (TTabPosition ));
AddType (TypeInfo (TTabStyle ));
AddType (TypeInfo (TTextCase ));
AddType (TypeInfo (TTextLayout));
AddType (TypeInfo (TThreadPriority));
AddType (TypeInfo (TTickMark));
AddType (TypeInfo (TTickStyle));
AddType (TypeInfo (TTileMode));
AddType (TypeInfo (TTimerMode));
AddType (TypeInfo (TToolButtonState));
AddType (TypeInfo (TToolButtonStyle));
AddType (TypeInfo (TTraceFlag));
AddType (TypeInfo (TTraceFlags));
AddType (TypeInfo (TTrackBarOrientation));
AddType (TypeInfo (TTransIsolation));
AddType (TypeInfo (TTypeKinds));
AddType (TypeInfo (TUpdateAction));
AddType (TypeInfo (TUpdateKind));
AddType (TypeInfo (TUpdateMode));
AddType (TypeInfo (TUpdateRecordTypes));
AddType (TypeInfo (TUpdateStatus));
AddType (TypeInfo (TValueType));
AddType (TypeInfo (TViewStyle));
AddType (TypeInfo (TWindowState));
AddType (TypeInfo (WChar));
AddType (TypeInfo (Word));
end ;
end .
Загрузить весь проект
Программа на языке Delphi, которая предоставляет список различных типов данных и их свойств. В проекте есть несколько компонентов:
TForm1: это основная форма приложения.
ListBox1 и ListBox2: эти два списка для отображения типов и их свойств.
Код включает в себя несколько процедур и функций для заполнения списков информацией о типах. Вот краткое описание, что делают каждая процедура:
ShowOrdinal
: эта процедура отображает ординальную информацию для заданного типа, включая его имя, вид, минимальное значение, максимальное значение и значения перечисления.
ListEnum
: эта процедура выводит значения перечисления для заданного типа.
AddType
: эта процедура добавляет тип в список.
FormCreate
: это конструктор формы, который инициализирует списки и заполняет их некоторыми стандартными типами.
Программа включает в себя многие другие процедуры и функции, которые аналогичны по своей природе. Они используются для заполнения списков различными типами данных и их свойствами.
Чтобы запустить этот проект, вам нужно скачать и установить Delphi на ваш компьютер. Затем создайте новый проект и добавьте код из этого файла. Затем соберите и запустите проект, чтобы увидеть список типов данных и их свойств, отображающихся в списках.
В статье описывается типы свойств и их описание в Delphi.
Комментарии и вопросы Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Свойства и События ::