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

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

ListBox [D7, XP]


Blari ©   (2006-05-26 00:48:00) 

У меня есть форма, там ListBox и Edit1
По нажатию на кнопку в ListBox добавляется содержание Edit1.
Требуется чтобы то что добавлялось в ListBox нумеровалось (Пример: 1) Бла бла. 2) Бла бла)
Добавляю вот так
ListBox1.Items.Insert(ListBox1.ItemIndex, Edit1.Text);


MsGuns   (2006-05-26 09:58:00) [1]

>antonn ©   (26.05.06 06:48) [10]

Стильно ;))


Loginov Dmitry   (2006-05-26 09:51:00) [2]

antonn ©   (26.05.06 6:48) [10]

А самое главное где?

Style = lbOwnerDrawVariable


antonn   (2006-05-26 06:48:00) [3]

нафиг счетчик и инкрементатор:
procedure TForm1.ListBox1DrawItem(Control: TWinControl;
 Index: Integer; Rect: TRect; State: TOwnerDrawState);
var strTemp:string;
begin
With ( Control As tListBox ).Canvas Do  Begin
     FillRect(Rect);      
     TextOut(Rect.Left, Rect.Top+((Rect.Bottom-Rect.Top)-TextHeight('1A')) div 2,' '+inttostr( index+1 )+'. '+( Control As TListBox ).Items[index] );
End;
end;


Blari   (2006-05-26 01:12:00) [4]

Извиняюсь, разобрался.
Спасибо за аперативность


Blari   (2006-05-26 01:05:00) [5]

Не понимаю, делаю все как было сказано (ListBox1.Items.Insert(ListBox1.ItemIndex, IntToStr(ListBox1.ItemIndex)+Edit1.Text);), а результат нулевой.


Blari   (2006-05-26 01:01:00) [6]


> Твой код добавляет элемент перед выделенной строкой в листбоксе.
>  Add добавляет в конец списка. А что именно нужно — тебе
> виднее :)

Вот и я о том же :)


Джо   (2006-05-26 00:59:00) [7]

> [2] Blari   (26.05.06 00:57)
> А есть принципиальная разница?

Твой код добавляет элемент перед выделенной строкой в листбоксе. Add добавляет в конец списка. А что именно нужно — тебе виднее :)


Галинка   (2006-05-26 00:59:00) [8]

Ой... Извиите, конечно
ListBox1.Items.Insert(ListBox1.ItemIndex, IntToStr(Buttoт1.Tag)+')  '+Edit1.Text);


Blari   (2006-05-26 00:59:00) [9]


> А почему Insert, а не Add?

Я использую определенное место вставки, думал удобнее будет через Insert


Blari   (2006-05-26 00:57:00) [10]

А есть принципиальная разница?


Галинка   (2006-05-26 00:57:00) [11]

что использовать в качестве номера?

1) индекс строки в которую вставляешь
ListBox1.Items.Insert(ListBox1.ItemIndex, IntToStr(ListBox1.ItemIndex)+Edit1.Text);

2) номер связан с нажатием кнопки: заводишь какой-нибудь сторонний счетчик нажатий на кнопку (например, в свойстве Tag кнопки) и
ListBox1.Items.Insert(ListBox1.ItemIndex, IntToStr(Butto1.Tag)+Edit1.Text);

А почему Insert, а не Add?


Джо   (2006-05-26 00:54:00) [12]

Заводишь счетчик с нужной степенью глобальности. Инкрементируешь при каждом добавлении. Добавляешь:
ListBox1.Items.Insert(ListBox1.ItemIndex, IntToStr(Counter) + ': ' + Edit1.Text);

P.S. А ты уверен, что тебе нужен Insert, а не Add?


Наверх

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