|  11.07.2006, 11:50 | #1 | 
| Гость | ComboBox 
			
			Добрый день! Подскажите пожалуйства вот в такой ситуации... Есть динамический ComboBox, которы в зависимость о условий меняет свое содержимое. Замену делаю вот так : int _count=1; PersonGroupDestination.clear(); while select where tt.Department ==<условие> { <ComboBoxAutoDeclarationName>.insert(tt.UserName,_count); _count++; } <ComboBoxAutoDeclarationName>.update(); Вопрос: почему новые данные не появляются, т.е. как обновить Combo??? Вопрос еще один как можно ратать с данным контролом без AutoDeclaration??? | 
|  | 
|  11.07.2006, 12:04 | #2 | 
| NavAx | 
			
			Вопрос: зачем вы используете ComboBox для таких задач?
		 | 
|  | 
|  11.07.2006, 12:28 | #3 | 
| Гость | 
			
			На мой взгляд для пользователя так будет удобней или у вас есть другое мнение. А вы что предлагаете использовать?
		 | 
|  | 
|  11.07.2006, 12:33 | #4 | 
| NavAx | 
			
			Для этих задач лучше использовать лукап форму, поищите на форуме, обсуждалось не раз. Есть еще вариант: посмотрите, как выбирается договор в форме заказов в зависимости от группы договоров и кода клиента. Обратите внимение на настройку relations таблицы SalesTable.
		 | 
|  | 
|  11.07.2006, 12:37 | #5 | 
| Участник | Цитата: 
		
			Сообщение от sergeyoskol
			
			 Вопрос еще один как можно ратать с данным контролом без AutoDeclaration??? FormComboBoxControl Depth; init() Depth = element.control(control:  epth); Взято с первой попавшейся на глаза формы CACHierPrompt | 
|  | 
|  11.07.2006, 12:43 | #6 | 
| Участник | Цитата: 
		
			Сообщение от sergeyoskol
			
			 Добрый день! Вопрос: почему новые данные не появляются, т.е. как обновить Combo??? Вопрос еще один как можно ратать с данным контролом без AutoDeclaration??? 2) Можно через перечисление control::[ControlName], как вам написали выше, но ИМХО лучше отказаться от этого способа и работать через AutoDeclaration | 
|  | 
|  11.07.2006, 12:51 | #7 | 
| Гость | 
			
			Встречный вопрос в чем "минус" использования AutoDeclaration? Например, просиходит высвобождение памяти после того как форма закроется? Или нет? А так же, но уже сугобо для себя, как всетаки динамически обновить ComboBox?? | 
|  | 
|  11.07.2006, 13:04 | #8 | 
| NavAx | 
			
			Вот так: PHP код: 
			 | 
|  | 
|  11.07.2006, 14:18 | #9 | 
| Гость | 
			
			Не работает   ComboBoxAutoDeclarationName.selection(0) - эта команда просто задает какой элемент будет выбран, а где же обновление ??? | 
|  | 
|  11.07.2006, 14:19 | #10 | 
| NavAx | 
			
			обновление в данном случае есть пара действий:ъ 1. Clear() 2. Add("element") Проверено, работает! | 
|  | 
|  11.07.2006, 15:04 | #11 | 
| Гость | 
			
			спасибо за содействие    | 
|  | 
|  11.07.2006, 22:58 | #12 | 
| Роман Долгополов (RDOL) | Цитата: 
		
			Сообщение от sergeyoskol
			
			 Встречный вопрос в чем "минус" использования AutoDeclaration? Например, просиходит высвобождение памяти после того как форма закроется? Или нет? и вс работа с контролами шла через синтаксис control:: Цитата: 
		
			Сообщение от sergeyoskol
			
			 А так же, но уже сугобо для себя, как всетаки динамически обновить ComboBox?? X++:     combobox.delete(combobox.getText(idx));
    combobox.insert(newText, idx);Но все вышеописанное в вашем случае имеет чисто академический интерес. Забейте на все это и используйте лукапы | 
|  | 
|  11.07.2006, 23:02 | #13 | 
| Участник | Цитата: 
		
			Сообщение от db
			
			 Нет никаких минусов. Простов в "древних" версиях свойства AutoDeclaration не было  и вс работа с контролами шла через синтаксис control:: Часто происходят глюки - какой-нить из ранее объявленных контролов теряется. То есть компиляция проходит успешно, но переменная = null. Приходится сбрасывать у него свойсвто в No, затем обратно в Yes - и он сразу находится. А так, очень просто и главное, намного удобнее перечня control:: | 
|  | 
|  11.07.2006, 23:05 | #14 | 
| Роман Долгополов (RDOL) | Цитата: 
		
			Сообщение от kashperuk
			
			 Единственный "минус", если конечно его так можно назвать - это странное поведение контролов, у которых AutoDeclaration = True, после добавления на форму еще одного контрола и установки у него этого свойства. Часто происходят глюки - какой-нить из ранее объявленных контролов теряется. То есть компиляция проходит успешно, но переменная = null. Приходится сбрасывать у него свойсвто в No, затем обратно в Yes - и он сразу находится. А так, очень просто и главное, намного удобнее перечня control::   | 
|  | 
|  11.07.2006, 23:11 | #15 | 
| Участник | 
			
			Знал бы как толком воспроизвести, исправил бы, или хотя бы понял толком, почему происходит. А происходит приблизительно так - на какую-нить форму, типа SalesEditLines, где много обращений к контролам на форме (см. метод run(), к примеру), добавляем галку, к примеру, в конец группы Parameters - и ставим ей autodeclaration = true. Вот после этого запускаем какую нить обработку заказа, и иногда (опять же, такое получалось у меня не всегда), начинает постоянно (именно постоянно) вылетать ошибка времени выполнения, что мол нет метода visible() , к примеру у объекта null Дебаггером смотрю - контрол пустой (null) таки. Соответственно, сама природа ошибки понятна. А лечилось так как написал. З.Ы. Но может дело вообще не в колчиестве полей на форме, а в сложной классовой обработке их | 
|  |