Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.06.2010, 16:53
Аватар для Che Bureque
Che Bureque Che Bureque вне форума
Прохожий
 
Регистрация: 23.05.2010
Сообщения: 3
Репутация: 10
Вопрос Добавление скрытого значения в элемент 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.
Admin: Учимся пользоваться тенами!

Последний раз редактировалось Admin, 29.06.2010 в 21:22.
Ответить с цитированием
  #2  
Старый 29.06.2010, 19:26
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,097
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Код:
var
  N : Integer;
begin
  ListBox1.Items.AddObject('Заголовок',TObject(34));
  ...
  N := Integer(ListBox1.Items.Objects[ListBox1.ItemIndex]);
Ответить с цитированием
  #3  
Старый 29.06.2010, 20:53
Аватар для Che Bureque
Che Bureque Che Bureque вне форума
Прохожий
 
Регистрация: 23.05.2010
Сообщения: 3
Репутация: 10
По умолчанию

В коде так и реализовано, только вместо "N" задано "x", но всё равно спасибо за отклик!
Решил проблему заменой TObject() на Pointer():
Цитата:
ListBox1.Items.AddObject('СТРОКА', Pointer(ЧИСЛО)); //добавление элемента в ListBox

var S:string;
N:integer;

S:=ListBox1.Items.Strings[Index]; //обращение к строке
N:=integer(ListBox1.Items.Objects[Index]); //обращение к числу

Последний раз редактировалось Che Bureque, 29.06.2010 в 21:35.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:18.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025