
Вешать на форму Button с надписью "Чтобы запустить программу - нажми!" и в обработчик нажатия кнопки вставлять мою функцию будет совсем глупо!!! А у формы я не нашел обработчика, который запускается после рисования формы.
Помогите плз!
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
Работаю с Turbo C++ 2006 Explorer http://www.turboexplorer.com/cpp , он мало отличается от Borland Developer Studio 2006.Airhand писал(а):Ты, наверное, работаешь в билдере, т.к. в Турбо С++ нет форм..
Сложновато! Не совсем понимаю как можно с WaitForSingleObject отловить окончание прорисовки формы. Да - должно быть более простое решение ...Airhand писал(а):Как вариант, сделать событие, которое запускать после прорисовки формы и ждать его наступления WaitForSingleObject.
Но должно быть более простое решение, просто я его не помню
SetEvent и WairForSingleObject придумали для того, чтобы обеспечивать синхронизацию нескольких потоков. Здесь несколько потоков ни к чему вовсе, так как сначала мы их вводим, а потом избавляемся от параллельного исполнения кода двумя WaitForSingleObject (один в одном потоке, другой в другом). Зачем поток, если он не будет выполняться параллельно?" писал(а):А зачем бы тогда придумывали SetEvent и WairForSingleObject ?
Не имеет оно право на жизнь. Могу об этом спорить сколько угодно. Давай тогда все функции в нашей программы запускать в отдельных потоках, а чтобы добиться того, чтобы они всё таки выполнялись по очереди, будем использовать синхронизирующие объекты. Программа превратится в диковинного уродца, которого будут показывать начинающим программистам со словами "Смотрите, вот предел абсурда"." писал(а):но оно тоже имеет право на жизнь.
Код: Выделить всё
void MyFunc();
//-----
class TMyFrm : public TForm{
//
//
__fastcall TMyFrm(TComponent* Owner);
void __fastcall CallMyFunc(TObject *Sender);
};
//------
__fastcall TMyFrm::TMyFrm(TComponent* Owner) : TForm(Owner){
this->OnPaint = &CallMyFunc;
}
//------
void __fastcall TMyFrm::CallMyFunc(TObject *Sender){
MyFunc();
this->OnPaint = NULL; // Либо другая функция
}
Код: Выделить всё
this->OnPaint = NULL;