⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 packdlgs.cpp

📁 InfoPower_Studio 2007 v5.0.1.3 banben
💻 CPP
字号:
//---------------------------------------------------------------------------
#include <vcl\vcl.h>
#include <vcl\dbtables.hpp>
#pragma hdrstop

#include "Packdlgs.h"
//---------------------------------------------------------------------------
#pragma resource "*.dfm"
TGetTablesForm *GetTablesForm;
//---------------------------------------------------------------------------
__fastcall TGetTablesForm::TGetTablesForm(TComponent* Owner)
  : TForm(Owner)
{
}
//---------------------------------------------------------------------------
Boolean __fastcall wwGetTablesDlg(String *databaseName,TStrings *tableNames)
{
   int i;
   int thisIndex;
   TGetTablesForm *NewForm;
   Boolean Result;

   NewForm = new TGetTablesForm(Application);

   Session->GetDatabaseNames(NewForm->DBListBox->Items);
   NewForm->DBListBox->ItemIndex = NewForm->DBListBox->Items->IndexOf(*databaseName);
   thisIndex = NewForm->DBListBox->ItemIndex;

   if (thisIndex >= 0) {
      NewForm->TableListBox->Clear();
      Session->GetTableNames(NewForm->DBListBox->Items->Strings[NewForm->DBListBox->ItemIndex],
             "", True, False, NewForm->TableListBox->Items);

      // { remove tableNames form list }
      String temp;
      for (i= 0;i<=tableNames->Count-1;i++) {
         temp = tableNames->Strings[i];
         NewForm->SelectedTables->Items->Add(temp);
         thisIndex = NewForm->TableListBox->Items->IndexOf(temp);
         NewForm->TableListBox->Items->Delete(thisIndex);
      }
   }

   Result = (NewForm->ShowModal() == IDOK);

   if (Result) {
      *databaseName = NewForm->DBListBox->Items->Strings[NewForm->DBListBox->ItemIndex];
      tableNames->Assign(NewForm->SelectedTables->Items);
   }

   NewForm->Free();
   return(Result);
}

void __fastcall TGetTablesForm::IncludeItems()
{
   int LastPicked;
   int I = 0;
   while (I < TableListBox->Items->Count)
   {
      bool val = (TableListBox->Selected[I]);
      if (val && (!InDestList(TableListBox->Items->Strings[I])))
      {
         LastPicked = I;
         SelectedTables->Items->Add(TableListBox->Items->Strings[I]);

         TableListBox->Items->Delete(I); // {comment out to Copy items instead of Move}
      }
      else I++;
   }
   if (TableListBox->Items->Count > 0)
   {
      if (LastPicked == TableListBox->Items->Count)
         TableListBox->Selected[LastPicked-1] = True;
      else
         TableListBox->Selected[LastPicked] = True;
   }
}

void __fastcall TGetTablesForm::ExcludeItems()
{
   int I=0;

   while (SelectedTables->SelCount >0)
   {
      if (SelectedTables->Selected[I])
      {
         TableListBox->Items->Add(SelectedTables->Items->Strings[I]);
         SelectedTables->Items->Delete(I); // {comment out to Copy items instead of Move}
      }
      else I++;
   }
   ExcludeBtn->Enabled = False;
   if (SelectedTables->Items->Count != 0)
      SelectedTables->ItemIndex = 0;
   SelectDest(I);
}

//---------------------------------------------------------------------------
Boolean __fastcall TGetTablesForm::InDestList(String Value)
{
   return (SelectedTables->Items->IndexOf(Value) > -1);
}

//---------------------------------------------------------------------------
Boolean __fastcall TGetTablesForm::InSrcList(String Value)
{
   return (TableListBox->Items->IndexOf(Value) > -1);
}

//---------------------------------------------------------------------------
void __fastcall TGetTablesForm::SelectDest(int index)
{
   if (SelectedTables->Items->Count==0) index = -1;

   if (index>=0) {
      if ((SelectedTables->Items->Count>0) && (index >= SelectedTables->Items->Count))
         index = SelectedTables->Items->Count-1; //{Limit to range }
      if (!SelectedTables->Selected[index])
         SelectedTables->Selected[index] = True;

      ExcludeBtn->Enabled = True;
   }
}

//---------------------------------------------------------------------------
void __fastcall TGetTablesForm::SelectedTablesClick(TObject *Sender)
{
   SelectDest(SelectedTables->ItemIndex);
}

//---------------------------------------------------------------------
void __fastcall TGetTablesForm::DBListBoxChange(TObject *Sender)
{
   int lastIndex = DBListBox->ItemIndex;
   TableListBox->Clear();
   Session->GetTableNames(DBListBox->Items->Strings[DBListBox->ItemIndex],"", True, False,
       TableListBox->Items);
   SelectedTables->Items->Clear();
   DBListBox->ItemIndex = lastIndex;
}

//---------------------------------------------------------------------
void __fastcall TGetTablesForm::TableListBoxDblClick(TObject *Sender)
{
   int LastPicked;

   if (TableListBox->ItemIndex<0) return;

   if (!InDestList(TableListBox->Items->Strings[TableListBox->ItemIndex]))
   {
      LastPicked = TableListBox->ItemIndex;
      SelectedTables->Items->Add(TableListBox->Items->Strings[TableListBox->ItemIndex]);
      TableListBox->Items->Delete(TableListBox->ItemIndex); //{comment out to Copy items instead of Move}
   }

   if (TableListBox->Items->Count > 0)
   {
      if (LastPicked == TableListBox->Items->Count)
        TableListBox->Selected[LastPicked-1] = True;
      else
        TableListBox->Selected[LastPicked] = True;
   }
}

//---------------------------------------------------------------------
void __fastcall TGetTablesForm::SelectedTablesDblClick(TObject *Sender)
{
   int LastPicked;

   if (SelectedTables->ItemIndex<0) return;

   if (!InSrcList(SelectedTables->Items->Strings[SelectedTables->ItemIndex]))
   {
      LastPicked = SelectedTables->ItemIndex;
      TableListBox->Items->Add(SelectedTables->Items->Strings[SelectedTables->ItemIndex]);
      SelectedTables->Items->Delete(SelectedTables->ItemIndex); //{comment out to Copy items instead of Move}
   }

   if (SelectedTables->Items->Count > 0)
   {
      if (LastPicked == SelectedTables->Items->Count)
         SelectedTables->Selected[LastPicked-1] = True;
      else
         SelectedTables->Selected[LastPicked] = True;
   }
}

//---------------------------------------------------------------------
void __fastcall TGetTablesForm::IncludeBtnClick(TObject *Sender)
{
   IncludeItems();
}
//---------------------------------------------------------------------
void __fastcall TGetTablesForm::ExcludeBtnClick(TObject *Sender)
{
   ExcludeItems();
}
//---------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -