Вниз
Скачать: CL | DM;

В TListBox с помощью мыши поменять Items   Найти похожие ветки 

← →
Andrey K   (2010-09-01 22:58) [0]

Доброго времени суток. Подскажите, как в TListBox с помощью мыши поменять Items, т. е. одну позицию перетащить в другую (была десятая, стала вторая). Или другой компонент более подходящих для этой операции.


← →
dzmitry_loktseu   (2010-09-01 23:33) [1]

если не заморачиваться, то можно так:


private
  Fidx: Integer;



procedure TForm1.ListBox1MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 if Button = mbLeft then
   with TListBox(Sender) do
     FIdx := ItemIndex;
end;

procedure TForm1.ListBox1MouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
   if Button = mbLeft then
     with TListBox(Sender) do
       Items.Move(Fidx, ItemIndex);
end;


← →
sniknik ©   (2010-09-01 23:53) [2]

да и так вроде заморочек не особо...

procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
var
 i, n: integer;
begin
 with TListBox(Sender) do begin
   i:= ItemAtPos(Point(X, Y), true);
   n:= ItemIndex;
 end;
 Accept:= (Sender = Source) and (i >= 0) and (n >= 0) and (i<>n);
end;

procedure TForm1.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
 with ListBox1 do
   Items.Move(ItemIndex, ItemAtPos(Point(X, Y), true));
end;


ну еще в дизайне драгмоде в "автомат" поставить.


← →
Andrey K   (2010-09-02 00:07) [3]

Спасибо за подсказку ):



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.004 c
15-1281190075
Кэти
2010-08-07 18:07
2010.11.21
Как отключить редирект


4-1239955786
Дмитрий
2009-04-17 12:09
2010.11.21
Найти окно по классу (для всех пользовательских сессий)


15-1281519043
@!!ex
2010-08-11 13:30
2010.11.21
Можно ли доверять им?


15-1281510965
AlexDn
2010-08-11 11:16
2010.11.21
Движок Вконтакте


3-1242624205
Константин
2009-05-18 09:23
2010.11.21
Interbase - работа по сети




   Наверх