![]() |
|
|
![]()
|
|
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Привет!
Решил сделать интерактивную подсказку для объектов формы! Смысл такой: навели мышкой на объект - появилась подсказка на StatusBar'е. Убрали мышку - подсказка тоже... убралась! Только как быть с картинкой или таблицей? Ведь нет у них таких событий как убирание мышки с объекта... |
|||
|
||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 57 Всего: 146 |
Можно также юзать компонент TApplicationEvents. |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Не пойму как сделать.... вежь нет же у формы событий TForm1::AppShowHint и TForm1::AppHint
Можно немного подробнее? Тупо скопировать текст - ошибки! |
|||
|
||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 57 Всего: 146 |
||||
|
||||
| Bima |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 15.8.2006 Репутация: 2 Всего: 2 |
делаешь так:
У всех элементов прописываешь hintи ставишь показ хинтов в true -------------------- Чтобы дойти до цели, надо идти. Клавиатура и мышь - это главные инструменты прогресса. |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Bima, сделал как ты сказал - с одной подсказкой работает. Как только добавил еще три картинки - ошибки при наведении на них...
Жму на Ок:
Присоединённый файл ( Кол-во скачиваний: 13 )
error.JPG 29,17 Kb |
|||
|
||||
| Bima |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 15.8.2006 Репутация: 2 Всего: 2 |
Интересно, зачем было приводить основной код???
если помещаете код, то нужен код программы!!! конкретно описываем, что на форме есть, выкладываем сюда код программы, вот тогда реально сможем помочь. Это сообщение отредактировал(а) Bima - 28.9.2006, 07:33 -------------------- Чтобы дойти до цели, надо идти. Клавиатура и мышь - это главные инструменты прогресса. |
|||
|
||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Это и есть код формы. |
|||
|
||||
| Bima |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 15.8.2006 Репутация: 2 Всего: 2 |
Код привели, а компоненты, мне самому выдумывать, какие на форме стоят???
Ладно, судя по коду, компонент там один, хотя не факт, что их много. Значит так, делаем, все по порядку: 1. Создаем новый проект 2. Кидаем на форму, таблицу, StatusBar, ApplicationEvents, несколько Image, можно для кучи еще несколько Label. 3. Выставляем у элементов StringGrid, Image, Label в дизайнере свойство ShowHint равное true 4. У этих же элементов в дизайнере в свойствах Hint пишем нужную подсказку 5. Кликаем мышкой 2 раза на StatusBar (на форме) и в открывшемся окне жмем кнопку Add New (Ins). То есть разделяем StatusBar на несколько частей (я сделал 3 части) 6. Выбираем в окне Editing StatusBar1->Panels 1 строку (0-TStatusPanel) и в дизайнере меняем witch с 50 на 250 (можно и больше, что бы подсказка уместилась) 7. В Events (в дизайнере) у ApplicationEvents выбираем OnHint и создаем событие: void __fastcall TForm1::ApplicationEvents1Hint(TObject *Sender) туда вводим код:
Вот и все. Полученный код:
У меня все работает, никаких ошибок не выдает. -------------------- Чтобы дойти до цели, надо идти. Клавиатура и мышь - это главные инструменты прогресса. |
||||
|
|||||
| docwar |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 24.9.2006 Репутация: нет Всего: нет |
Bima, спасибо! Супер!
Чтобы сделать показ подсказки только на StatusBar'е сделал так: 1) ShowHint->true; 2) Hint="|Текст подсказки"; 3) void __fastcall TForm1::ApplicationEvents1ShowHint(AnsiString &HintStr, bool &CanShow, THintInfo &HintInfo) { StatusBar1->Panels->Items[0]->Text=Application->Hint; } Но можно-ли ускорить процесс показа подсказки? А то задержка примерно в секунду идет... нехорошо. Это сообщение отредактировал(а) docwar - 29.9.2006, 21:20 |
|||
|
||||
| Bima |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 518 Регистрация: 15.8.2006 Репутация: 2 Всего: 2 |
Странно... в StatusBar1 подсказка идет мгновенно!!! а вот подсказка, которая всплывает, имеет задержку, которая выставляет сама винда. Изменить этот параметр можно если поправить реестр (если честно, сам не делал, но когда-то встречал такую информацию)
-------------------- Чтобы дойти до цели, надо идти. Клавиатура и мышь - это главные инструменты прогресса. |
|||
|
||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 57 Всего: 146 |
Application->HintPause=0;
|
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |