Форум: "Основная";
Текущий архив: 2003.10.09;
Скачать: [xml.tar.bz2];
ВнизListBox и алфавит Найти похожие ветки
← →
Stranger2003 (2003-09-30 14:34) [0]Здраствуйте, уважаемые мастера.
Не поможете ли с возникшей у меня проблемой.
На форме есть listbox на tabcontrole.
В listboxe`e написана куча имен пользователей. А Tab"ы идут как в записной книжке (А-Б, В-Г и т.д.). Как сделать так, чтобы при при переходе на tab(корешок например С-Т) в листбоксе отображались имена только на эти буквы С и Т.
← →
KSergey (2003-09-30 14:42) [1]Его необходимо перезаполнять соответствующими элементами синхронно с переключением вкладок
← →
ZEE (2003-09-30 14:43) [2]надо хранить "кучу имен пользователей" гденить в другом месте (например TStringList)а "при переходе на tab" выбирать нужные имена в ListBox ...
← →
VAleksey (2003-09-30 14:57) [3]Может лучше использовать In memory table ?
Типа RXMemoryTable или ClientDataSet. И использовать возможности фильтрации.
← →
Stranger2003 (2003-09-30 15:05) [4]KSergey © (30.09.03 14:42) [1]
Все данные храняться в Ini файле и все имена юзеров это секции ини-файла. Естевственно при переходе на новый Tab ListBox обновляется снова.
← →
ZEE (2003-09-30 15:10) [5]> Stranger2003 (30.09.03 15:05) [4]
> Все данные храняться в Ini файле и все имена юзеров это
> секции ини-файла. Естевственно при переходе на новый Tab
> ListBox обновляется снова.
ну так при обновленнии ListBox-а выбирай только имена начинающиеся с нужных букв, в чем сложность?
← →
Stranger2003 (2003-09-30 15:33) [6]ZEE © (30.09.03 15:10) [5]
Сложность и есть в этом
Знал бы не задавал вопрос
Разъясните плиз если не сложно.
← →
Palladin (2003-09-30 15:36) [7]if условие then действие
← →
ZEE (2003-09-30 15:41) [8]> Stranger2003 (30.09.03 15:33) [6]
> Сложность и есть в этом
> Знал бы не задавал вопрос
> Разъясните плиз если не сложно.
покажи как "ListBox обновляется"...
← →
Stranger2003 (2003-09-30 16:13) [9]ZEE © (30.09.03 15:41) [8]
var
Ini: TIniFile;
begin
Ini:= TIniFile.Create(AppPath + "db.dat");
Ini.ReadSections(ListBox1.Items);
Ini.Free
end;
← →
Amoeba (2003-09-30 16:16) [10]Примерно так:
ListBox.BeginUpdate;
ListBox.Clear;
...
for I := 1 to N do
ListBox.Items.Add(S);//добавляем в цикле строки
ListBox.EndUpdate
← →
ZEE (2003-09-30 16:25) [11]> Stranger2003 (30.09.03 16:13) [9]
ну если так, то можно добавить после загрузки ЛистБокса:
var i:integer;
SelChar:char;//первая буква в именах
...
for i:= ListBox1.Items.Count-1 downto 0 do
begin
if pos(SelChar,ListBox1.Items.Strings[i])<>1
then ListBox1.Items.Delete(i);
end;
или еще вариант
var ini:TIniFile;
sl:TStringList;
i:integer;
SelChar:char;
begin
sl:=TStringList.Create;
ini:= TIniFile.Create(AppPath + "db.dat");
ini.ReadSections(sl);
ini.Free;
ListBox1.Clear;
for i:=0 to sl.Count-1 do
begin
if pos(SelChar,sl.Strings[i])=1
then ListBox1.Items.Add(sl.Strings[i]);
end;
sl.Free;
end;
← →
Stranger2003 (2003-09-30 16:48) [12]ZEE © (30.09.03 16:25) [11]
Огромное спасибо, все заработало.
Удачи
С уважением Stranger2003.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.10.09;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c