Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Чтобы ItemIndex в Listbox оставался на месте


Автор: AndreyZ53 16.8.2009, 18:11
Всем здравствуйте. Подскажите пожалуйста я в таймере все время в ListBox добавляю Items в цикле прохожу и нужные добавляю, пусть в нем каждый раз добавляется по 10 Items, но они могут быть все время разные, так вот перед тем как я добавляю, то я его ощищаю ListBox1.Clear, но когда я выделяю строку в Листбоксе через секунду оно ставит на 1 строку и так каждый раз, если листбокс не очищать, то все нормально, но оно все время добавляте Items вниз и получается что они просто напросто копируются, так вот можно как-нибудь сделать чтобы оно каждый раз новые добавляла и можно было оставить курсор на той сроке, который выделил, а не чтобы все время он на 1 сроку перемещался

Автор: Keeper89 16.8.2009, 18:28
AndreyZ53, вы знаете, что такое http://ru.wikipedia.org/wiki/%D0%97%D0%BD%D0%B0%D0%BA%D0%B8_%D0%BF%D1%80%D0%B5%D0%BF%D0%B8%D0%BD%D0%B0%D0%BD%D0%B8%D1%8F? smile

З.Ы. Нормально расскажите о проблеме, тогда думаю тут кто-то разберется.

Автор: Данкинг 16.8.2009, 18:53
Ничё не понял. smile Но для запоминания позиции есть .ItemIndex - точно знаю.

Автор: AndreyZ53 16.8.2009, 20:06
Цитата(Keeper89 @ 16.8.2009,  18:28)
AndreyZ53, вы знаете, что такое http://ru.wikipedia.org/wiki/%D0%97%D0%BD%D0%B0%D0%BA%D0%B8_%D0%BF%D1%80%D0%B5%D0%BF%D0%B8%D0%BD%D0%B0%D0%BD%D0%B8%D1%8F? smile

З.Ы. Нормально расскажите о проблеме, тогда думаю тут кто-то разберется.

Вообще-то знаю, я просто спешил.
В общем вот проект сделал, когда ставишь указатель в ListBox (выделяешь его), например на 3 Items, то оно все время скидывает его на 1 Items, так вот можно сделать так, чтобы оно его все время оставляло выделенным. И мне обязательно надо, чтобы Items добавлялись на таймере

Автор: Keeper89 16.8.2009, 20:10
Цитата(AndreyZ53 @  16.8.2009,  21:06 Найти цитируемый пост)

Присоединённый файл ( Кол-во скачиваний: 0 )
Присоединённый файл  list.rar 167,20 Kb

У Касперского паранойя или там действительно вирус?

Автор: Данкинг 16.8.2009, 20:12
Цитата(AndreyZ53 @  16.8.2009,  21:06 Найти цитируемый пост)
можно сделать так, чтобы оно его все время оставляло выделенным.

Можно: запоминай ItemIndex, а затем на него возвращайся:
Код

a:=ListBox.ItemIndex;
...
ListBox.ItemIndex:=a;

Автор: Keeper89 16.8.2009, 20:12
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

  selIndex: Integer;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
   selIndex := ListBox1.ItemIndex;
   
   ListBox1.Clear;
   ListBox1.Items.Add('111');
   ListBox1.Items.Add('222');
   ListBox1.Items.Add('333');

   ListBox1.ItemIndex := selIndex;
end;

end.

Автор: AndreyZ53 16.8.2009, 20:13
Цитата(Keeper89 @ 16.8.2009,  20:10)
Цитата(AndreyZ53 @  16.8.2009,  21:06 Найти цитируемый пост)

Присоединённый файл ( Кол-во скачиваний: 0 )
Присоединённый файл  list.rar 167,20 Kb

У Касперского паранойя или там действительно вирус?

Я незнаю, после установки компонента FWTrayIcon у меня касперский на все мои компиляции программ начинает ругаться, и тут же их лечит, я не знаю в чем проблема

Автор: Keeper89 16.8.2009, 20:13
Ну это конечно будет работать при условии, что кол-во вновь добавленных элементов не будет меньше кол-ва удаленных.

Автор: AndreyZ53 16.8.2009, 20:15
Данкинг, Keeper89  Спасибо вам большое

Автор: Данкинг 16.8.2009, 20:18
Цитата(Keeper89 @  16.8.2009,  21:10 Найти цитируемый пост)
У Касперского паранойя 

Да. smile 

Цитата(Keeper89 @  16.8.2009,  21:10 Найти цитируемый пост)
или там действительно вирус?

Нет. smile 

Цитата(AndreyZ53 @  16.8.2009,  21:13 Найти цитируемый пост)
я не знаю в чем проблема 

В Касперском. smile

Добавлено через 49 секунд
Цитата(AndreyZ53 @ 16.8.2009,  21:15)
Данкинг, Keeper89  Спасибо вам большое

Ну, мне-то особо не за что. smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)