Форум: "Основная";
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];
ВнизЯ походу или плохо выспался, или ооочень мало знаю, или тупой Найти похожие ветки
← →
Reticent (2002-04-15 18:27) [0]В ComboBox есть 3 значения. Как мне програмным путем сказать, что выбран тот-то? Я пробовал
ADOComboBox97Ex.ItemIndex:=ADOComboBox97Ex.Items.IndexOf(defName);
Не то выдает. :( Потому что если посмотреть ADOComboBox97Ex.Text - он совсем не то показывает.
Мне просто из трех, надо одно актуальное установить. (всхлипывая)
Помоготе... пожалуста...
← →
Song (2002-04-15 18:34) [1]TComboBox.ItemIndex
Не знаю, почему у Вас не получается.
← →
Андрей Сенченко (2002-04-15 19:01) [2]То, что нумерация Index с нуля - не забыл ?
← →
Yakudza (2002-04-15 19:03) [3]Должно работать без проблем.
Может у тебя defName неправильно передаеться, посмотри в режиме дебага, что там происходит ?
← →
Reticent (2002-04-15 19:35) [4]Да вот именно, что неважно что в defName стоит. Т.к. после выполнения команды значение остается на том, которое было :(
Вот если := цифра, то идет. Но я заранее не знаю какое имя должно выбираться. Знаю только, что оно в defName. И что-то не в какую
← →
Андрей Сенченко (2002-04-15 20:03) [5]>> Reticent © (15.04.02 19:35)
Что-то не так.
.ItemIndex однозначно определяет индекс записи ( в Твоем случае от 0 до 2 )
Я не встречался с приведенным Тобой компонентом ADOComboBox97Ex, но судя по тому коду, что Ты выдал в .Text должно бы содержаться то самое defName. Вопросы:
1. А оно (defName) задано ?
2. Выбранный Тобой компонент индексирует значение по умолчанию или же хранит отдельно ?
← →
Reticent (2002-04-16 11:11) [6]2 Андрей Сенченко ,
ADOComboBox97Ex - это простой, немного измененный, ComboBox.
defName - задано.
ADOComboBox97Ex.ItemIndex:=ADOComboBox97Ex.Items.IndexOf(defName);
Вторая половина правильно написана? Я уже думаю, может тут что не так.
← →
Reticent (2002-04-16 11:14) [7]2 Андрей Сенченко ,
ADOComboBox97Ex - это простой, немного измененный, ComboBox.
defName - задано.
ADOComboBox97Ex.ItemIndex:=ADOComboBox97Ex.Items.IndexOf(defName);
Вторая половина правильно написана? Я уже думаю, может тут что не так.
Да, еще вопросик: "Если я Item
← →
Song (2002-04-16 11:16) [8]Text зависит от ItemIndex
← →
Reticent (2002-04-16 11:23) [9]А вот это правильно ???
:=ADOComboBox97Ex.Items.IndexOf(defName);
пожалста, подскажите. А то я уже начинаю чувствовать себя недотепой, а обратно начинать учить Делфы заново ооочень не охото :), да и времени не так много.
Может есть какая другая возможность определить Id по заданному имени?
← →
Андрей Сенченко (2002-04-16 11:27) [10]Привел бы весь код процедуры, а ?
Я лично никак не могу понять ЧТО Ты хочешь получить.
← →
Song (2002-04-16 11:28) [11]Правильно так: (бред какой-то)
With ComboBox1 Do S:=Items[Items.IndexOf(S)];
А дело всё в "это простой, немного измененный, ComboBox", ИМХО
← →
Reticent (2002-04-16 11:45) [12]Весь код.... хм... Сложновато.
2 Song,
Уважаемый, я тоже уже начинал так думать. До меня тут сидел другой программист, а я вот теперь расхлебываю :) Ищу и выправляю ошибки, ввожу новшества. Но я Посмотрел этот "это простой, немного измененный, ComboBox". Там просто кое что добавлено, а существенных изменений нет. Я уже, с божьей помощью, несколько срочных багов убрал. Но этот...... слов нет :)
В общем, есть клиенты (Mandant), они должны брать их банк данных с сервера SQL, в зависимости от имени, выбранного в "ComboBox".
Но! есть возможность "по умолчанию". Клиент тыкает на свой, ранее открытый, банк данных и получает доступ.
Fill_cboSQLServers; // заполняет список серверов
if (a_Params.Server <> "") //если таковые есть (тут стоит строка с именем клиента и сервера)
then begin
defMandantName := Copy(a_Params.Server,1,Pos("@", a_Params.Server)-1); //вырезать имя клиента
Combobox_SQLServer.Text :=Copy(a_Params.Server,Pos("@", a_Params.Server)+1,Length( a_Params.Server)); //вырезать имя сервера
Fill_cboMandanten; //заполнить список клиентами (как раз в ADOComboBox97Ex_Mandant)
if ADOComboBox97Ex_Mandant.Ids.IndexOf(IntToStr(Cfg.DB_CurrentUser.MandantId)) <> -1 then
ADOComboBox97Ex_Mandant.SetId(Cfg.DB_CurrentUser.MandantId)
else
ADOComboBox97Ex_Mandant.ItemIndex:=ADOComboBox97Ex_Mandant.Items.IndexOf(defMandantName); //и вот тут надо по defMandantName узнать соотв. Id в ADOComboBox97Ex_Mandant и установить его.
GetMandantId;// тут просто передается ентот Id далее
← →
esu (2002-04-16 11:51) [13]гм... Я в таких случаях
1. Смотрю пошагово чего и где хранится и передается.
2. Проверяю с конкретными значениями (ну там забил несколько строк и выбрал конкретную)
3. Даю посмотреть на код соседу, обычно после долгой работы глаза замозоливаются :)
4. Ставлю стандартный компонент и смотрю как это работает без "шашечек"
5. Окончательно схожу с ума и в цикле перебираю все итемы, сравниваю их с предложенным и чешу репу.
PS А где ж этот defName объявляется ?
← →
Reticent (2002-04-16 11:57) [14]defName : string; // :-)
я ужо и репу чесал и смотреть давал, и вот, теперь, тут надеюсь на помощь собратьев.
ps: defName -теперь defMandantName , и т.п.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.006 c