//---------------------------------------------------------------------------

#include <vcl.h>                                    
#include <math.h>
#pragma hdrstop

#include "SelectMod_Param.h"
//#include "Get_Pos_SectUnit.h"
#include "Data_Gen.h"
#include "message.h"
//#include "draw_geom_Unit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TSelectMod_ParamForm *SelectMod_ParamForm;
int index_choice[MAX_ADD_SECT];
int  list_index_type[MAX_ADD_SECT];  // список индексов типов сечений списка
int  list_index_order[MAX_ADD_SECT];  // список порядковых номеров сечений, помещенных в список для выбора


int  index_select_type;  // индекс типа выбираемых сечений

static int n_main, n_add;


//---------------------------------------------------------------------------
__fastcall TSelectMod_ParamForm::TSelectMod_ParamForm(TComponent* Owner)
        : TForm(Owner)
{
       flag_MultiSelect = false;

}
//---------------------------------------------------------------------------
void __fastcall TSelectMod_ParamForm::FormShow(TObject *Sender)
{
    int i;

    if  (ListBox1->MultiSelect || flag_MultiSelect) {
        Button_Select_All->Enabled = true;
        ListBox1->MultiSelect = true;
    }
    else
        Button_Select_All->Enabled=false;


    n_main = 0;
    n_add = 0;
    for (i=0; i<ListBox1->Items->Count; i++) {
       if (list_index_type[i]==nMAIN_SECT) {
         n_main++;
         continue;
       }
       if (list_index_type[i]==nADD_SECT) {
         n_add++;
         continue;
       }
    }
}
//---------------------------------------------------------------------------
void __fastcall TSelectMod_ParamForm::Button_OKClick(TObject *Sender)
{
      int i,k;

      for (i=0,k=0; i<ListBox1->Items->Count; i++) {
          if (ListBox1->Selected[i])  {
              index_choice[k]=i;
              k++;
          }
      }
      index_choice[k]=-1;
      index_select_type=NULL_SECT;
      Close();
}
//---------------------------------------------------------------------------

void __fastcall TSelectMod_ParamForm::Button_CancelClick(TObject *Sender)
{
	index_choice[0]=-1;
	Close();
}
//---------------------------------------------------------------------------

void __fastcall TSelectMod_ParamForm::ListBox1Click(TObject *Sender)
{
      int i, k, rc;
      int index_type[MAX_ADD_SECT];

      for (i=0, k=0; i<ListBox1->Items->Count; i++) {
        if (ListBox1->Selected[i])  {
           index_choice[k] = list_index_order[i];  // порядковый номер сечения
           index_type[k] = list_index_type[i];  // порядковый номер сечения
           k++;
        }
      }
      index_choice[k]=-1;

}
//---------------------------------------------------------------------------
void __fastcall TSelectMod_ParamForm::Button_Select_AllClick(TObject *Sender)
{
	  int i, rc;

	  for (i=0; i<ListBox1->Items->Count; i++)
			index_choice[i]=i;
	  index_choice[i]=-1;
	  index_select_type=NULL_SECT;
	  Close();
}
//---------------------------------------------------------------------------

void __fastcall TSelectMod_ParamForm::FormClose(TObject *Sender,
      TCloseAction &Action)
{
     ListBox1->MultiSelect = false;
     flag_MultiSelect = false;
}
//---------------------------------------------------------------------------

