Форум: "Основная";
Текущий архив: 2002.12.16;
Скачать: [xml.tar.bz2];
ВнизTListBox Найти похожие ветки
← →
Oleg__ (2002-12-06 11:16) [0]Как в компоненте TListBox сделать так, чтобы можно было "взять" мышкой какую-либо строку и перенести на другую позицию (drag&drop)?
← →
Skier (2002-12-06 11:19) [1]>Oleg__
см. DragMode, OnDragOver, OnDragDrop
← →
MBo (2002-12-06 11:22) [2]если не получится, см. Статьи
← →
Oleg__ (2002-12-06 11:27) [3]Спасибо, мужики, пороюсь обязательно. Вот время бы найти :)
← →
Oleg__ (2002-12-06 11:50) [4]Все, разобрался :)))
int BegDrag, // начальная позиция
p; // позиция в ходе перемещения
//-------------------------------------------------------
void __fastcall TForm1::ListBox1DragOver(TObject *Sender, TObject *Source,
int X, int Y, TDragState State, bool &Accept)
{
Accept = Source->ClassNameIs("TListBox");
TListBox * lbx = dynamic_cast<TListBox*>(Sender);
p = lbx->ItemAtPos(Point(X,Y), true);
lbx->ItemIndex = p;
}
//-------------------------------------------------------
void __fastcall TForm1::ListBox1DragDrop(TObject *Sender, TObject *Source,
int X, int Y)
{
if (Sender->ClassNameIs("TListBox"))
{
TListBox * lbx = dynamic_cast<TListBox*>(Sender);
String s = lbx->Items->Strings[BegDrag];
lbx->Items->Delete(BegDrag);
lbx->Items->Insert(p, s);
}
}
//-------------------------------------------------------
void __fastcall TForm1::ListBox1StartDrag(TObject *Sender,
TDragObject *&DragObject)
{
TListBox * lbx = dynamic_cast<TListBox*>(Sender);
BegDrag = lbx->ItemIndex;
}
//-------------------------------------------------------
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.12.16;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.007 c