Components for Delphi and C++ Builder.

Перейти в английский форум
Перейти на EhLib.com
Текущее время: 16 апр 2024, 07:09

Часовой пояс: UTC




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: SearchPanel пара вопросов
СообщениеДобавлено: 04 мар 2020, 08:08 
Не в сети

Зарегистрирован: 15 авг 2018, 07:39
Сообщений: 106
Добрый
Win10 1909, XE10.2.3, Ehlib 9.5.008.

1. SearchPanel.PersistentShowing = False
Что делает пункт меню "Закрыть"?
Вложение:
Untitled.png
Untitled.png [ 3.73 KiB | Просмотров: 1417 ]


2. Можно ли добавить некий "средний" между PersistentShowing True и False режим работы SearchPanel? Я имею ввиду, чтобы вызванная через Ctrl+F панель поиска не закрывалась при потере фокуса, но при этом у пользователя была возможность её скрыть самостоятельно. Сейчас у меня есть подобная реализация в версии 8.1, путём изменения исходники. Для версии 9.5 требуется адаптация и, на самом деле, хочется "честной" реализации.
Иначе, наблюдаются эффекты, когда при активированной строке поиска по клику на гриде получаем не ожидаемое поведение, например, оказываемся не на той строке или не срабатывает клик по кнопке ячейки:
Вложение:
2020-03-04-11-03-03-843.gif
2020-03-04-11-03-03-843.gif [ 82.5 KiB | Просмотров: 1417 ]

Вложение:
2020-03-04-11-03-21-67.gif
2020-03-04-11-03-21-67.gif [ 92.53 KiB | Просмотров: 1417 ]


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: SearchPanel пара вопросов
СообщениеДобавлено: 06 мар 2020, 00:52 
Не в сети

Зарегистрирован: 16 фев 2018, 04:13
Сообщений: 54
Откуда: АО ОТЭКО
OlegX, подскажи чем создаёшь такие компактные GIF'ки?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: SearchPanel пара вопросов
СообщениеДобавлено: 06 мар 2020, 06:54 
Не в сети

Зарегистрирован: 15 авг 2018, 07:39
Сообщений: 106
istrebitel писал(а):
OlegX, подскажи чем создаёшь такие компактные GIF'ки?

Снимаю "oCam" https://ohsoft.net/eng/ocam/download.php
Затем "Online Video to GIF Converter" https://www.onlineconverter.com/video-to-gif

ЗЫ. Ну нужно, прям, постараться чтобы в 250 кило уместиться ))


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: SearchPanel пара вопросов
СообщениеДобавлено: 06 мар 2020, 07:49 
Не в сети

Зарегистрирован: 25 авг 2014, 12:17
Сообщений: 69
istrebitel писал(а):
OlegX, подскажи чем создаёшь такие компактные GIF'ки?

Я не Олег, но :) ScreenToGif.2.22.Portable - https://www.screentogif.com/?l=ru_ru


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: SearchPanel пара вопросов
СообщениеДобавлено: 06 мар 2020, 08:41 
Не в сети

Зарегистрирован: 23 мар 2017, 13:41
Сообщений: 70
я тоже ScreenToGif использую, очень удобная штука


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: SearchPanel пара вопросов
СообщениеДобавлено: 06 мар 2020, 12:08 
Не в сети

Зарегистрирован: 15 авг 2018, 07:39
Сообщений: 106
В SearchPanel с splCellInplaceEh можно как-то переключать режим поиска на весь грид или только текущую колонку?
В гриде где-то есть индикация, что список отфильтрован по FilterOnTyping (что-то типа значка фильтра, который виден в заголовке столбца при фильтрации по месту)?

Не очень понял логику перемещения по колонкам. Если совпадение справа от первоначальной колонки ("Икс"), где начали поиск, то стирая символ, не возвращаемся в "Икс", если совпадение слева, то возвращаемся:
Вложение:
search1.gif
search1.gif [ 134.71 KiB | Просмотров: 1352 ]


Стрелки "Вверх" "Вниз" - попадают столбцы не содержащие искомое значение, причём по пути вниз и вверх - разные:
Вложение:
search2.gif
search2.gif [ 74.25 KiB | Просмотров: 1352 ]


