Как организовать изменение записи через ComboBox? | |
---|---|
Tir Сообщений: 38 Дата регистрации: 21.03.2005 |
Доброго времени суток, уважаемые лисоводы. Такой вопрос: как организовать изменение значения записи в таблице (тип данных поля - Character) через ComboBox (Style=Dropdown Combo) с вводом нового значения с клавиатуры? При попытке обновить запись строкой, введённой в ComboBox с клавиатуры, запись при потере ComboBox-ом фокуса обновляется не введённым значением, а пустой строкой. Причём обновляется таким странным способом всегда последняя запись в таблице, вне зависимочти от того, на какой записи находился указатель на момент ввода. В чём проблема? Заранее спасибо.
------------------ Последний плюс всегда на могиле |
Re: Как организовать изменение записи через ComboBox? | |
---|---|
Перминов Игорь Сообщений: 1591 Откуда: Красная Орловка Дата регистрации: 16.09.2001 |
Смотри DisplayValue
------------------ Без коментариев.. |
Re: Как организовать изменение записи через ComboBox? | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Hi Tir!
И учитывай, что когда в комбо вводится то чего нету в источнике данных - он автоматом переводит указатель записи на EOF() - что вполне логично IMHO. В общем я бы не советовал тебе делать правку поля через комбо - он не для того предназначен. ------------------ WBR, Igor |
Re: Как организовать изменение записи через ComboBox? | |
---|---|
Syberex Сообщений: 1432 Откуда: Кострома Дата регистрации: 19.01.2004 |
Есть комбо-класс собственного производства с
добавлением/изменением/удалением, могу выслать. ------------------ |
Re: Как организовать изменение записи через ComboBox? | |
---|---|
Tir Сообщений: 38 Дата регистрации: 21.03.2005 |
2Syberex
Вышли plz на ''.phorum_html_encode('asmodey@avtograd.ru').'' ------------------ Последний плюс всегда на могиле |
Re: Как организовать изменение записи через ComboBox? | |
---|---|
Влад Колосов Сообщений: 22664 Откуда: Ростов-на-Дону Дата регистрации: 05.05.2005 |
попробуй Thisform.Combo1.Value = Thisform.Combo1.Text в методе LostFocus.
Фишка a том, то text превращается в value при нажатии Enter, а при потере фокуса значение в value не переносится. |
Re: Как организовать изменение записи через ComboBox? | |
---|---|
Tir Сообщений: 38 Дата регистрации: 21.03.2005 |
При выполнении ThisForm.Combo1.Value=ThisForm.Combo1.Text (как писал Влад Колосов) при событии Valid программа стала заменять имеющуюся запись на введённую, а не на пустую строку, что уже решает половину проблемы. Но когда я начинаю изменять имеющуюся запись в ComboBox видимо начинается поиск этой новой записи в наборе строк, содержащемся в ComboBox. Естественно такая строка не находится, и указатель записи перемещается на последнюю запись (а не на EOF, как писал Igor Korolyov) и изменяется значение соответственно последней записи, а не той, которую я начинал менять. Вот ещё бы эту проблему решить - и дело можно считать сделанным
------------------ Последний плюс всегда на могиле |
Re: Как организовать изменение записи через ComboBox? | |
---|---|
Влад Колосов Сообщений: 22664 Откуда: Ростов-на-Дону Дата регистрации: 05.05.2005 |
Хм... Суть комбобокса такова, что он не предназначен для редактирования записей, а только для ввода значения, которого нет в списке (поэтому Value остается пустым, у этой строки ID=0) или выбора из списка. Когда ты пытаешься "редактировать" происходит, как правильно было замечено, контекстный поиск, не более того.
|
Re: Как организовать изменение записи через ComboBox? | |
---|---|
Tir Сообщений: 38 Дата регистрации: 21.03.2005 |
А можно как-то этот контекстный поиск отключить?
------------------ Последний плюс всегда на могиле |
Re: Как организовать изменение записи через ComboBox? | |
---|---|
FoxHunter Сообщений: 161 Дата регистрации: 29.03.2005 |
IncrementalSearch = .F.
|
Re: Как организовать изменение записи через ComboBox? | |
---|---|
Syberex Сообщений: 1432 Откуда: Кострома Дата регистрации: 19.01.2004 |
2Tir
Отправил! ------------------ |
Re: Как организовать изменение записи через ComboBox? | |
---|---|
Dag |
Столкнулся с аналогичной проблемой. В MSDN'е написано, что
комбо является комбинацией классов Textbox и Listbox, но работать с комбо, как в текстбоксе не получается. Пришлось мне заменить один обьект типа комбо двумя - текстбокс и невидимый по умолчанию листбокс. При необходимости сделать выбор из списка оживляем листбокс, выбранное в списке значение перебрасываем в текстбокс, скрываем листбокс, редактируем значение в текстбоксе. Такой вот debilismus. 2 Syberex Если не затруднит, прошу выслать Ваш класс на мыло dag_roms@mail.ru 2 ALL Кто-нибудь знает как можно с клавиатуры заставить комбо открыть список выбора (вызвать событие DropDown)? Тыкать каждый раз мышью в треугольник drop-down arrow уже утомило... |
Re: Как организовать изменение записи через ComboBox? | |
---|---|
Влад Колосов Сообщений: 22664 Откуда: Ростов-на-Дону Дата регистрации: 05.05.2005 |
Альт+стрелка вниз, стандартно...
|
Re: Как организовать изменение записи через ComboBox? | |
---|---|
PaulWist Сообщений: 14625 Дата регистрации: 01.04.2004 |
Цитата: Попробуй такой тест, надо из тестбокса перейти по Enter или Tab на комбобокс.
------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: Как организовать изменение записи через ComboBox? | |
---|---|
Dag |
Влад Колосов
PaulWist Большое спасибо! Оба способа работают замечательно. Особенно понравился метод с имитированием действий мыши. Если в код метода KeyPress добавить эту команду - то открытие списка можно привязать к любой клавише, например к пробелу IF nKeyCode==32 NODEFAULT lcFN=ThisForm.Name MOUSE CLICK at objtoclient(this,1), objtoclient(this,2) window &lcFN PIXELS ENDIF |
Re: Как организовать изменение записи через ComboBox? | |
---|---|
Burn Сообщений: 5644 Откуда: Днепр Дата регистрации: 02.01.2002 |
Интересно - у меня конструкция MOUSE CLICK at objtoclient(this,1), objtoclient(this,2) вызывает зависание мышки, пока не дернеш клавиатуру, но если выбрать другую точку для клика мыши - MOUSE CLICK AT This.Top+Int(This.Height/2), This.Left+(This.Width-Int(This.Height/2)) то все нормально - можно кработать как мышкой так и клавой
------------------ В борьбе бобра с козлом побеждает бобро |
Re: Как организовать изменение записи через ComboBox? | |
---|---|
Владимир Максимов Автор Сообщений: 14100 Откуда: Москва Дата регистрации: 02.09.2000 |
Добавил в FAQ 2 статьи
Как ввести новое значение непосредственно в ComboBox Как автоматически раскрыть выпадающий список |
Re: Как организовать изменение записи через ComboBox? | |
---|---|
PaulWist Сообщений: 14625 Дата регистрации: 01.04.2004 |
Владимир
Прочитал добавленный FAQ - ЗАМЕЧАТЕЛЬНО, просто нет слов как доходчиво. ------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: Как организовать изменение записи через ComboBox? | |
---|---|
Владимир Максимов Автор Сообщений: 14100 Откуда: Москва Дата регистрации: 02.09.2000 |
Цитата: |
© 2000-2024 Fox Club  |