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

Мастера вот в статьях есть пример DragDrop для ListViw   Найти похожие ветки 

 
Vt   (2003-08-11 08:09) [0]

я его немного изменил так как нужно вести перенос только
в один ListViw
Начну с кода
procedure TForm1.ListView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
Item, CurItem: TListItem;
begin
CurItem := ListView1.Selected;
Item := ListView1.GetItemAt(x, y);
if Item <> nil then
Item := ListView1.Items.Insert(Item.Index)
else
Item := ListView1.Items.Add;
Item.Assign(CurItem);
CurItem.Free;
end;

//Здесь заперетил перенос если итемов менее 2
procedure TForm1.ListView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
If ListView1.Items.Count<2 Then Accept:=False;
end;
Вопрос в том что этот код в моем случае не работает
например беру любую строку тащу а она все время добавляется во вторую строчку, после добавления перенос вообще не работает, чтобы не изобретать велосипед подскажите где я маху дал или может есть пример.


 
Vt   (2003-08-11 09:18) [1]

Уточню
после добавления перенос вообще не работает
работает.

например беру любую (последнюю меняю с предпоследней)строку тащу а она все время добавляется во вторую строчку из-за Item.Assign(CurItem);


 
Vt   (2003-08-11 09:51) [2]

Вообщето я написал обработчик DragDrop простой сменой Caption,ImageIndex и величин Чекетов, но все же хотелось услышать мнение мастеров почему код выше не работает.


 
Семен Сорокин ©   (2003-08-11 10:28) [3]

2Vt
так ты присваивай объект на OnDragOver, а не на OnDragDrop.

procedure TForm1.ListView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
var
Item, CurItem: TListItem;
begin
Accept := ListView1.Items.Count>1;
if Accept then begin
CurItem := ListView1.Selected;
Item := ListView1.GetItemAt(x, y);
if Assigned(Item) then
Item := ListView1.Items.Insert(Item.Index)
else
Item := ListView1.Items.Add;
Item.Assign(CurItem);
CurItem.Free
end
end;



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

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



Память: 0.45 MB
Время: 0.013 c
3-81577
николай
2003-07-30 12:32
2003.08.25
как сделать кнопку


14-81887
vidiv
2003-08-08 03:13
2003.08.25
Как XP активировать?


4-82007
Jao
2003-06-18 16:24
2003.08.25
Как можно узнать хендл приложения, который весит в трее?


3-81587
stud
2003-07-29 11:39
2003.08.25
тип времени в бд


1-81805
GameBoy
2003-08-12 20:55
2003.08.25
OleExcel.pas




   Наверх