private:
     void __fastcall Drag_and_Drop(TObject *Source, TListBox *ListBox); // nazwa funkcji dowolna
Â
void __fastcall TForm1::Drag_and_Drop(TObject *Source, TListBox *ListBox)
{
  int index = dynamic_cast<TListBox *>(Source)->ItemIndex;
  ListBox->Items->Add(dynamic_cast<TListBox *>(Source)->Items->Strings[index]);
}
Â
void __fastcall TForm1::ListBox1DragOver(TObject *Sender, TObject *Source, int X,
          int Y, TDragState State, bool &Accept)
{
 Accept = Source->ClassNameIs("TListBox");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ListBox2DragOver(TObject *Sender, TObject *Source, int X,
          int Y, TDragState State, bool &Accept)
{
 Accept = Source->ClassNameIs("TListBox");
}
Â
void __fastcall TForm1::ListBox1DragDrop(TObject *Sender, TObject *Source, int X,
          int Y)
{
 Drag_and_Drop(Source, ListBox1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ListBox2DragDrop(TObject *Sender, TObject *Source, int X,
          int Y)
{
 Drag_and_Drop(Source, ListBox2);
}
Â
void __fastcall TForm1::Drag_and_Drop(TObject *Source, TListBox *ListBox)
{
 int index = dynamic_cast<TListBox *>(Source)->ItemIndex;
 ListBox->Items->Add(dynamic_cast<TListBox *>(Source)->Items->Strings[index]);
 dynamic_cast<TListBox *>(Source)->Items->Delete(index);
}
Â
void __fastcall TForm1::ListBox1DragOver(TObject *Sender, TObject *Source, int X,
          int Y, TDragState State, bool &Accept)
{
 String nameClass = dynamic_cast<TListBox *>(Sender)->ClassName();
 Accept = Source->ClassNameIs(nameClass);
}
Â
void __fastcall TForm1::ListBox1DragDrop(TObject *Sender, TObject *Source, int X,
          int Y)
{
 Drag_and_Drop(Source, dynamic_cast<TListBox *>(Sender));
}
Â
private:
    int nrRow, index;
Â
// PRZESUWANIE MYSZKĄ ELEMENTÓW LISTY
void __fastcall TForm1::ListBox1MouseDown(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y)
{
 if(Button == mbRight)
 {
  dynamic_cast<TListBox *>(Sender)->DragMode = dmManual;
 Â
  POINT pt;
  pt.x = X;
  pt.y = Y;
  nrRow = dynamic_cast<TListBox *>(Sender)->ItemAtPos(pt, true);
  dynamic_cast<TListBox *>(Sender)->ItemIndex = nrRow;
 }
 else dynamic_cast<TListBox *>(Sender)->DragMode = dmAutomatic;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ListBox1MouseMove(TObject *Sender, TShiftState Shift,
          int X, int Y)
{
  POINT pt;
  pt.x = X;
  pt.y = Y;
  index = dynamic_cast<TListBox *>(Sender)->ItemAtPos(pt, true);
  dynamic_cast<TListBox *>(Sender)->ItemIndex = index;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ListBox1MouseUp(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y)
{
 if(Button == mbRight)
 {
  if(dynamic_cast<TListBox *>(Sender)->ItemIndex > -1)
  dynamic_cast<TListBox *>(Sender)->Items->Move(nrRow, index);
  dynamic_cast<TListBox *>(Sender)->ItemIndex = index;
 }
Â
 dynamic_cast<TListBox *>(Sender)->DragMode = dmAutomatic;
}
Â
Powrót do Biblioteki i komponenty
Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 2 gości