Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2010, 17:40   #1
4e6ypek
Новичок
Джуниор
 
Регистрация: 29.06.2010
Сообщений: 1
Вопрос Добавление скрытого значения в элемент listbox

Товарищи! Помогите решить проблему!!! Суть такова - надо в элемент 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.

Последний раз редактировалось Stilet; 30.06.2010 в 09:57.
4e6ypek вне форума Ответить с цитированием
Старый 30.06.2010, 10:02   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
x:=Integer(ListBox1.Items.Objects[Listbox1.ItemIndex]);
Проверил. Вполне верный результат.
Вот попробуй простенькое:
Код:
procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
 for i:=1 to 5 do
  ListBox1.AddItem(IntToStr(i),tobject(i*2));
end;

procedure TForm1.ListBox1Click(Sender: TObject);
begin
 Caption:=IntToStr(integer(ListBox1.Items.Objects[ListBox1.itemindex]));
end;
Сработает?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Элемент управления ListBox Syuf Общие вопросы C/C++ 2 26.06.2010 13:24
Добавление пунктов в ListBox AdvanceQ Общие вопросы Delphi 3 08.01.2010 21:06
VB Помогите вывести названия блюд в элемент ListBox talisman-ydachi Помощь студентам 2 10.10.2009 19:28
Построчное добавление в ListBox nikolai_P Microsoft Office Excel 0 18.08.2009 12:16