IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Builder 6.0
сообщение
Сообщение #1


Fanat
***

Группа: Пользователи
Сообщений: 261
Пол: Мужской
Реальное имя: Сергей

Репутация: -  5  +


Хочу сделать следуюшее...чтобы по определенным клавишам двигалася напиример 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;

}



Но теперь пока одна кнопка движеться вторая не будет...как реализовать независимое движение?..
может как то через много поточность?..можно для каждой кнопки писать свой поток и в нём ждать нажатия определённой кнопки и его уже орабатывать...но как ето сделать?..

Сообщение отредактировано: Fanat -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Цитата
Хотелось бы всё таки узнать как сделать через потоки...
Ты действительно этого хочешь? Тогда посмотри присоединенный файл, там описание того, как это можно сделать. Один из способов, скажем так...

Прикрепленный файл  fanat.txt ( 2.08 килобайт ) Кол-во скачиваний: 581


Цитата
А зачем Handled ( - признак обработки события) выставлять в true?..
Затем, что если ты этого не сделаешь, и у тебя на форме будет, например, Edit, и фокус будет на нем, то этот Edit будет заполняться символами, которые ты вводишь (нажимая клавишу). А если ничего из текстовых контролов не будет - то программа будет пищать. А установкой Handled = true ты говоришь обработчику ApplicationMessage, что это событие уже обработано, дальше по цепочке его передавать не надо...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Fanat
***

Группа: Пользователи
Сообщений: 261
Пол: Мужской
Реальное имя: Сергей

Репутация: -  5  +


Цитата(volvo @ 1.02.2008 1:29) *

Ты действительно этого хочешь? Тогда посмотри присоединенный файл, там описание того, как это можно сделать. Один из способов, скажем так...

Прикрепленный файл  fanat.txt ( 2.08 килобайт ) Кол-во скачиваний: 581


Затем, что если ты этого не сделаешь, и у тебя на форме будет, например, Edit, и фокус будет на нем, то этот Edit будет заполняться символами, которые ты вводишь (нажимая клавишу). А если ничего из текстовых контролов не будет - то программа будет пищать. А установкой Handled = true ты говоришь обработчику ApplicationMessage, что это событие уже обработано, дальше по цепочке его передавать не надо...


Да...интересно..я вроде во всём разобрался...

И я так понимаю Sleep(100); чтобы мы успели нажать какую либо кнопку...но при етом слишком скорость маленькая...а при Sleep(10) у меня в конце концов всё таки зависало =(...
А вообще при отключения Sleep кнопки почему то движуться с разными скоростями и зависает быстро..=(
Не мог бы ты привести пример ещё какого либо способа...

(не обязательно на счёт данной задачи...я могу разобраться и сам попрбовать сделать..=)...в общем как тебе удобней...)

Сообщение отредактировано: Fanat -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Fanat   Builder 6.0   31.01.2008 21:41
volvo   Угу... Чтобы наконец убедиться, что весь GUI долже…   31.01.2008 23:32
Fanat   Да...так работает..=) Хотелось бы всё таки узнать…   1.02.2008 3:16
volvo   Ты действительно этого хочешь? Тогда посмотри прис…   1.02.2008 5:29
Fanat   Ты действительно этого хочешь? Тогда посмотри при…   1.02.2008 15:53
volvo   Поменял в Execute() условие выхода на ... } whi…   1.02.2008 16:24
Fanat   Поменял в Execute() условие выхода на ... } wh…   1.02.2008 16:34
volvo   Должны... Но их должна завершить система, а это тр…   1.02.2008 16:47
Fanat   Должны... Но их должна завершить система, а это т…   1.02.2008 17:10
volvo   Ну, например, вот так: const int dirLt = 0; const …   1.02.2008 18:45
Fanat   А что значит строчка __property TDir GetState = …   2.02.2008 7:01
volvo   Угу... Именно свойства. А что непонятно? Описываеш…   2.02.2008 8:22
Fanat   Угу... Именно свойства. А что непонятно? Описывае…   2.02.2008 17:27
volvo   Можно. Только тогда придется делать: Handled =…   2.02.2008 17:41
Fanat   Можно. Только тогда придется делать: Handled …   2.02.2008 18:01


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 10.09.2025 22:52
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name