Esempio n. 1
0
void __fastcall TfrmSearch::lvParamsDragDrop(TObject *Sender,
      TObject *Source, int X, int Y)
{
  TListItem * SourItem = lvParams->Selected;
  TListItem * DestItem = lvParams->GetItemAt(X,Y);
  TListItem * TempItem = lvParams->Items->Add();
  TempItem->Assign(SourItem);
  SourItem->Assign(DestItem);
  DestItem->Assign(TempItem);
  lvParams->Items->Delete(TempItem->Index);
}
void __fastcall TfrmReplaceRule::lvReplaceRulesDragDrop(TObject *Sender,
      TObject *Source, int X, int Y)
{
  TListItem * DestItem = lvReplaceRules->GetItemAt(X,Y);
  TListItem * Item     = lvReplaceRules->Selected;
  TListItem * NewItem  = lvReplaceRules->Items->Insert(DestItem->Index);
  NewItem->Assign(Item);
  lvReplaceRules->Items->Delete(Item->Index);
}
void __fastcall TfrmBillFormat::lvFieldsDragDrop(TObject *Sender,
      TObject *Source, int X, int Y)
{
  TListItem * DestItem = lvFields->GetItemAt(X,Y);
  TListItem * Item     = lvFields->Selected;
  int SourIndex,DestIndex;
  SourIndex = Item->Index;
  DestIndex = DestItem->Index;
  TListItem * NewItem;
  if(SourIndex < DestIndex)
    NewItem  = lvFields->Items->Insert(DestIndex + 1);
  else
    NewItem  = lvFields->Items->Insert(DestIndex);
  NewItem->Assign(Item);
  _di_IXMLNode RecordNode = BillConfig->GetRecordNode(BillName);
  _di_IXMLNode SourNode   = BillConfig->GetFieldNode(BillName,Item->SubItems->Strings[0]);
  _di_IXMLNode DestNode   = BillConfig->GetFieldNode(BillName,DestItem->SubItems->Strings[0]);
  _di_IXMLNode TmpNode    = SourNode->CloneNode(true);
  //RecordNode->ChildNodes->Remove(DestNode);
  //RecordNode->ChildNodes->Insert(DestIndex,TmpNode);

  RecordNode->ChildNodes->Remove(SourNode);
  RecordNode->ChildNodes->Insert(DestIndex,TmpNode);
  lvFields->Items->Delete(Item->Index);
/*
  TListItem * DestItem = lvFields->GetItemAt(X,Y);
  TListItem * Item     = lvFields->Selected;
  int OldIndex = Item->Index;
  TListItem * NewItem  = lvFields->Items->Insert(DestItem->Index);
  int NewIndex = NewItem->Index;
  if(OldIndex < NewIndex)
    NewIndex -= 1;
  _di_IXMLNode RecordNode   = BillConfig->GetRecordNode(BillName);
  _di_IXMLNode OldFieldNode = BillConfig->GetFieldNode(BillName,Item->SubItems->Strings[0]);
  _di_IXMLNode NewFieldNode = OldFieldNode->CloneNode(true);
  RecordNode->ChildNodes->Delete(OldIndex);
  RecordNode->ChildNodes->Insert(OldIndex,NewFieldNode);

  NewItem->Assign(Item);
  lvFields->Items->Delete(Item->Index);
*/
}
void __fastcall TfrmBillConfig::lvBillsDragDrop(TObject *Sender,
      TObject *Source, int X, int Y)
{
  TListItem * DestItem = lvBills->GetItemAt(X,Y);
  TListItem * Item     = lvBills->Selected;
  int SourIndex,DestIndex;
  SourIndex = Item->Index;
  DestIndex = DestItem->Index;
  TListItem * NewItem;
  if(SourIndex < DestIndex)
    NewItem  = lvBills->Items->Insert(DestIndex + 1);
  else
    NewItem  = lvBills->Items->Insert(DestIndex);
  NewItem->Assign(Item);
  _di_IXMLNode SourNode  = BillConfig->GetBillNode(Item->SubItems->Strings[0]);
  _di_IXMLNode TmpNode   = SourNode->CloneNode(true);

  BillConfig->BillRootNode->ChildNodes->Remove(SourNode);
  BillConfig->BillRootNode->ChildNodes->Insert(DestIndex,TmpNode);
  lvBills->Items->Delete(Item->Index);
}