
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);
}
rzutowanie typów, przypisanie polimorficzne.
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 3 gości