Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.29;
Скачать: CL | DM;

Вниз

Я походу или плохо выспался, или ооочень мало знаю, или тупой   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.013 c
3-94335
Dmitry Zubtsov
2002-04-09 18:39
2002.04.29
Доступ из Delphi 6 к MySQL


1-94484
Чел - программер
2002-04-16 14:56
2002.04.29
НАРОД! Кто-нибудь знает, как обратиться к строке в memo, не ...


4-94646
Romul
2002-02-21 15:34
2002.04.29
Проблема с handle s у дочерних элементов


3-94298
Megera
2002-04-06 09:23
2002.04.29
заработная плата


3-94342
dr_neo_rostovq
2002-04-07 18:03
2002.04.29
Против BDE!!!