Тема: Не останавливается служба |
|
[ Из форума Вопросы программирования в C++Builder ]
|
| Автор: grebenyk - Дата: 07.12.2011, 12:09 - Ответов по теме: 0 |
Пытаюсь остановить из окна службы сервис
DWORD WINAPI ThreadEvent( LPVOID data ); void __fastcall TService_mrm::ServiceExecute(TService *Sender) { int i=0; CreateThread(NULL, 0, ThreadEvent,ServiceThread , 0, 0);//запускаем поток while(!Terminated) { MessageBeep(1000); Sleep(1000); i++;
}
} DWORD WINAPI ThreadEvent( LPVOID data ) { TServiceThread* ServiceThread=(TServiceThread*) data ; while(true) { ServiceThread->ProcessRequests(false); } return 0; }
не выходит. Как заставить службу остановиться как только нажата кнопка остановки службы, если ServiceThread->ProcessRequests(false) нельзя засунуть в ServiceExecute?
|
|
| ::
Читать далее/обсудить на форуме ... |
Тема: Привязка обработчика события TStringGrid |
|
[ Из форума Вопросы программирования в C++Builder ]
|
| Автор: VilgelmKaizer - Дата: 13.07.2010, 18:53 - Ответов по теме: 1 |
добрый день уважаемые знатоки.
Вопрос у меня такой(по C++ Builder 6): Есть такой класс гридов TStringGrid и у него есть событие OnDrawCell - возникает при перерисовке ячеек(типа, это общеизвестно). Когда создаешь объект такого класса динамически - то возникает вопрос как привязать самодельный обработчик события к объекту.
создать нужно динамически в момент выполнения несколько штук, т.е. на этапе компиляции не известно кол-во обьектов.\ Поэтому сделать их элементами класса формы не получиться и использовать способ типа
| CODE | | StringGrid1->OnDblClick = MyFunc(); |
тоже не получиться т.к. MyFunc() не член класса формы.
Решение я нашел и оно работает - через TMethod т.е. есть функция обработчик
| CODE | | void __fastcall LexDraw(void* This, TObject* Sender, int ACol, int ARow, TRect& Rect, TGridDrawState State) | - самописный обработчик
далее создаем объект грид
| CODE | TStringGrid* GG = new TStringGrid(...)
//--- далее привязываем TMethod Method_OnDrawCell; //-- создаем объект тметод
Method_OnDrawCell.Data = GG; // привязываем к нему наш GG
Method_OnDrawCell.Code= LexDraw; // привязываем к нему функцию обработчик
GG->OnDrawCell = *(TDrawCellEvent*)&Method_OnDrawCell;
|
в последней строчке видно что объект тметод преобразуется в некоторый тип TDrawCellEvent.
Собственно вопросы: 1.как ЭТО(TDrawCellEvent) называется чтобы можно было про него почитать в хелпе. 2.какой тип аналогичный TDrawCellEvent нужно использовать чтобы можно было привязать самодельный обработчик событию OnDblClick того же грида.
Прошу прощения если написано коряво.
|
|
| ::
Читать далее/обсудить на форуме ... |
Тема: Макрос define - почему он не популярен? |
|
[ Из форума Программирование на С++ в Linux ]
|
| Автор: ertyuo - Дата: 11.01.2010, 20:10 - Ответов по теме: 0 |
| Возник вопрос в связи с прочтением очерка о define и include. В обычных программах под Windows макросы вещь вообще неиспользуемая, а вот в программирование под Linux еще используется, но очень редко. Вот и возник вопрос, почему макрос так непопулярен? Ведь программы с define более читабельные, да и кода нужно написать меньше, чем функцию. |
|
| ::
Читать далее/обсудить на форуме ... |
Тема: прикинуться Excel'ем |
|
[ Из форума Технологии COM/DCOM, ActiveX ]
|
| Автор: true25 - Дата: 11.01.2010, 14:41 - Ответов по теме: 0 |
Вообщем мне нужно написать программу на c++ builder, которая будет принимать из другой программы данные через dde. чтобы эт осуществить необходимо, чтобы программа на с++ builder прикидовалась Excel'ем. вроде написал, но там возникают ошибки, которые не могу решить(( помогите плиз(( очень надо
|
|
| ::
Читать далее/обсудить на форуме ... |
|
Из темы: AdvStringGrid разные свойства у столбцов. |
| Ответил: Make - Дата:
21.09.2010, 16:24 |
| CODE |
Table->Options >> goEditing; if (ACol == 1){ Table->Options << goEditing;} if (ACol == 2){ Table->Options << goEditing;} if (ACol == 4){ Table->Options << goEditing;} |
сейчас делаю так все работает доступны для редактирования 2 3 и 4 столбцы соответственно. Может кто подскажет как упростить код, ведь столбцов строк может быть много.
| CODE | Table->Options >> goEditing; if (ACol == 1||2||4){ Table->Options << goEditing;}
| Данная конструкция не работает, хотя х3 почему
да, код обрабатываю по TableSelectCell хотя и по онклик пробывал. |
|
| ::
Перейти к теме ... |
Из темы: Привязка обработчика события TStringGrid |
| Ответил: VilgelmKaizer - Дата:
27.07.2010, 20:49 |
|
| ::
Перейти к теме ... |
Из темы: Читать строку как HEX |
| Ответил: jenych - Дата:
08.02.2010, 16:36 |
|
| ::
Перейти к теме ... |
Из темы: проблема с dll, скомпилированной в Microsoft VS |
| Ответил: VilgelmKaizer - Дата:
10.01.2010, 16:48 |
| Net Framework установлен? |
|
| ::
Перейти к теме ... |
Из темы: C++ http протоколы. |
| Ответил: Sergey - Дата:
05.01.2010, 19:42 |
TIdHTTP - по ощущениям меньше глючит чем 2й.
TNMHTTP |
|
| ::
Перейти к теме ... |
|