![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Товарищи! Помогите решить проблему!!! Суть такова - надо в элемент listbox, помимо отображаемой надписи, записать целое число чтобы в последствии считать его из элемента через ItemIndex.
Подробнее: есть listbox, строки которого заполняются циклом из книги excel, и image, в котором в зависимости от listbox.itemindex отображается определённое изображение. Необходимо записать номер строки excel, из которой заполняется listbox.item, в этот item, чтобы потом в методе image.picture.loadfromfile можно было обратиться к ячейке содержащей имя файла. Погуглил, почитал, вроде можно это осуществить используя listBox.items.addobject. Попробовал - listbox всё также заполняется, но что-то число толи не записывается толи у мну ручки кривые, что я не могу его извлечь... Буду премного благодарен за любую помощь/советы всем откликнувшимся, дело оч срочное!!! Ниже прилагаю код: Код:
unit Unit3; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, jpeg, ComObj, StdCtrls; type TForm3 = class(TForm) ListBox1: TListBox; Button1: TButton; Button2: TButton; Image1: TImage; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; procedure Button2Click(Sender: TObject); procedure FormShow(Sender: TObject); procedure ListBox1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form3: TForm3; implementation uses unit1, unit2; var x,i : integer; {$R *.dfm} procedure TForm3.Button2Click(Sender: TObject); begin Form3.Close; Form2.Show; end; procedure TForm3.FormShow(Sender: TObject); begin if Form1.RadioGroup1.ItemIndex=0 then for i:=2 to Sheet2.UsedRange.Rows.Count do ListBox1.Items.Add(Sheet2.Cells[i,1]) else for i:=2 to Sheet2.UsedRange.Rows.Count do if Sheet2.Cells[i,Form1.RadioGroup1.ItemIndex + 2].Value=1 then ListBox1.Items.AddObject(Sheet2.Cells[i,1], TObject(i)); end; procedure TForm3.ListBox1Click(Sender: TObject); begin Button1.Enabled:=True; x:=Integer(ListBox1.Items.Objects[Listbox1.ItemIndex]); Label4.Caption:=Inttostr(x); // Image1.Picture.LoadFromFile(Sheet2.Cells[x, 2]); Edit1.Text:=Sheet2.Cells[ListBox1.ItemIndex+2, 3]; Edit2.Text:=Sheet2.Cells[ListBox1.ItemIndex+2, 4]; end; end. Последний раз редактировалось Admin, 29.06.2010 в 21:22. |