![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Есть два листбокса, в первом создаются пункты, во втором подпункты первого. Нужно сделать чтобы при выделении пункта листбокса1 подгружался список в листбокс2 относящийся именно к этому пункту.
Скажем: Listbox1 ----------------Listbox2 Литеоратура ----------------Книги ----------------Журналы ----------------Газеты Документы ---------------Шаблоны ---------------Накладные ну и тд. Часть сделал что касаемо листбокса1- сохранение/чтение, а вот со второй частью пока тупик. Код:
procedure LoadListbox1Listbox2(const Groupname:string); procedure TForm1.FormCreate(Sender: TObject); var llist:tstringlist; i:integer; begin llist:=tstringlist.create; llist.Clear; Listbox1.Clear; Edit1.Clear; try if fileexists('c:\Listbox1.pdb') then llist.LoadFromFile('c:\Listbox1.pdb') except end; for i:=0 to lList.Count-1 do begin Listbox1.AddItem(llist[i],nil); end; llist.Free; // Listbox1.ItemIndex:=0; end; procedure TForm1.N4Click(Sender: TObject); var i:integer; llist:tstringlist; begin if messagedlg('Вы действительно хотите удалить группу ',mtConfirmation,[mbNo,mbYes],0)=mrYes then begin Listbox1.DeleteSelected; llist:=tstringlist.create; llist.Clear; llist.AddStrings(Listbox1.Items); end; try llist.SaveToFile('c:\Listbox1.pdb'); except end; llist.Free; end; procedure TForm1.N3Click(Sender: TObject); var newstr:string; i:integer; llist:tstringlist; begin NewStr:=InputBox('Новая группа','Введите имя группы',''); if newstr<>'' then begin Listbox1.Items.Add(newstr); llist:=tstringlist.create; llist.Clear; begin llist.AddStrings(Listbox1.Items); llist.SaveToFile('c:\Listbox1.pdb'); llist.Free; end; end; end; procedure TForm1.Listbox1Change(Sender: TObject; Item: TListItem; Change: TItemChange); var i:integer; begin if Listbox1.Items.Count>0 then if (Listbox1.ItemIndex>=0) and (Listbox1.ItemIndex<Listbox1.Items.Count) then //LoadListbox1Listbox2(Listbox1.Items.); end; procedure LoadListbox1Listbox2(Const Groupname:string); var i,cur:integer; sec:tstringlist; begin sec:=tstringlist.Create; try if form1.ListBox1.ItemIndex=0 then begin for i:=0 to sec.Count-1 do begin form1.ListBox2.Items.Add(Sec[i]); end; end; if form1.ListBox1.itemindex>0 then begin for i:=0 to sec.Count-1 do begin cur:=form1.ListBox2.ItemIndex; form1.ListBox2.Items[cur]:=sec[i]; end; end; except end; end; procedure TForm1.N5Click(Sender: TObject); var newcat:string; i:integer; clist:tstringlist; begin Newcat:=InputBox('Новая категория','Введите имя категории',''); if newcat<>'' then begin Listbox2.Items.Add(newcat); clist:=tstringlist.create; clist.Clear; begin clist.AddStrings(Listbox2.Items); clist.SaveToFile('c:\Listbox2.pdb'); clist.Free; end; end; end; procedure TForm1.N6Click(Sender: TObject); var i:integer; clist:tstringlist; begin if messagedlg('Вы действительно хотите удалить категорию ',mtConfirmation,[mbNo,mbYes],0)=mrYes then begin Listbox2.DeleteSelected; clist:=tstringlist.create; clist.Clear; //for i:=0 to Listbox1.Items.Count do begin // llist.add(Listbox1.Items[i]); clist.AddStrings(Listbox2.Items); end; try clist.SaveToFile('c:\Listbox2.pdb'); except end; clist.Free; end; end. |