Поиск:

Ответ в темуСоздание новой темы Создание опроса
> OnMouseMove 
:(
    Опции темы
CrasyMen
Дата 22.4.2007, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 264
Регистрация: 19.12.2006

Репутация: нет
Всего: 3



Мне надо чтобы когда юзер проводит мышкой по Button некая информация выводилась в Memo. C одной кнопкой без проблем, но я хочу сделать один обработчик для 20 кнопок. OnHint не устраивает так как выводится должно несколько строк.


--------------------
Человек просто обязан ошибаться, раз другие учатся на его ошибках.
[color=skyblue]Хочу сменить ник и сменю как только дадут такую возможность.[/color]
PM MAIL ICQ   Вверх
mr.Anderson
Дата 22.4.2007, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



Тогда напиши один отдельный обработчик с тем же прототипом, что и OnMouseMove. Затем присвой нужным кнопкам этот обработчик в OnShow. Если непонятно, вот пример:
Код

//список аргументов уточни, я не помню точно
//плюс не забудь определить этот обработчик в хедере формы
void __fastcall TForm1::MyOnMouseMove( TObject *Sender, TShiftState Shift, int X, int Y )
{
 //что-то делаем при движении мыши над кнопкой...
}
//-------------------------------------------------------------------------------

void __fastcall TForm1::FormShow( TObject *Sender )
{
 for( int i=0; i<Form1->ControlCount; i++ )
 {
  TButton *BCur = dynamic_cast< TButton* >( Form1->Controls[ i ] );
  if( ! BCur ) continue;

  BCur->OnMouseMove = MyOnMouseMove;
 }
}


Это сообщение отредактировал(а) mr.Anderson - 22.4.2007, 15:22


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
CrasyMen
Дата 22.4.2007, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 264
Регистрация: 19.12.2006

Репутация: нет
Всего: 3



Цитата(mr.Anderson @  22.4.2007,  15:21 Найти цитируемый пост)
TButton *BCur = dynamic_cast< TButton* >( Form1->Controls[ i ] );

Я новичок, потому не понимаю этой строки.

Добавлено через 6 минут и 17 секунд
У меня случай немного посложней: есть PageControl, в нем 10 вкладок, на каждой вкладке 12 TButton'ов. Для всех кнопок на всех вкладках хочу сделать один обработчик


--------------------
Человек просто обязан ошибаться, раз другие учатся на его ошибках.
[color=skyblue]Хочу сменить ник и сменю как только дадут такую возможность.[/color]
PM MAIL ICQ   Вверх
Klin
Дата 22.4.2007, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



Цитата(CrasyMen @  22.4.2007,  16:42 Найти цитируемый пост)
Я новичок, потому не понимаю этой строки.

Выбирает поочередно кнопки.


Цитата(CrasyMen @  22.4.2007,  16:42 Найти цитируемый пост)
У меня случай немного посложней: есть PageControl, в нем 10 вкладок, на каждой вкладке 12 TButton'ов. Для всех кнопок на всех вкладках хочу сделать один обработчик 

ИМХО  - код действует на все кнопки, будь они на форме или под формой smile


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
fish9370
Дата 22.4.2007, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



еще можно снабдить каждую кнопку тегами (есть такое свойство tag), если нужно не все кнопки привязать к этому обработчику, а например, одну группу к одному, вторую ко второму, третью к третьему..

Это сообщение отредактировал(а) fish9370 - 22.4.2007, 18:09


--------------------
undefined
PM MAIL WWW ICQ   Вверх
mr.Anderson
Дата 22.4.2007, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



fish9370, правильно, единственная сложность - запомнить, какой тег какую группу обозначает.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
SerK
Дата 22.4.2007, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 31.3.2007

Репутация: нет
Всего: нет



Уважаемый CrasyMen !
Все очень просто. Нужно выделить все кнопки, выбрать событие OnMouseMove, 
которое теперь будет одинаковым для всех кнопок, и пишите свой код. Удачи! 



--------------------
Пусть будет миру хорошо!
PM MAIL   Вверх
mr.Anderson
Дата 22.4.2007, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


iOS Lead Developer
****


Профиль
Группа: Участник Клуба
Сообщений: 3374
Регистрация: 20.12.2004
Где: далеко

Репутация: 3
Всего: 128



SerK, этот метод не подойдет, если кнопки создаются динамически.


--------------------
user posted image

user posted image
PM MAIL ICQ Skype   Вверх
CrasyMen
Дата 22.4.2007, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 264
Регистрация: 19.12.2006

Репутация: нет
Всего: 3



При наведении на каждую кнопку в мемо должен выводится разный текст. Можно было бы юзать свойство Hint, тоесть выводить в мемо содержание свойства хинт. Но тут тупик: с помощью Hint можно выводить макс. 2 строчки в мемо (короткая и долгая подсказки). А мне надо 5 или 6 строчек в мемо.


--------------------
Человек просто обязан ошибаться, раз другие учатся на его ошибках.
[color=skyblue]Хочу сменить ник и сменю как только дадут такую возможность.[/color]
PM MAIL ICQ   Вверх
fish9370
Дата 22.4.2007, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 663
Регистрация: 15.4.2007
Где: Москва

Репутация: 1
Всего: 1



Цитата(mr.Anderson @ 22.4.2007,  19:25)
fish9370, правильно, единственная сложность - запомнить, какой тег какую группу обозначает.

хм.. я сейчас погряз в проге порядка 400 строк, в ней куча структур, несколько классов, и дофига констант.. кругом работа с динамикой и указателями, взаимодействие по сетке.. пару тегов запомнить это не сложно..
 
мне показалось это интересной доработкой к твоей функции..

Это сообщение отредактировал(а) fish9370 - 22.4.2007, 22:24


--------------------
undefined
PM MAIL WWW ICQ   Вверх
Klin
Дата 22.4.2007, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



Цитата(fish9370 @  22.4.2007,  23:22 Найти цитируемый пост)
мне показалось это интересной доработкой к твоей функции..

это безполезность если используются все кнопки
Цитата(CrasyMen @  22.4.2007,  23:14 Найти цитируемый пост)
помощью Hint можно выводить макс. 2 строчки в мемо (короткая и долгая подсказки). А мне надо 5 или 6 строчек в мемо. 


Создавай переменные.


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
CrasyMen
Дата 22.4.2007, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 264
Регистрация: 19.12.2006

Репутация: нет
Всего: 3



Глобальные? будет свыше 500 переменных. но в принципе можно.
А если не глобальные то где их объявлять?


--------------------
Человек просто обязан ошибаться, раз другие учатся на его ошибках.
[color=skyblue]Хочу сменить ник и сменю как только дадут такую возможность.[/color]
PM MAIL ICQ   Вверх
SerK
Дата 22.4.2007, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 31.3.2007

Репутация: нет
Всего: нет



Цитата

При наведении на каждую кнопку в мемо должен выводится разный текст. Можно было бы юзать свойство Hint, тоесть выводить в мемо содержание свойства хинт. Но тут тупик: с помощью Hint можно выводить макс. 2 строчки в мемо (короткая и долгая подсказки). А мне надо 5 или 6 строчек в мемо.

У меня сейчас нет BorLanda, но думаю можно поступить так:
сослаться на какое-то свойство кнопок,  Caption например:
if(Button1->Caption=="1")
{
 Memo1->Text="Привет";
}
и т.д.


--------------------
Пусть будет миру хорошо!
PM MAIL   Вверх
Klin
Дата 22.4.2007, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



Цитата(SerK @  23.4.2007,  00:01 Найти цитируемый пост)
if(Button1->Caption=="1")
{
 Memo1->Text="Привет";
}

Супер, по заголовку будем 100 кнопок определять smile
Цитата(CrasyMen @  23.4.2007,  00:01 Найти цитируемый пост)
Глобальные? будет свыше 500 переменных. но в принципе можно.

Че-то многовато у тебя кнопок, объявить можно под инклудами, либо в h-файле, или  в public`е или  в privat`е


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
CrasyMen
Дата 22.4.2007, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 264
Регистрация: 19.12.2006

Репутация: нет
Всего: 3



Цитата(Klin @  22.4.2007,  23:06 Найти цитируемый пост)
Че-то многовато у тебя кнопок

Есть вкладки "Процессоры",  "Видеокарты" и т.д., На каждой вкладке кнопки с отдельной деталькой (напр. AMD Athlon 64 3800+). Клик по кнопке добавляет детальку в список а наведение на кнопку - выводит инфу в мемо. Переменные, которые упоминались, это тактовая частота, год выпуска и т.д. 


Это сообщение отредактировал(а) CrasyMen - 22.4.2007, 23:16


--------------------
Человек просто обязан ошибаться, раз другие учатся на его ошибках.
[color=skyblue]Хочу сменить ник и сменю как только дадут такую возможность.[/color]
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0760 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.