DisplayValue в ComboBox | |
---|---|
spammail_88 Автор Сообщений: 108 Дата регистрации: 13.11.2010 |
Возможно кто-то сталкивался с таким и может объяснить мне почему, и в каких случаях оператор .DisplayValue=cVariable не срабатывает и значение комбобокса не меняется. (добавил скриншот дебаггера)
[attachment 28294 Debugger.gif] Исправлено 2 раз(а). Последнее : spammail_88, 02.09.17 22:48 |
Re: DisplayValue в ComboBox | |
---|---|
AndyNigmatec Сообщений: 1573 Откуда: Волгоград Дата регистрации: 28.06.2015 |
Вообще-то DisplayValue не для изменения значения комбика ... для этого есть Value или там ListIndex
|
Re: DisplayValue в ComboBox | |
---|---|
spammail_88 Автор Сообщений: 108 Дата регистрации: 13.11.2010 |
Во первых ListIndex и Value также не меняются (см. предыдущий оператор).
Во вторых DisplayValue, все таки, для изменения (по крайне мере так пишет help): Цитата:Если нет, писало бы: Read-only at design time and run time. Кроме того, ка Вы видите, я в цикле меняю наполнение и значения для нескольких комбо. С первым – все в порядке, все сработало, а на втором – нет. В чем разница, чем второй особенный, не могу понять. Исправлено 4 раз(а). Последнее : spammail_88, 03.09.17 08:31 |
Re: DisplayValue в ComboBox | |
---|---|
AndyNigmatec Сообщений: 1573 Откуда: Волгоград Дата регистрации: 28.06.2015 |
Честно скажу - Ваш код вот совсем не очевиден )))
Циклы, подстановки ... нет - это ваше дело конечно, но на мой взгляд проще в фоксе для комбо сразу использовать источник данных а не заполнять его в коде (это св-ва RowSourceType, RowSource, BoundColumn, BoundTo). И раз уже вы написали для комбо .Value=что-то то далее не вижу смыла смысла чего-то еще в DisplayValue пытаться прописать. Далее, очистить комбо можно одной командой: ваш_комбо.Clear() и при добавлении вроде же индекс нуна указывать насколько помню: ваш_комбо.AddItem([Значение], [индекс]) В очередной раз убеждаюсь - злоупотребление подстановками ведет к очередному геморою (это не в ваш адрес - это вообще) |
Re: DisplayValue в ComboBox | |
---|---|
AndyNigmatec Сообщений: 1573 Откуда: Волгоград Дата регистрации: 28.06.2015 |
Вот вам простейший пример использования курсора в кач-ве источника данных
|
Re: DisplayValue в ComboBox | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Все свойства комбо влияющие на привязку/данные покажи. Если комбо базового класса, или если все комбо на форме одного класса, а "шутит" только один из них, то сравни все "изменённые" свойства между ними. Правда динамическое (в коде, тем более с макро) изменение свойств весьма непросто выявить...
Плюс содержимое массива aItems приведи (особенно его первый элемент - вдруг там не строка, или пустая строка или еще что "странное"). Вообще лучше всего пытаться "изолировать" проблему (постепенно убирая все прочие контролы и куски кода с формы, пока не станет работать правильно), или воспроизвести её на чистой форме (не всегда, увы, это получается сделать). Такой пример выложил бы, гораздо больше шанс понять что у тебя "не так". ------------------ WBR, Igor |
Re: DisplayValue в ComboBox | |
---|---|
spammail_88 Автор Сообщений: 108 Дата регистрации: 13.11.2010 |
Спасибо, AndyNigmatec за подсказку с ListIndex. Вроде разобрался. Суть кода в том, что появляются или исчезают некоторые пункты комбобокса, при этом порядок оставшихся остается прежним. То есть при изменении количества пунктов индекс всех следующих смещается.
Если индекс активного пункта изменился в следствии манипуляций, то обычного присваивания Value оказалось недостаточно. Я заметил, что Value комбо определено, а не экране пусто. По этому, пробовал еще и DisplayValue поменять, в следствии чего пропадало и Value. Проблема, наверное, в том, что значение (Value) все то же, а его индекс (ListIndex) изменился, и здесь Фокс теряется. В тех комбо, где индекс активного пункта после манипуляций не меняется – все ОК. После того, как я вручную задал и Value, и ListIndex, все стало работать корректно. И в DisplayValue уже нет необходимости. Имел ли бы я такие проблемы, если б пункты добавлял и убирал не вручную, а через курсор – не знаю. Исправлено 2 раз(а). Последнее : spammail_88, 04.09.17 14:18 |
Re: DisplayValue в ComboBox | |
---|---|
spammail_88 Автор Сообщений: 108 Дата регистрации: 13.11.2010 |
я
Исправлено 1 раз(а). Последнее : spammail_88, 04.09.17 14:18 |
© 2000-2024 Fox Club  |