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

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

ItemIndex


Bobby Digital ©   (2004-11-28 13:12:00) 

какое событие которое возникает при выделении элемента в Listbox


OneFragLeft   (2004-11-28 15:58:00) [1]

Ну и слава Borlandу Великому и Ужасному.


Bobby Digital   (2004-11-28 15:53:00) [2]

да работает сасибо ...


OneFragLeft   (2004-11-28 15:14:00) [3]

Так, что пока не меняется текущий индекс нифига ни происходит.


OneFragLeft   (2004-11-28 15:13:00) [4]

Габотает?
Просто тут волшебное слово надо было:
if i<>indxthen
begin
 ListBox1.Items.Strings[i]:=Buff;
 ListBox1.Items.Strings[Indx]:=B;
end;


Bobby Digital   (2004-11-28 15:12:00) [5]

хе ;)


OneFragLeft   (2004-11-28 14:58:00) [6]

Возможно не очень красиво, но работает.

var
 Form1: TForm1;
 Buff: String;
 Indx:Integer;
implementation

{$R *.dfm}

procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 Buff:=ListBox1.Items.Strings[ListBox1.ItemIndex];
 Indx:=ListBox1.ItemIndex;
end;

procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
var B:String;I:Integer;
begin
if shift=[ssLeft] then
begin
 B:=ListBox1.Items.Strings[ListBox1.ItemIndex];
 I:=ListBox1.ItemIndex;
 if i<>indx then
 begin
  ListBox1.Items.Strings[i]:=Buff;
  ListBox1.Items.Strings[Indx]:=B;
 end;
 Buff:=b;
 Indx:=i;
end;
end;


Не судите строго:)


Bobby Digital   (2004-11-28 13:54:00) [7]

нет эт тоже не то :( - там вообщем идея такая ты зажимаешь кнопку на элементе Листбокса и менять строки местами перетягиванием, вот ... сама процедура работает отлично с помощью MouseDown MouseUP, но хочется чтоб строки менятить местами не по событию  MouseDown, а по выделению каждого нового элемета ...
а MouseMove я и сам пробывал ... вороде получается но настолько быстро, "дерганно" и тд. вообщем MouseMove не походит, но все равно спасибо за совет ;)


OneFragLeft   (2004-11-28 13:39:00) [8]

procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
begin
if  mouse.DragImmediate then
 form1.Caption:=(inttostr(ListBox1.ItemIndex));
end;
Вот так.


Bobby Digital   (2004-11-28 13:31:00) [9]

нет не это ... вот, например, ты зажимаешь кнопку мыши и возишь по Listbox, и при переходе на каждую новую строку при зажатой кнопе мыши выполнялось действие


OneFragLeft   (2004-11-28 13:25:00) [10]

MouseDown.

А у ListBox есть св-во ItemIndex.


procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
showmessage(inttostr( ListBox1.ItemIndex));
end;


Это надо было?


Наверх

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