Форум: "Основная";
Текущий архив: 2003.02.13;
Скачать: [xml.tar.bz2];
ВнизДва ComboBox a один Items. Найти похожие ветки
← →
Leshiy (2003-02-01 10:45) [0]Здравствуйте Мастаки.
Существует, скажем, 2 ComboBox"a. Можно ли сделать (через указатели или еще как-нибудь) чтобы свойства Items первого и второго имели доступ к одному и тому-же списку строк.
← →
Song (2003-02-01 15:27) [1]ComboBox1.Items.Assign(ComboBox2.Items)
← →
Darkwin (2003-02-01 17:46) [2]Чтобы был один списо на двоих - только через указатели, но как то странно они себя ведут после этого...
В одном список отображается а в другом нет, хотя у второго итемс не тот же что и упервого, почему не понятно ???
procedure TForm1.FormCreate(Sender: TObject);
var
p1,p2:Pointer;
begin
p1:=@(ComboBox1.Items);
p2:=@(ComboBox2.Items);
old:=p2;
TStrings(p2^):=TStrings(p1^);
ComboBox1.Items.Add("1");
ComboBox2.Items.Add("2");
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Lines.AddStrings(ComboBox1.Items);
Memo1.Lines.Add("");
Memo1.Lines.AddStrings(ComboBox2.Items);
end;
← →
Darkwin (2003-02-01 17:47) [3]сорри,
> В одном список отображается а в другом нет, хотя у второго
> итемс не тот же что и упервого, почему не понятно ???
В одном список отображается а в другом нет, хотя у второго итемс тот же что и упервого, почему не понятно ???
← →
Leshiy (2003-02-03 07:43) [4]
Song © (01.02.03 15:27)
Assign не пойдет, так как он просто копирует Items"ы одного в другой.
Darkwin © (01.02.03 17:46)
Странно. Когда открываешь второй ComboBox - то заметно что количество Items"ов как у первого, вот только значений не видно. :(
← →
AlexSV (2003-02-03 11:09) [5]А не проще ли ComboBox1.Items := ComboBox2.Items ?
← →
Leshiy (2003-02-03 11:34) [6]AlexSV © (03.02.03 11:09)
Не пойдет, т.к. так-же как и assign - просто копирует из одного в другой.
← →
Игорь Шевченко (2003-02-03 11:46) [7]А еще вопрос - зачем нужна такая задача ?
← →
Юрий Федоров (2003-02-03 12:06) [8]Похоже что никак не сделаешь
CB_ADDSTRING создает себе копию, например.
Да и действительно зачем???
← →
Leshiy (2003-02-03 12:07) [9]Игорь Шевченко © (03.02.03 11:46)
Скажем, существует 3 ComboBox"а и 3 PickList"а, их содержимое обсолютно одинаково. Причем их заполнение происходит в run-time, помимо этого эти списки могут изменяться .
1. Зачем заполнять все ComboBox"ы одним и тем же, т.е. экономия ресурсов.
2. При изменении списка не надо копировать из одного во все другие (Assign, ..Items:=..Items, и т.д., и т.п.).
← →
Толик (2003-02-03 12:22) [10]Блин, народ, а руками рисовать не пробовали??? Один обработчик OnDrawItem на все ComboBox"ы и будет Вам счастье.
p.s.
Только Item"ы надо брать из своего, руками созданного списка
← →
Leshiy (2003-02-03 12:29) [11]Толик © (03.02.03 12:22)
Спасибо, попробую.
Кстати, пример Darkwin"а работает, только однобоко. Т.е. при изменении ComboBox1 или ComboBox2 изменения отображаются только в ComboBox1.
← →
Игорь Шевченко (2003-02-03 12:34) [12]Leshiy © (03.02.03 12:07)
> т.е. экономия ресурсов
В Recycle Bin такую экономию ресурсов и лишение премии, сразу.
← →
Leshiy (2003-02-03 12:38) [13]Игорь Шевченко © (03.02.03 12:34)
?????
← →
Darkwin (2003-02-03 15:08) [14]
> Кстати, пример Darkwin"а работает, только однобоко. Т.е.
> при изменении ComboBox1 или ComboBox2 изменения отображаются
> только в ComboBox1.
Вот и я о том же... Но если вывести в Мемо итемсы из первого и второго Комбобоксов, то они будут совешенно одинаковые. Но, почему эти данные не отображаются во втором, я понять не могу.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.02.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c