1. Пользуйтесь тегами кода. - [code] ... [/code] 2. Точно указывайте язык, название и версию компилятора (интерпретатора). 3. Название темы должно быть информативным. В описании темы указываем язык!!!
Хочу сделать следуюшее...чтобы по определенным клавишам двигалася напиример Button1, а по другим Button2...написал примерно так
void __fastcall TForm1::ApplicationEvents1Message(tagMSG &Msg, bool &Handled) { // Memo1->Lines->Add(Msg.wParam); const nStep = 1; switch(Msg.wParam) { case 40: Button1->Top += nStep; break; case 38: Button1->Top -= nStep; break; case 37: Button1->Left -= nStep; break; case 39: Button1->Left += nStep; break;
case 83: Button2->Top += nStep; break; case 87: Button2->Top -= nStep; break; case 65: Button2->Left -= nStep; break; case 68: Button2->Left += nStep; break;
}
Но теперь пока одна кнопка движеться вторая не будет...как реализовать независимое движение?.. может как то через много поточность?..можно для каждой кнопки писать свой поток и в нём ждать нажатия определённой кнопки и его уже орабатывать...но как ето сделать?..
const int num_threads = 2; TMyThread *thr[num_threads];
void __fastcall TMyThread::Execute() { const int nStep = 2;
do {
int dx = 0, dy = 0; for(int dir = dirLt; dir <= dirDn; dir++) { // если текущее направление присутствует во множестве if(FState.Contains(dir)) { // то высчитываем, куда двигаться... switch(dir) { case dirLt: dx = -nStep; break; case dirRg: dx = +nStep; break; case dirUp: dy = -nStep; break; case dirDn: dy = +nStep; break; }