Поиск компонента в своем классе

kaskas
Дата: 10.06.2015 09:14:29
Здравствуйте
Столкнулся со следующей проблемой:
решил вывести одну из операций приложения в отдельный поток. Описал класс. В классе нужно сделать таймер, который регулярно будет запускать функцию из этого потока. Вот собсно и вопрос: как обратиться к таймеру, который создается в моём классе. Будь таймер элементом формы - FindComponent() меня бы спас наверное.. А так..
о себе: RAD Studio, C++ Builder XE3, FireMonkey.
немного кода
//----main.h--------------------------------
class TPingThread : public TThread
{
	__published:
	private:
	protected:
	public:
		void __fastcall CreateControls();
		void __fastcall Execute();
		void __fastcall tmrTimer(TObject *Sender);
};
TPingThread *PingThread;

//----main.cpp----------------------------
void __fastcall TPingThread::CreateControls()
{
	TTimer *NewTimer = new TTimer(NULL);
	NewTimer->OnTimer = TPingThread::tmrTimer;
	NewTimer->Interval = 1000;
	NewTimer->Enabled = true;
	NewTimer->Name = "tmr";

}
//---------------------------------------------------------------------------
void __fastcall TPingThread::tmrTimer(TObject *Sender)
{
       ShowMessage("Ok");
}


Тут все работает. А вот как мне, например, выключить таймер вне функции tmrTimer CreateControls?
Заранее спасибо!
m_Sla
Дата: 10.06.2015 09:44:05
В потоке кроме вызова по времени функции еще что-то будет?
kaskas
Дата: 10.06.2015 09:55:10
m_Sla, угумс. Но я так понимаю, что там все будет по шаблону дальше. Главное с первой разобраться=)
m_Sla
Дата: 10.06.2015 10:15:06
Объявление Timer *NewTimer поставь в private или protected.
А для управления таймеров из вне добавь функции в public TPingThread::start_timer() и т.п.
kaskas
Дата: 10.06.2015 10:50:49
Спасибо! Почти получилось=)
Таймер tmr я выключить смог! А вот изменить свойство другого компонента, созданного там же - уже не получается, вылетает аксэсвиолэйшн..
kaskas
Дата: 10.06.2015 10:58:56
Прдон, разобрался. Дело было в том, что забыл объявление остальных компонент перенести в private.
Все работает, огромное спасибо!
MasterZiv
Дата: 10.06.2015 17:29:41
kaskas,

А ведь скажут, что чтобы всё работало, надо обязательно класть в секцию private...
kaskas
Дата: 15.06.2015 02:26:33
MasterZiv, сарказм или брюзжание?=)
можно подробнее, что не так и как надо?