Difference between revisions of "Runtime Type Information (RTTI)"
From Lazarus wiki
Jump to navigationJump to searchm (Fixed syntax highlighting) |
|||
(3 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{Editing Runtime Type Information (RTTI)}} | {{Editing Runtime Type Information (RTTI)}} | ||
− | '''Runtime Type Information RTTI''' can be utilized to obtain | + | '''Runtime Type Information RTTI''' can be utilized to obtain meta information in a Pascal application. |
+ | |||
+ | |||
__TOC__ | __TOC__ | ||
+ | |||
==Converting a enumerated type to a string== | ==Converting a enumerated type to a string== | ||
One can use RTTI to obtain a string from a enumerated type. | One can use RTTI to obtain a string from a enumerated type. | ||
− | <syntaxhighlight> | + | <syntaxhighlight lang=pascal> |
uses TypInfo; | uses TypInfo; | ||
Line 18: | Line 21: | ||
s := GetEnumName(TypeInfo(TProgrammerType), integer(tpDelphi)); | s := GetEnumName(TypeInfo(TProgrammerType), integer(tpDelphi)); | ||
// Here s = 'tpDelphi' | // Here s = 'tpDelphi' | ||
− | + | WriteLn(s) | |
end. | end. | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | But you can also do it without RTTI: | ||
+ | |||
+ | <syntaxhighlight lang=pascal> | ||
+ | program noRTTI; | ||
+ | type | ||
+ | TProgrammerType = (tpDelphi, tpVisualC, tpVB, tpJava) ; | ||
+ | var | ||
+ | s: string; | ||
+ | begin | ||
+ | writestr(s, tpDelphi); | ||
+ | WriteLn(s); | ||
+ | end.</syntaxhighlight> | ||
==See Also== | ==See Also== |
Latest revision as of 14:44, 25 February 2020
│
English (en) │
français (fr) │
русский (ru) │
Runtime Type Information RTTI can be utilized to obtain meta information in a Pascal application.
Converting a enumerated type to a string
One can use RTTI to obtain a string from a enumerated type.
uses TypInfo;
type
TProgrammerType = (tpDelphi, tpVisualC, tpVB, tpJava) ;
var
s: string;
begin
s := GetEnumName(TypeInfo(TProgrammerType), integer(tpDelphi));
// Here s = 'tpDelphi'
WriteLn(s)
end.
But you can also do it without RTTI:
program noRTTI;
type
TProgrammerType = (tpDelphi, tpVisualC, tpVB, tpJava) ;
var
s: string;
begin
writestr(s, tpDelphi);
WriteLn(s);
end.