Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.005 c
1-94352
esprit_bel
2002-04-17 10:38
2002.04.29
прога ее модификация


3-94287
dim-
2002-04-08 10:41
2002.04.29
Удаление в дереве


1-94453
Deadlock
2002-04-16 07:25
2002.04.29
Функция Format


1-94378
Sound
2002-04-17 01:38
2002.04.29
Как востановить размер окна при запуске программы?


6-94532
Timon
2002-02-14 09:21
2002.04.29
TClientSocket





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский