Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ListBox [D7, NT4]


bambina ©   (2002-12-15 15:15:00) 

Как можно имея 2 Listbox"a делать только один selected Item?
т.е. если в одном выбран item, то при нажатии на другой Listbox Item из первого перестаёт быть selected..


Fanya   (2002-12-16 14:18:00) [1]

Просто неправильно зарегистрирован класс ListBox! Нужно выполнить алгоритм через канвас формы...


Lord Warlock   (2002-12-16 14:14:00) [2]

Ну странно, все работает и показывает...


procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if ListB.ItemIndex>-1 then
Form1.SaveDialog1.FileName:=ListB.Items[ListB.ItemIndex];
ListB.Free
end;


Form1.procedure TForm1.Button1Click(Sender: TObject);
begin
...
Form2.ShowModal;
SaveDialog1.Execute
...
end;


bambina   (2002-12-16 10:24:00) [3]

u menya vot eto ne poluchaetsya.......

Form1.SaveDialog1.FileName := listB.Items[listB.ItemIndex];
ShowMessage(Form1.SaveDialog1.FileName);

t.e. on ne zapisyvaet novoe imya v SaveBox (Form4 otkrivaetsya na
ne pravilnoe imya v stroke "filename" v savebox.. i nado umet vozmozhnost vybrat imya faila iz spiskov..


Lord Warlock   (2002-12-16 10:06:00) [4]

Так работает listb - приватный член класса формы

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if ListB.ItemIndex>-1 then
ShowMessage(ListB.Items[ListB.ItemIndex]);
ListB.Free
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
ListB:=TListBox.Create(Self);
end;

procedure TForm1.ListBox1Click(Sender: TObject);
begin
if sender=listbox1 then
begin
listbox2.ItemIndex:=-1;
listb:=ListBox1;
end
else
begin
listbox1.ItemIndex:=-1;
listb:=ListBox2;
end
end;


bambina   (2002-12-16 09:39:00) [5]

ya eto vot tak sdelala.. No ono pochemu-to na ShowMessage pokazivaet vse esche staroe znachenie?!?!? :((
I ya ne znayu pochemu..

procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);
var listB: TListBox;
begin
if (ListBox1.ItemIndex <> -1) or (ListBox2.ItemIndex <> -1) then
begin
listB:=(FindComponent("ListBox"+ num) as TListBox);
Form1.SaveDialog1.FileName := listB.Items[listB.ItemIndex];
ShowMessage(Form1.SaveDialog1.FileName);
end;
end;

procedure TForm4.ListBox1Click(Sender: TObject);
begin
num := (Sender as TListBox).Name;
Delete(num,1, length(num)-1);
if StrToInt(num) = 1 then
begin
if ListBox2.ItemIndex <> -1 then
ListBox2.ItemIndex := -1;
end
else ListBox1.ItemIndex := -1;
end;


MBo   (2002-12-15 15:28:00) [6]

общий обработчик для обоих боксов
procedure TForm1.ListBox1Click(Sender: TObject);
begin
if sender=listbox1 then
listbox2.ItemIndex:=-1
else
listbox1.ItemIndex:=-1
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо