RTTI и другие трюки с информацией о классах, модулях и т.п.
Как получить строковое значение перечисляемого типа?
Ниже представлен пример кода:
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: RTTI и другие трюки с информацией о классах, модулях и т.п.
How can I assign all property values (or if it's not possible only published property values, or some of them) of one class (TComponent) to another instance of the same class? What I want to do is:
Code: |
MyComponent1.{property1} := MyComponent2.{property1}; {...} MyComponent2.{propertyN} := MyComponent2.{propertyN}; |
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: RTTI и другие трюки с информацией о классах, модулях и т.п.
How can I save properties of a TList to a stream? I need the entire list to be saved as a whole and not as individual objects.
A TList doesn't have any intrinsic streaming capability built into it, but it is very easy to stream anything that you want with a little elbow grease. Think about it: a stream is data. Classes have properties, whose values are data. It isn't too hard to write property data to a stream. Here's a simple example to get you going. This is but just one of many possible approaches to saving object property data to a stream:
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: RTTI и другие трюки с информацией о классах, модулях и т.п.
Как прочитать весь список Published методов?
Ниже представлен пример кода:
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: RTTI и другие трюки с информацией о классах, модулях и т.п.
Code: |
Application.ExeName ParamStr(0) GetModuleFileName() |
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: RTTI и другие трюки с информацией о классах, модулях и т.п.
You may need to know at runtime what properties are available for a particular component at runtime. The list can be obtained by a call to GetPropList. The types, functions and procedures, including GetPropList, that allow access to this property information reside in the VCL source file TYPINFO.PAS.
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: RTTI и другие трюки с информацией о классах, модулях и т.п.
Копирование свойств одного компонента другому
Ниже представлен фрагмент кода:
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: RTTI и другие трюки с информацией о классах, модулях и т.п.
Как прочитать свойство напрямую из его ресурса?
Ниже представлен пример кода:
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: RTTI и другие трюки с информацией о классах, модулях и т.п.
Delphi — это мощная среда визуальной разработки программ сочетающая в себе весьма простой и эффективный язык программирования, удивительный по быстроте компилятор и подкупающую открытость (в состав Delphi входят исходные тексты стандартных модулей и практически всех компонент библиотеки VCL). Однако, как и на солнце, так и в Delphi существуют пятна (на солнце черные, а в Delphi — белые), пятна недокументированных (или почти не документированных) возможностей. Одно из таких пятен — это информация о типах времени исполнения и методы работы с ней.
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: RTTI и другие трюки с информацией о классах, модулях и т.п.
I need to get a list of strings (like a StringList) with the possible values for a TBrushStyle property (bsSolid, bsClear, bsHorizontal, for example). I want to build a ComboBox with this options. How can I set the property Items of my ComboBox directly with all the values from the enumerated type TBrushStyle? My ComboBox will be alike the Property Editor for this type.
You can use runtime type information (RTTI) to do that. Below is an example:
- Подробности
- Родительская категория: Язык программирования Дельфи
- Категория: RTTI и другие трюки с информацией о классах, модулях и т.п.
Страница 2 из 2