"По клавше LEFT и RIGHT очищается строка поиска но не очищается текущий фильтр. Это позволяет удобно переходить к поиску в другом столбце грида."
Но как только начинаем набор, то фильтр тут же сбрасывается - это так задумано?
Вложение:
search3.gif
search3.gif [ 103.93 KiB | Просмотров: 1352 ]


ЗЫ. Снято с помощью:
rlc писал(а):
ScreenToGif.2.22.Portable

Спасибо ) Удобно!


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: SearchPanel пара вопросов
СообщениеДобавлено: 10 мар 2020, 01:20 
Не в сети

Зарегистрирован: 16 фев 2018, 04:13
Сообщений: 54
Откуда: АО ОТЭКО
Спасибо за ScreenToGif.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: SearchPanel пара вопросов
СообщениеДобавлено: 10 мар 2020, 19:16 
Не в сети

Зарегистрирован: 21 дек 2011, 18:48
Сообщений: 1549
Добрый день.

Цитата:
>1. SearchPanel.PersistentShowing = False
Что делает пункт меню "Закрыть"?

Закрывает меню.

Цитата:
>2. Можно ли добавить некий "средний" между PersistentShowing True и False режим работы SearchPanel?
Я имею ввиду, чтобы вызванная через Ctrl+F панель поиска не закрывалась при потере фокуса, но при этом у пользователя была возможность её скрыть самостоятельно.

Вы можете по событию Grid.KeyDown сами активизировать SearchPanel
Код:
procedure TformEhLibBugsChecker.gridDataKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key = Word('F')) and (Shift = [ssCtrl]) then
    gridData.SearchPanel.Enabled := True;
end;
При этом, при потере фокуса редактора текста панели, SearchPanel не будет закрывается.

Аналогично на кнопку или PopupMenu можно деактивировать SearchPanel.


Цитата:
>В SearchPanel с splCellInplaceEh можно как-то переключать режим поиска на весь грид или только текущую колонку?

Пользователь не может переключать режим поиска. Ведь выпадающее меню выбора режима поиска доступно только через видимую панель.
Разработчик, естественно, может реализовать переключение по своему PopupMenu меню или на быстрые клавиши.

Цитата:
>В гриде где-то есть индикация, что список отфильтрован по FilterOnTyping (что-то типа значка фильтра, который виден в заголовке столбца при фильтрации по месту)?
Такой индикации нет.

Цитата:
>Не очень понял логику перемещения по колонкам. Если совпадение справа от первоначальной колонки ("Икс"), где начали поиск, то стирая символ, не возвращаемся в "Икс", если совпадение слева, то возвращаемся:
Тут работает по принципу, если в текущей ячейке значение удовлетворяет поиску, то поиск остается в этой ячейке.

Цитата:
>Стрелки "Вверх" "Вниз" - попадают столбцы не содержащие искомое значение, причём по пути вниз и вверх - разные:
Тут ошибка при поиске в режиме дерева. Исправим в следующей сборке.

Цитата:
>"По клавише LEFT и RIGHT очищается строка поиска, но не очищается текущий фильтр. Это позволяет удобно переходить к поиску в другом столбце грида."
Но как только начинаем набор, то фильтр тут же сбрасывается - это так задумано?
Да, так и задумывалось изначально. Напишите, пожалуйста, ваше видение правильного поведения подобного функционала.

_________________
Best regards
EhLib support Team


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: SearchPanel пара вопросов
СообщениеДобавлено: 11 мар 2020, 08:08 
Не в сети

Зарегистрирован: 15 авг 2018, 07:39
Сообщений: 106
EhLibSupport писал(а):
Закрывает меню.

Понял. Похоже, что я ожидал закрытия панели поиска )

EhLibSupport писал(а):
Вы можете по событию Grid.KeyDown сами активизировать SearchPanel
При этом, при потере фокуса редактора текста панели, SearchPanel не будет закрывается.
Аналогично на кнопку или PopupMenu можно деактивировать SearchPanel.

