Всплывающие подсказки при наведении мыши

Готовые скрипты, модули расширений, динамические библиотеки и вспомогательные утилиты.
Аватара пользователя
Владимир
Администратор
Сообщения: 630
Зарегистрирован: 10 фев 2018, 18:27
Откуда: Белгород
Контактная информация:

Всплывающие подсказки при наведении мыши

Сообщение Владимир » 24 мар 2018, 15:52

Действие добавляет всплывающие подсказки для выбранных компонентов формы. (устанавливается в действии формы)
Изображение
Изображение
Код модуля расширенийПоказать

Код: Выделить всё

{@action
Id=244F02CB-C541-4A44-B997-57368822EF37
OrigName=SetHints
Name=Всплывающие подсказки
Group=Свойства компонентов
UI=<ui>
<grid name="g" caption="Выберите компоненты для подсказки при наведении">
<component name="c" caption="Компонент"/>
<text name="t" caption="Текст подсказки:"/>
<expr name="e" caption="и(или) выражение:"/>
</grid>
</ui>
Description=Действие устанавливает всплывающие подсказки для указанных
компонентов при наведении мыши.
@}

function TryEvalExpr(V:Variant;Sender:TObject):boolean;
begin
  try
    EvalExpr(VarToStr(V),Self);
    result:=true;
  except
    result:=false;
  end;
end;

procedure SetHints(Table:TVariantArray2D);
var i:integer;
Comp:TComponent;
begin
if Length(Table) = 0 then exit;
 for i:=0 to Length(Table)-1 do
  begin
    Comp:=Self.FindComponent(Table[i][0]);
    if Comp=nil then Continue else
      begin
        if TryEvalExpr(Table[i][2],Self) then
        begin
          TControl(Comp).Hint:=Table[i][1]+VarToStr(EvalExpr(Table[i][2],Self));
          TControl(Comp).ShowHint:=true;
        end
        else
         debug(TControl(Comp).Name+': Ошибка в выражении подсказки');
      end;
  end;
end;

Скачать:
Всплывающие подсказки.epas
(1.39 КБ) 312 скачиваний

Поддержка проекта

Теги:

Аватара пользователя
drts
Сообщения: 40
Зарегистрирован: 14 фев 2018, 20:20

Re: Всплывающие подсказки при наведении мыши

Сообщение drts » 24 мар 2018, 16:29

Спасибо, Володя. Я пытался задать хинт в действии кнопки. Вообще было бы неплохо иметь отдельный параметр в действии. Ну если не получится, то буду задавать из формы, как ты, либо напрямую в коде.

Аватара пользователя
Владимир
Администратор
Сообщения: 630
Зарегистрирован: 10 фев 2018, 18:27
Откуда: Белгород
Контактная информация:

Re: Всплывающие подсказки при наведении мыши

Сообщение Владимир » 24 мар 2018, 16:32

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

Аватара пользователя
drts
Сообщения: 40
Зарегистрирован: 14 фев 2018, 20:20

Re: Всплывающие подсказки при наведении мыши

Сообщение drts » 24 мар 2018, 16:45

Согласен. Твой action делает то, что я всегда делал ручками в коде. А я тут захотел для экшна кнопки добавить хинт. И понял, что наверное много хочу))))

Аватара пользователя
Владимир
Администратор
Сообщения: 630
Зарегистрирован: 10 фев 2018, 18:27
Откуда: Белгород
Контактная информация:

Re: Всплывающие подсказки при наведении мыши

Сообщение Владимир » 24 мар 2018, 17:00

В экшн кнопки добавить-то можно, но само действие будет срабатывать только по нажатию... Даже если в OnMouseEnter вогнать.
У кнопки при назначении действия появляется "беспалевное" свойство ActionOnClick <id экшена>. Можно было бы прицепиться и к нему, но опять же - врубать скрипт до нажатия на кнопку не получится.
Вообще в локальных экшенах не хватает глобального объявления (как в веб-фреймворках). Об этом не раз терки шли на том форуме и не в одной теме.

Аватара пользователя
drts
Сообщения: 40
Зарегистрирован: 14 фев 2018, 20:20

Re: Всплывающие подсказки при наведении мыши

Сообщение drts » 24 мар 2018, 18:07

Ясно. В общем admin я хотелку свою озвучил. Может добавит?

Аватара пользователя
Владимир
Администратор
Сообщения: 630
Зарегистрирован: 10 фев 2018, 18:27
Откуда: Белгород
Контактная информация:

Всплывающие подсказки при наведении мыши

Сообщение Владимир » 11 апр 2018, 11:56

Обновление шапке): добавил множественный выбор полей в пределах одного действия.
При ошибке в выражении подсказки появляется сообщение с указанием на имя компонента.

Аватара пользователя
RetCat
Сообщения: 1
Зарегистрирован: 08 фев 2020, 13:38

Всплывающие подсказки при наведении мыши

Сообщение RetCat » 08 фев 2020, 13:41

Отличный модуль. Огромное спасибо.

Ответить