Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.84.155] |
|
Сообщ.
#1
,
|
|
|
Имеется два ComboBox'a, в ComboBox2 загружается список их фаила в зависимости от того, что было выбрано в ComboBox1.
По умолчанию в ComboBox1 стоит ItemIndex=0, но в ComboBox2 список пуст, приходится кликать на пункт №0 и только тогда появляется необходимый список. Как сделать, что б при создании формы уже подгружался список из фаила в ComboBox2, т.к. по идее ж уже стоит выбранная позиция в ComboBox1?? procedure TForm1.ComboBox1Change(Sender: TObject); begin case ComboBox1.ItemIndex of 0: begin //Первый пункт ComboBox1 ComboBox2.Clear; Combobox2.Items.LoadFromFile('1.txt') end; 1: begin //Второй пункт ComboBox1 ComboBox2.Clear; Combobox2.Items.LoadFromFile('2.txt') end; end; end; procedure TForm1.ComboBox3Change(Sender: TObject); begin case ComboBox3.ItemIndex of 0: begin //Первый пункт ComboBox3 ComboBox4.Clear; Combobox4.Items.LoadFromFile('1.txt') end; 1: begin //Второй пункт ComboBox3 ComboBox4.Clear; Combobox4.Items.LoadFromFile('2.txt') end; end; end; и т.д. (всего 10 связок таких с одинаковыми файлами для загрузки и списками для выбора из 2-х позиций) |
Сообщ.
#2
,
|
|
|
у тебя стоит загрузка в Combobox2 на методе ComboBox1Change, чтоб загружалось сразу при старте формы, то двойной клик по форме и там
ComboBox2.Clear; Combobox2.Items.LoadFromFile('1.txt') п.с если изменишь путь до файла в 0 пункте ComboBox1, то и при старте формы меняй |
Сообщ.
#3
,
|
|
|
Цитата xerasy @ у тебя стоит загрузка в Combobox2 на методе ComboBox1Change, чтоб загружалось сразу при старте формы, то двойной клик по форме и там ComboBox2.Clear; Combobox2.Items.LoadFromFile('1.txt') п.с если изменишь путь до файла в 0 пункте ComboBox1, то и при старте формы меняй На форме 10 !! связок, если внести как ты говоришь на FormCreate, то будет меняться во всех ComboBox'ах, а мне нужно только в одной связке. Тем более, в твоем примере нет зависимости от ComboBox1. Хотя, может и прокатит...костыли как всегда )) |
Сообщ.
#4
,
|
|
|
Цитата На форме 10 а, не доглядел Цитата если внести как ты говоришь на FormCreate, то будет меняться во всех ComboBox'ах эм, меняется только Combobox2, не ? Combobox2.Items.LoadFromFile('1.txt') Цитата Тем более, в твоем примере нет зависимости от ComboBox1. я рассчитывал, что по умолчанию 0 индекс активен в ComboBox1 Добавлено вообще, проще всего было бы для каждой связки выполнить первый (нулевой) пункт в FormShow , тобишь Combobox2.Items.LoadFromFile('1.txt') Combobox4.Items.LoadFromFile('1.txt') ................ У тебя идет условие, что, если активен 0 (первый) индекс (пункт), то выполнять такое-то условие, при создании формы по умолчанию стоит 0 индекс, если только ты программно его не меняешь. |
Сообщ.
#5
,
|
|
|
Задача пока плоховато поставлена. То имеется два комбобокса, то десять пар, и "будет меняться во всех ComboBox'ах,", то "нужно только в одной связке" - а зачем тогда про десяток говорится?
|
Сообщ.
#6
,
|
|
|
В комбобоксе по дефолту индекс -1, т.е. не выбрано ничего. Причем программное изменение индекса не запускает OnChange
Я юзаю такой хелпер: procedure ComboBoxSelItem(ComboBox: TComboBox; ItemIdx: Integer); begin ComboBox.ItemIndex := ItemIdx; if Assigned(ComboBox.OnChange) then ComboBox.OnChange(ComboBox); end; |