PDA

Visualizza la versione completa : [Deplhi] Drag & Drop nei TListBox


nic_sirio
22-10-2003, 16:40
Ciao a tutti
Ho un problema con il drag & Drop dei TListBox: di default lui non fa nulla e così ho scritto io degli eventi nel "begin drag" e "end drag", il problema è che l'icona del mouse durante il dragging rimane col divieto ovunque sia, mentre se metto anche l'evento overdrag per gestire l'area corretta e non l'icona si aggiusta ma poi in realtà non mi dragga più nulla.
Questo è il codice in questione.

procedure TfrmRiordinaVariabili.lbVarStartDrag(Sender: TObject;
var DragObject: TDragObject);
begin
iOld:=lbVar.ItemIndex;
stItem:=lbVar.Items.Strings[iOld];
end;

procedure TfrmRiordinaVariabili.lbVarEndDrag(Sender, Target: TObject; X,
Y: Integer);
var
iVar: Integer;

begin
iNew:=lbVar.ItemIndex;
if iOld=iNew then
lbVar.Items.Strings[iNew]:=stItem
else if iOld>iNew then
begin
for iVar:=iOld-1 DownTo iNew do
lbVar.Items.Strings[iVar+1]:=lbVar.Items.Strings[iVar];
lbVar.Items.Strings[iNew]:=stItem;
end
else
begin
for iVar:=iOld+1 To iNew do
lbVar.Items.Strings[iVar-1]:=lbVar.Items.Strings[iVar];
lbVar.Items.Strings[iNew]:=stItem;
end;
end;

alka
22-10-2003, 20:34
Credo che il "drag and drop", in quel caso, si riferisca al controllo visuale e non al testo contenuto.

In breve, credo sia più complesso gestire il "drag and drop" della ListBox. Purtroppo, al momento non ho il tempo materiale di provare alcune soluzioni.

nic_sirio
23-10-2003, 10:44
nel caso che altra lista mi consigli? Io conosco la ListView macredo che non sia adatta per mettere in elenco verticale delle semplici stringhe...

alka
23-10-2003, 10:47
Non credo che vi sia una lista con simili funzionalità avanzate tra i componenti di Delphi.

Hai già cercato su Torry Delphi's Pages (http://www.torry.net)? Si tratta di un sito ricco di componenti e controlli visuali, molti dei quali freeware e con sorgente (FWS).

Ciao! :ciauz:

Loading