Скачиваний:
30
Добавлен:
01.05.2014
Размер:
3 Кб
Скачать
unit FilterModule;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Filter, NominalToBinary, Discretize, Instances,
  BaseModule, Core, ForFilt;

type
    TFormFilter = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    ComboBox1: TComboBox;
    Button1: TButton;
    Edit1: TEdit;
    ComboBox2: TComboBox;
    Edit2: TEdit;
    procedure hide_unhide(Sender: TObject);
    procedure btnclicked(Sender: TObject);
  private
    { Private declarations }
  public
    data : TDMCore;
    constructor Creating( core : TDMCore );
  end;

var
  FormFilter: TFormFilter;
  //data : TDMCore;


implementation

{$R *.dfm}

constructor TFormFilter.Creating( core : TDMCore );
begin
Create(Application);
data := core;
end;

procedure TFormFilter.hide_unhide(Sender: TObject);
begin
if ComboBox1.ItemIndex <> 1 then
 begin
    Label2.Visible := false;
    Edit1.Visible := false;
    ComboBox2.Visible := false;
    Edit2.Visible := false;
    Label3.Visible := false;
    Label1.Visible := false;
  end
 else
  begin
    Label1.Visible := true;
    Label2.Visible := true;
    Edit1.Visible := true;
    ComboBox2.Visible := true;
    Edit2.Visible := true;
    Label3.Visible := true;
    end;
end;



procedure TFormFilter.btnclicked(Sender: TObject);
var inst : TDMInstances;
    filter : TDMFilter;
    discr : TDMDiscretize;
begin
  inst := data.GetData();
  case ComboBox1.ItemIndex of
   0 :
        begin
          filter := TDMNominalToBinary.Create();
          inst := filter.useFilter(inst);
        end ;
    1 :
        begin
          if Edit1.Text <> '' then
            discr := TDMDiscretize.Create(Edit1.Text)
          else
            discr := TDMDiscretize.Create();
          discr.SetInputFormat(inst);
          case ComboBox2.ItemIndex of
             0 : discr.setFindNumBins(true);
             1 : begin
                  discr.setFindNumBins(false);
                  discr.m_UseEqualFrequency := true;
                  discr.m_NumBins := StrToInt(Edit2.Text);
                 end;
             2:  begin
                  discr.setFindNumBins(false);
                  discr.m_UseEqualFrequency := false;
                  discr.m_NumBins := StrToInt(Edit2.Text);
                 end;
           end;
           inst := discr.useFilter(inst);
        end;
    2:
         begin
         // сюда удаление аттрибутов
         inst := DellMissAttr(inst);

         end;
    3:
         begin
         inst := DellMissVect(inst);
         // сюда удаление строчек
         end;
    4:
         begin
          inst := FillHole(inst);
         // сюда вставка средних
         end;



end;
data.SetData(inst);
Close;
end;

end.
Соседние файлы в папке FilterModule