Спасибо. Как бы это распространить на все гриды приложения без переопределения обработчика нажатия клавиш...

EhLibSupport писал(а):
Пользователь не может переключать режим поиска. Ведь выпадающее меню выбора режима поиска доступно только через видимую панель.
Разработчик, естественно, может реализовать переключение по своему PopupMenu меню или на быстрые клавиши.

А режим поиска только по колонке, например, можно установить по умолчанию? Программно как это сделать для грида?

EhLibSupport писал(а):
Такой индикации нет.

Жаль. Возможно было бы полезно её иметь.

EhLibSupport писал(а):
Тут работает по принципу, если в текущей ячейке значение удовлетворяет поиску, то поиск остается в этой ячейке.

Поясню скрин из предыдущего сообщения. Активен столбец "Capital", включаем splCellInplaceEh поиск, набираем "o", пока активен "Capital", набираем "u", совпадений в "Capital" нет, переходим в "Continent", стираем "u", остаёмся в "Continent", набираем "l", в текущем столбце совпадений нет - ушли в "Name". До этого момента всё сходится.
Теперь стираем "l", совпадение на "o" есть в текущем столбце "Name", но фокус перешёл в столбец "Capital". Или это тоже из-за режима дерева?

EhLibSupport писал(а):
Тут ошибка при поиске в режиме дерева. Исправим в следующей сборке.

Спасибо. Будем ждать.

EhLibSupport писал(а):
Да, так и задумывалось изначально. Напишите, пожалуйста, ваше видение правильного поведения подобного функционала.

Это просто хотел уточнить. Не уверен, что могу предложить что-то лучше.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: SearchPanel пара вопросов
СообщениеДобавлено: 11 мар 2020, 11:09 
Не в сети

Зарегистрирован: 15 май 2017, 14:01
Сообщений: 100
EhLibSupport писал(а):
Добрый день.

Цитата:
>1. SearchPanel.PersistentShowing = False
Что делает пункт меню "Закрыть"?

Закрывает меню.


Тоже смущает этот пункт. По-моему - бесполезен. Меню ведь закрывается при клике в любом месте. Или есть особенные случаи? Нигде раньше не встречал такого пункта, который закрывает само меню


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: SearchPanel пара вопросов
СообщениеДобавлено: 11 мар 2020, 14:21 
Не в сети

Зарегистрирован: 15 авг 2018, 07:39
Сообщений: 106
stanislove писал(а):
Тоже смущает этот пункт. По-моему - бесполезен. Меню ведь закрывается при клике в любом месте. Или есть особенные случаи? Нигде раньше не встречал такого пункта, который закрывает само меню

Видимо, чтобы закрыть меню, но не закрыть не Persistent строку поиска, если клик пришёлся в грид.
ЗЫ. Мне вообще кажется сомнительным функционал автозакрытия строки поиска при потере фокуса. О неожиданных эффектах выше уже писал...


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: SearchPanel пара вопросов
СообщениеДобавлено: 11 мар 2020, 14:51 
Не в сети

Зарегистрирован: 21 дек 2011, 18:48
Сообщений: 1549
Добрый день.

Вы можете убрать пункт меню "Закрыть" в SearchPanel во всех гридах вашего проекта
с помощью следующего кода.

Код:
unit Unit1;
...
type
  TMyDBGridEhCenter = class(TDBGridEhCenter)
  public
    procedure BuildSearchPanelOptionsPopupMenu(Grid: TCustomDBGridEh; var PopupMenu: TPopupMenu); override;
  end;

{ TMyDBGridEhCenter }

procedure TMyDBGridEhCenter.BuildSearchPanelOptionsPopupMenu(
  Grid: TCustomDBGridEh; var PopupMenu: TPopupMenu);
begin
  inherited BuildSearchPanelOptionsPopupMenu(Grid, PopupMenu);
  if (DBGridEhCloseMenuItem <> nil) then
    DBGridEhCloseMenuItem.Visible := False;
end;

initialization
  SetDBGridEhCenter(TMyDBGridEhCenter.Create).Free;
end.

_________________
Best regards
EhLib support Team


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB