AutoHint

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

AutoHint

Сообщение А.Н. » 04.07.2010 13:41:07

Есть statusbar в главном окне.
В дочернем окне, также, есть statusbar.
У обоих установлен AutoHint.
Но Hint'ы показываются в statusbar'е главного окна.
Что с этим делать? Как сделать так, чтобы они показывались там, где надо?
А.Н.
постоялец
 
Сообщения: 230
Зарегистрирован: 13.03.2010 12:23:58

Re: AutoHint

Сообщение hinst » 04.07.2010 14:18:37

а где надо? o_0
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 781
Зарегистрирован: 12.04.2008 18:32:38

Re: AutoHint

Сообщение yurgel » 04.07.2010 14:41:14

можно попробовать отловить Application.OnHint и вывести руками. туда, "куда надо".
yurgel
новенький
 
Сообщения: 37
Зарегистрирован: 29.06.2010 16:06:58

Re: AutoHint

Сообщение А.Н. » 04.07.2010 14:50:28

а где надо? o_0

Очевидно, в statusbar'ах "потомков", которые впереди. А вы что подумали? :lol:

можно попробовать отловить Application.OnHint и вывести руками. туда, "куда надо".

Так придётся перехватывать в главном окне..?
А.Н.
постоялец
 
Сообщения: 230
Зарегистрирован: 13.03.2010 12:23:58

Re: AutoHint

Сообщение yurgel » 04.07.2010 14:54:05

надо проверять. по идее, TApplication'у без разницы, где его будут перехватывать - один раз в главном или во всех дочерних.

Добавлено спустя 1 минуту 39 секунд:
но вообще, я бы лучше пересмотрел дизайн проги. можно, например, сделать SDI-интерфейс как у самого Лазаруса и влепить статус-бар под нижний край верхней формы. один для всех. и пусть там всё отображается.
yurgel
новенький
 
Сообщения: 37
Зарегистрирован: 29.06.2010 16:06:58

Re: AutoHint

Сообщение А.Н. » 04.07.2010 15:13:33

надо проверять. по идее, TApplication'у без разницы, где его будут перехватывать - один раз в главном или во всех дочерних.

Я, пока писал, подумал и сделал проще. Просто выключаю AutoHint у statusbar'а главного окна.
И всё работает.
Всё-таки, раздражает немного. Лишняя работа. Плюс, если окна не модальные, тоже не знаю что будет...

но вообще, я бы лучше пересмотрел дизайн проги. можно, например, сделать SDI-интерфейс как у самого Лазаруса и влепить статус-бар под нижний край верхней формы. один для всех. и пусть там всё отображается.

А как влепишь три сущности в одно окно? Т.е., например, есть у меня клиент, ТС и договор.
В главном окне договор и "обвес": компании, напоминалка кому позвонить, меню, панелька с кнопками.
Договор на трёх вкладках. Было бы очень неудобно впихивать в договор клиента и ТС (у них ведь тоже свой поиск, добавление, изменение и т.д.). Вынести их в отдельные окна, по-моему, - самое то.
К тому же, главный модуль уже получился на 3000 с копейками строчек. И до сих пор не дописан.
Куда уж больше?
Плюс, статусбары у меня вообще на всех окнах, кроме About и вспомогательных диалогов.
А.Н.
постоялец
 
Сообщения: 230
Зарегистрирован: 13.03.2010 12:23:58

Re: AutoHint

Сообщение yurgel » 05.07.2010 17:26:25

Вынести их в отдельные окна, по-моему, - самое то.


SDI - это не значит "одно окно". их может быть тонна, для них может быть своя менюшка с переключением и пр. они могут создаваться и освобождаться по необходимости или создаваться все сразу, а потом только показываться. и т.д. но над всеми ними висит основная форма, которая представляет собой тулбар с меню. туда же можно добавить строку с подсказкой. туда же можно добавить панель с кнопками для быстрого переключения между окнами и т.д. по-моему, это логичнее, чем выводить подсказку в каждом окне :)

но на вкус и цвет, как говориться...
yurgel
новенький
 
Сообщения: 37
Зарегистрирован: 29.06.2010 16:06:58

Re: AutoHint

Сообщение А.Н. » 05.07.2010 20:23:59

Наоборот, это классический MDI. :)

Добавлено спустя 50 секунд:
Получается, как я понял, одно окно, в котором окна "документов".
А.Н.
постоялец
 
Сообщения: 230
Зарегистрирован: 13.03.2010 12:23:58

Re: AutoHint

Сообщение yurgel » 05.07.2010 20:26:02

MDI - это когда всё это живёт в одном общем окне (MDIParent). а тут нет общего окна.
yurgel
новенький
 
Сообщения: 37
Зарегистрирован: 29.06.2010 16:06:58

Re: AutoHint

Сообщение madlih » 01.11.2012 10:41:47

есть такой вопрос, в стаусбаре есть три панели, две маленькие одна большая, при включенном автохинте хинт выводится в 1 панель, как сделать чтобы выводился хинт например во вторую или в третью панель
madlih
новенький
 
Сообщения: 13
Зарегистрирован: 05.10.2012 11:57:04

Re: AutoHint

Сообщение Ichthyander » 01.11.2012 16:08:28

А.Н. писал(а):Наоборот, это классический MDI. :)

Добавлено спустя 50 секунд:
Получается, как я понял, одно окно, в котором окна "документов".

Это не MDI и не SDI - это TDI )
http://ru.wikipedia.org/wiki/Tabbed_Document_Interface
Еще можно использовать это как вариант при работе с формами в пределах одного окна viewtopic.php?f=18&t=8503

Добавлено спустя 8 минут 14 секунд:
madlih писал(а):есть такой вопрос, в стаусбаре есть три панели, две маленькие одна большая, при включенном автохинте хинт выводится в 1 панель, как сделать чтобы выводился хинт например во вторую или в третью панель

Строчку
Код: Выделить всё
StatusBar.Panels[2].Text := Application.Hint;

добавляете в событие OnHint, хотя я делал в OnUpdate ActionList, тогда подсказка в соответствующей панеле будет сразу перед глазами
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 699
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 230

Рейтинг@Mail.ru