02-08-2018, Saat: 10:58
Selamün aleyküm.
İki faklı listviewler arası drag and dpor ile insert işlemi gerçekleştiriyorum.
İlk eklediğim indexlerde herhangi bir hata oluşturmuyor. Fakat araka, arkaya farklı indexleri ekleme istediğimde, benim seçtiğim değilde faklı bir index ekliyor bu durumu nasıl çözebilirim?
Saygılarımla.
İki faklı listviewler arası drag and dpor ile insert işlemi gerçekleştiriyorum.
İlk eklediğim indexlerde herhangi bir hata oluşturmuyor. Fakat araka, arkaya farklı indexleri ekleme istediğimde, benim seçtiğim değilde faklı bir index ekliyor bu durumu nasıl çözebilirim?
Saygılarımla.
function GetIndexAtPos(LV: TListView; TP: TPointF): Integer; var I: Integer; TR: TRectF; begin Result := -1; for I := 0 to LV.Items.Count - 1 do begin TR := LV.GetItemRect(I); if TR.Contains(TP) then begin Result := I; Break; end; end; end; procedure TForm1.ListPDragDrop(Sender: TObject; const [Ref] Data: TDragObject; const [Ref] Point: TPointF); var Obj: IControl; Plx, Pgx: Integer; begin Obj := ObjectAtPoint(Screen.MousePos); if Obj <> Nil then begin Plx := GetIndexAtPos(ListP, Point); Pgx := GetIndexAtPos(ListL, Point); if Plx <> -1 then begin ListP.Items.Insert(Plx); ListP.Items[Plx].Data['Metre'] := ListL.Items[Pgx].Data['Metre'].ToString; end; end; end; procedure TForm1.ListPDragOver(Sender: TObject; const [Ref] Data: TDragObject; const [Ref] Point: TPointF; var Operation: TDragOperation); begin Operation := TDragOperation.Move; end;

