Татьяна |
Отправлено: 24.08.2004, 11:45 |
|
Не зарегистрирован
|
Есть класс, не являющийся наследником TComponent.
CODE |
class TMyClass{
puplic:
int t;
MyClass();
};
|
И есть Edit1->Text с именем объекта TMyClass. Как обратиться к этому объекту?
|
|
olegenty |
Отправлено: 24.08.2004, 13:16 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
для ответа недостаточно данных.
|
|
Doga |
Отправлено: 24.08.2004, 13:19 |
|
Мастер участка
Группа: Участник
Сообщений: 575
|
Если вы хотите однозначно идентифецировать принадлежность своего объекта к какому либо классу, особенно если идентификация будет проводиться по имени класса (т.е. по строке), воспользуйтесь для создания своего объекта классом TObject.
QUOTE |
TObject is the ultimate ancestor of all VCL objects and components.
Unit
Systobj
Description
TObject encapsulates fundamental behavior common to VCL objects by introducing methods that
respond when object instances are created or destroyed.
return class-type and instance information on an object and runtime type information (RTTI) about its published properties.
support message handling.
Use TObject as an immediate base class when declaring simple objects that do not need to persist (are not saved and reloaded) and that do not need to be assigned to other objects.
Much of the capability of VCL objects is established by methods that TObject introduces. Many of these methods are used internally by the development environment and are not intended for users to call directly. Others are overridden in descendant objects that have more complex behavior.
Note: While TObject has no pure virtual methods, objects of this type are not normally instantiated.
|
Например так:
CODE |
class TMyClass : public TObject
{
private:
//...
protected:
//...
public:
int t;
MyClass();
};
TMyClass *MyClass = new MyClass();
//Функции, которые помогут решить Вашу проблему
//ClassInfo
//ClassName
//ClassNameIs
//ClassParent
//ClassType
//Например так:
if (MyClass->ClassNameIs("TMyClass"))
{
//Теперь можете быть уверенны — MyClass является объектом класса TMyClass
...
}
|
Удачи!
|
|
olegenty |
Отправлено: 24.08.2004, 13:36 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
Ну, это полбеды. Ещё невредно знать, ГДЕ искать. Ну создаст она объект класса оператором new... Ну ляжет он в кучу. Интересно, как она его потом там по имени найдёт? А тут варианты. Либо хранить объекты в списке, и искать там, при условии, что объект одного класса встречается один раз, либо создавать самописную кучу...
Вот я и говорю — для ответа на вопрос недостаточно данных.
|
|
Doga |
Отправлено: 24.08.2004, 14:09 |
|
Мастер участка
Группа: Участник
Сообщений: 575
|
QUOTE |
Ещё невредно знать, ГДЕ искать.
|
Безусловно! Я полностью с Вами согласен, уважаемый olegenty !
Но пусть хотя бы эту "половину беды" решит сама Татьяна.
|
|