![]() |
|
Модераторы: Poseidon |
![]()
|
|
| ZinZiLya |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 23.11.2007 Репутация: нет Всего: нет |
Помогите перевести следующий код в дельфи
//--------------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { // Событие: Таймер WORD b1,b2,i,m_command; TColor col; if( h_port!=NULL ) { b1 = 0; b2 = 0; m_command = Command; if( turbo_mode ) { if( Command == DEF_COMMAND ) { // формируем команду включения/выключения канала m_command = ((0x0f&cur_channel)<<4) | 0x0C | (0x01&(cb_Channels[cur_channel]->Checked)); ++cur_channel &= 0x0F; } } if( !ComPortEx(h_port, m_command, &b1, &b2) ) { // ошибка в работе с портом - наверное, нет устройства N6Click(this); MessageBox(this->Handle,"БСК не подключен !","Внимание !", MB_ICONASTERISK); return; } // если связь потеряна, надо сигнализировать if( b1&ERROR_MASK ) { b1 &= ERROR_MASK; // если установлен старший бит 7, очищаем остальные b2 = 0xFF; // второй байт имеет активный 0, поэтому устанавливаем все разряды. this->Caption = "Пульт"; this_board = 0; } // если УМ включен, то надо отображать аварии УМ и РФ // а если выключен, то очистить if( (b1&0x02) == 0 ) { b1 &= 0x3F; } // проверим ведущий пульт if( opts.auto_number && !(b1&0x20) && this_board != (((b1>>3)&0x03)+1) ) { char s[255]; this_board = ((b1>>3)&0x03)+1; sprintf(s,"Пульт №%d",this_board ); this->Caption = s; } // проверим, если пульт ведущий, и УМ включен, // мы должны переключиться в турборежим if( b1&0x03 ) // ПВ и УВ { if( !turbo_mode ) // если ускоренный режим не установлен - установим { turbo_mode = true; Timer1->Interval = TURBO_TIMER; } } else { if( turbo_mode ) // если установлен - снимем { turbo_mode = false; Timer1->Interval = USUAL_TIMER; } } b1 |= (b2&0xFF)<<8; // объединяем 2 байта в 16-р слово for( i=0; i<16; i++ ) { if( Bit_tab[i] || i==8 ) { // проходим по битам if( (1<<i)&b1 ) col = Bit_col_1[i]; // бит установлен else col = Bit_col_0[i]; // сброшен if( i==8 ) // а это - рамка "включения рупоров" { if( PanelRup->Color != col ) PanelRup->Color = col; } else if( Bit_tab[i]->Font->Color != col ) Bit_tab[i]->Font->Color = col; // цвет меняем только если } } } } |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |