Topic: ComboBox настройка

Подскажите, как отключить-спрятать стрелочку выползания с сохранением функций поиска. И сделать фильтр или условие, чтоб искалась по таблице по первым и последующим буквам, т.е.

Есть в таблице
jon
ojon

и при наборе первой буквы "j" выпадало не оба значения, а строго "jon"

Спасибо.

Re: ComboBox настройка

Спрятать стрелочку к сожалению нельзя.


Скачайте пожалуйста последнюю бета версию
https://www.dropbox.com/s/abazohrbdt3p9 … a.zip?dl=0


Добавил свойство SearchableType, теперь скриптом можно указать, искать точно совпадение (stExact)  или по вхождениею (stContain)


      Form1.CombobBox1.SearchableType := stExact;
Dmitry.

Re: ComboBox настройка

Попробовал вставить в событие или просто вписать вкладку "скрипт" программа выдает ошибку...

Re: ComboBox настройка

Какую ошибку? убедитесь, что вы используете бета версию 5.3


Данную строку вставьте в событие OnShow главной формы, пример

procedure Form1_OnShow (Sender: TObject; Action: string);
begin
    Form1.CombobBox1.SearchableType := stExact;
end;
Dmitry.

Re: ComboBox настройка

Заработало, была опечатка в CombobBox.

Раз нельзя стрелочку убрать у ComboBox, может тогда есть возможность прикрутить поиск к Edit (текстовому полю)...

Re: ComboBox настройка

vit007 wrote:

Заработало, была опечатка в CombobBox.

Раз нельзя стрелочку убрать у ComboBox, может тогда есть возможность прикрутить поиск к Edit (текстовому полю)...

Сделайте Edit, а к  нему прикрутите кнопку с поиском по таблице. Сделайте отметку в Edite IncreamSearch выберите срабатывание на эту кнопку.

Re: ComboBox настройка

Так не получается, т.к. последний пункт настройки кнопки - таблица помещения результата... А мне надо чтоб результат появился Edit и после завершения заполнения формы нового добавления закидывало в общую

Re: ComboBox настройка

Значит, только ComboBox...

9 (edited by vit007 2019-03-14 14:29:29)

Re: ComboBox настройка

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

Re: ComboBox настройка

Компонент ComboBox не сохраняет текст, он сохраняет выбранную запись во внешнем ключе таблицы. Если вам необходимо сохранять текст, можно взять текст из ComboBox и присвоить его компоненту Edit, с которого уже будут сохраняться данные как обычный текст.


procedure Form2_ComboBox1_OnChange (Sender: TObject);
begin
    Form2.Edit1.Text := Form2.ComboBox1.Text;
end;

Но вообще это неправильно, сохранять текст, когда можно сохранять выбор в ComboBox во внешнем ключе таблицы.

Dmitry.

Re: ComboBox настройка

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

Re: ComboBox настройка

К сожалению данный компонент провоцировал бы на неправильное использование базы данных. Не могли бы вы описать вашу ситуацию, для чего именно необходим вам данный функционал?

Dmitry.

13 (edited by vit007 2019-03-14 15:08:20)

Re: ComboBox настройка

Прога для учета заказов...

И это поле задумывалось для ввода Фамилии заказчика, чтоб выдавало совпадения при наборе или оставалось уникальным с последующим заносов нового значения в базу Фамилий.... Без дополнительных переходов, нажатий и т.д.

Re: ComboBox настройка

Интересно, а можно сделать под Edit полем таблицу с мгновенным запросом в ней, т.е. вводишь в текстовое поле и при совпадении в таблице появляются варианты...

Желательно у таблицы убрать строку заголовка...

15 (edited by vit007 2019-03-14 18:40:17)

Re: ComboBox настройка

Посмотрел один из примеров и, наверно, решил, что будет ComboBox для поиска, а  Edit заблокирую.

На рисовалось след, как поменять цвет текста заблокированной области?
И, как с делать перенос курсора по клавише Enter и нечего не даланья? а то прога "матерно" ругается в Edit поле.

Спасибо.

Re: ComboBox настройка

vit007 wrote:

Прога для учета заказов...

И это поле задумывалось для ввода Фамилии заказчика, чтоб выдавало совпадения при наборе или оставалось уникальным с последующим заносов нового значения в базу Фамилий.... Без дополнительных переходов, нажатий и т.д.

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


Скачайте пожалуйста последнюю бета версию
https://www.dropbox.com/s/abazohrbdt3p9 … a.zip?dl=0


Сделал для вас пример поиска в ComboBox с возможность автоматического добавления записи, если она не была найдена, т.о. вы можете как найти заказчика из списка, так и автоматически его добавить, если он новый

procedure frmEmployee_bSave_OnClick (Sender: string; var Cancel: boolean);
begin
    if (frmEmployee.cbGroup.dbItemID = -1) and (frmEmployee.cbGroup.Text <> '') then
    begin
        if 6 = MessageDlg('You really want to add a new group: ' + frmEmployee.cbGroup.Text, mtConfirmation, mbYes + mbNo, 0) then
        begin
            SQLExecute('INSERT INTO groups (groupname) VALUES ("'+frmEmployee.cbGroup.Text+'")');
            UpdateDatabase('groups');
            frmEmployee.cbGroup.dbItemID := Last_Insert_id;
        end;
     end;
end;


begin
     frmEmployee.cbGroup.HideTextIfNotExists := False;
end.

Проект с примером:

Post's attachments

Attachment icon ComboBox add value if not exists.zip 8.16 kb, 629 downloads since 2019-03-19 

Dmitry.

17 (edited by vit007 2019-03-19 14:10:55)

Re: ComboBox настройка

после обновления проги ругается на

frmEmployee.cbGroup.HideTextIfNotExists := False;

точнее на HideTextIfNotExists

Re: ComboBox настройка

скачайте последнюю бета версию по ссылке которую я дал выше.

Dmitry.

Re: ComboBox настройка

По пробую еще раз, хоть писал в последнем посте "после обновления проги"

Re: ComboBox настройка

Прикольный скрипт - забираем smile

Re: ComboBox настройка

Здравствуйте! Имеются Combobox и Image (как вариант - DBImage).
Как сделать, чтобы при выборе определённой записи в Combobox, в компоненте Image (или же в DBImage) автоматически открывалось изображение, соответствующее данной записи? Пробовал реализовать 2 путями:
1) сохранение соответствующей DBImage при создании/редактировании записи - не вышло;
2) скриптом, но нужное изображение появляется только в случае взаимодействия с компонентом изображения, например, после одиночного клика на нём.

Re: ComboBox настройка

Vyvern wrote:

Здравствуйте! Имеются Combobox и Image (как вариант - DBImage).
Как сделать, чтобы при выборе определённой записи в Combobox, в компоненте Image (или же в DBImage) автоматически открывалось изображение, соответствующее данной записи? Пробовал реализовать 2 путями:
1) сохранение соответствующей DBImage при создании/редактировании записи - не вышло;
2) скриптом, но нужное изображение появляется только в случае взаимодействия с компонентом изображения, например, после одиночного клика на нём.

Приветствую


Посмотрите пожалуйста данный проект с примером
http://myvisualdatabase.com/forum/misc. … download=1

Dmitry.

Re: ComboBox настройка

Дмитрий, подскажите:

Как можно написать условие, чтоб ваш скрипт понимал, что ComboBox заполнен и ничего не предпринимать.
А то, я его поставил в процедуру OnCloseOn и при выборе из списка содержимое стирается.

Да, еще подскажите как переместить курсор после заполнения на следующие поле, так понимаю надо задействовать TabOrder... Спасибо

Re: ComboBox настройка

vit007 wrote:

Дмитрий, подскажите:

Как можно написать условие, чтоб ваш скрипт понимал, что ComboBox заполнен и ничего не предпринимать.
А то, я его поставил в процедуру OnCloseOn и при выборе из списка содержимое стирается.

Да, еще подскажите как переместить курсор после заполнения на следующие поле, так понимаю надо задействовать TabOrder... Спасибо

Скорей всего вы забыли скриптом изменить свойство компонента

Form1.ComboBox1.HideTextIfNotExists := False; 

разместите данную строку в самом конце скрипта между последними

begin

end.

как показано в моем примере выше
http://myvisualdatabase.com/forum/viewt … 810#p29810

Dmitry.

Re: ComboBox настройка

Свойство компонента, не забыл. Просто при введении нового значения все в порядке, а когда в таблице или выборе из списка уже есть это значение, то после выхода из ComboBox - строка очищается...

И можно сделать выход из ComboBox через Enter. А то вызывает ощущение "замешательства", что делать, чтоб выйти и все осталось как надо... smile

Пытался отдельно замутить обычное поле с переносом сделать, так ComboBox при вводе не открывает поиск по введенным значения...