procedure TSG_Form.SetupWavePara_BtnClick(Sender: TObject); 
var 
  fp12: TG_SetupDlg_Frm; 
  fp3:  TE_SetupDlg_Frm; 
  fp4:  TT_SetupDlg_Frm; 
  fp5:  TF_SetupDlg_Frm; 
begin 
  case CurrentSGWave of 
    1: begin 
        fp12 := TG_SetupDlg_Frm.Create(Self); 
        fp12.Caption := '三角波参数设置'; 
        fp12.A.Caption := '范围:          0.0 -- 1.0'; 
        fp12.B.Caption := '上升沿比例:'; 
        fp12.C.Caption := ''; 
        fp12.Edit1.Text := FloatToStr(SGwa[1].RaisingTimeP); 
        fp12.ShowModal; 
        if fp12.Tag = 0 then 
        begin 
          try 
            SGwa[1].RaisingTimeP := StrToFloat(fp12.Edit1.Text); 
            if SGSendWave then 
            begin 
              DownLoad; 
              DrawWave(Wave_Pic); 
            end 
            else 
              DrawWave(Wave_Pic); 
          except 
            Application.MessageBox('请输入正确的数据!', '输入错误', MB_OK + MB_ICONERROR); 
            fp12 := TG_SetupDlg_Frm.Create(Self); 
            fp12.A.Caption := '范围:          0.0 -- 1.0'; 
            fp12.B.Caption := '上升沿比例:'; 
            fp12.C.Caption := ''; 
            fp12.Edit1.Text := FloatToStr(SGwa[1].RaisingTimeP); 
            fp12.ShowModal; 
          end; 
        end; 
      end; 
    2: begin 
        fp12 := TG_SetupDlg_Frm.Create(Self); 
        fp12.Caption := '矩形波参数设置'; 
        fp12.A.Caption := '范围:          0.0 -- 1.0'; 
        fp12.B.Caption := '高电平比例:'; 
        fp12.C.Caption := ''; 
        fp12.Edit1.Text := FloatToStr(SGwa[2].HighP); 
        fp12.ShowModal; 
        if fp12.Tag = 0 then 
        begin 
          try 
            SGwa[2].HighP := StrToFloat(fp12.Edit1.Text); 
            if SGSendWave then 
            begin 
              DownLoad; 
              DrawWave(Wave_Pic); 
            end 
            else 
              DrawWave(Wave_Pic); 
          except 
            Application.MessageBox('请输入正确的数据!', '输入错误', MB_OK + MB_ICONERROR); 
            fp12 := TG_SetupDlg_Frm.Create(Self); 
            fp12.A.Caption := '范围:          0.0 -- 1.0'; 
            fp12.B.Caption := '高电平比例:'; 
            fp12.C.Caption := ''; 
            fp12.Edit1.Text := FloatToStr(SGwa[2].HighP); 
            fp12.ShowModal; 
          end; 
        end; 
      end; 
    3: begin 
        fp3 := TE_SetupDlg_Frm.Create(Self); 
        fp3.Caption := '指数波参数设置'; 
        fp3.CheckBox1.Checked := SGwa[3].RaisingE; 
        fp3.Edit1.Text := FloatToStr(SGwa[3].RaisingTao); 
        fp3.ShowModal; 
        if fp3.Tag = 0 then 
        begin 
          try 
            SGwa[3].RaisingE := fp3.CheckBox1.Checked; 
            SGwa[3].RaisingTao := StrToFloat(fp3.Edit1.Text); 
            if SGSendWave then 
            begin 
              DownLoad; 
              DrawWave(Wave_Pic); 
            end 
            else 
              DrawWave(Wave_Pic); 
          except 
            Application.MessageBox('请输入正确的数据!', '输入错误', MB_OK + MB_ICONERROR); 
            fp3 := TE_SetupDlg_Frm.Create(Self); 
            fp3.CheckBox1.Checked := SGwa[3].RaisingE; 
            fp3.Edit1.Text := FloatToStr(SGwa[3].RaisingTao); 
            fp3.ShowModal; 
          end; 
        end; 
      end; 
    4: begin 
        fp4 := TT_SetupDlg_Frm.Create(Self); 
        fp4.Caption := '梯形波参数设置'; 
        fp4.Edit1.Text := FloatToStr(SGwa[4].RaisingTimeP); 
        fp4.Edit2.Text := FloatToStr(SGwa[4].HighP); 
        fp4.Edit3.Text := FloatToStr(SGwa[4].FullingTimeP); 
        fp4.ShowModal; 
        if fp4.Tag = 0 then 
        begin 
          try 
            SGwa[4].RaisingTimeP := StrToFloat(fp4.Edit1.Text); 
            SGwa[4].HighP := StrToFloat(fp4.Edit2.Text); 
            SGwa[4].FullingTimeP := StrToFloat(fp4.Edit3.Text); 
            if SGSendWave then 
            begin 
              DownLoad; 
              DrawWave(Wave_Pic); 
            end 
            else 
              DrawWave(Wave_Pic); 
          except 
            Application.MessageBox('请输入正确的数据!', '输入错误', MB_OK + MB_ICONERROR); 
            fp4 := TT_SetupDlg_Frm.Create(Self); 
            fp4.Edit1.Text := FloatToStr(SGwa[4].RaisingTimeP); 
            fp4.Edit2.Text := FloatToStr(SGwa[4].HighP); 
            fp4.Edit3.Text := FloatToStr(SGwa[4].FullingTimeP); 
            fp4.ShowModal; 
          end; 
        end; 
      end; 
    5: begin 
        fp5 := TF_SetupDlg_Frm.Create(Self); 
        fp5.Caption := '调制波参数设置'; 
        fp5.Edit1.Text := FloatToStr(SGwa[5].F); 
        fp5.Edit2.Text := FloatToStr(SGwa[5].AM_DeepP); 
        fp5.Edit3.Text := FloatToStr(SGwa[5].MaxFOffset); 
        fp5.RadioButton1.Checked := not SGwa[5].FM; 
        fp5.RadioButton2.Checked := SGwa[5].FM; 
        fp5.ShowModal; 
        if fp5.Tag = 0 then 
        begin 
          try 
            SGwa[5].F := StrToFloat(fp5.Edit1.Text); 
            SGwa[5].AM_DeepP := StrToFloat(fp5.Edit2.Text); 
            SGwa[5].MaxFOffset := StrToFloat(fp5.Edit3.Text); 
            SGwa[5].FM := fp5.RadioButton2.Checked; 
            if SGSendWave then 
            begin 
              DownLoad; 
              DrawWave(Wave_Pic); 
            end 
            else 
              DrawWave(Wave_Pic); 
          except 
            Application.MessageBox('请输入正确的数据!', '输入错误', MB_OK + MB_ICONERROR); 
            fp5.Edit1.Text := FloatToStr(SGwa[5].F); 
            fp5.Edit2.Text := FloatToStr(SGwa[5].AM_DeepP); 
            fp5.Edit3.Text := FloatToStr(SGwa[5].MaxFOffset); 
            fp5.RadioButton1.Checked := not SGwa[5].FM; 
            fp5.RadioButton2.Checked := SGwa[5].FM; 
            fp5.ShowModal; 
          end; 
        end; 
      end; 
  end; 
end; 

解决方案 »

  1.   

       fp12: TG_SetupDlg_Frm; 
      fp3:  TE_SetupDlg_Frm; 
      fp4:  TT_SetupDlg_Frm; 
      fp5:  TF_SetupDlg_Frm; 这几个是什么类型?
    窗体?
      

  2.   

    case CurrentSGWave of 
        1: begin 
            fp12 := TG_SetupDlg_Frm.Create(Self); 
            fp12.Caption := '三角波参数设置'; 
            fp12.A.Caption := '范围:          0.0 -- 1.0'; 
            fp12.B.Caption := '上升沿比例:'; 
            fp12.C.Caption := ''; 
            fp12.Edit1.Text := FloatToStr(SGwa[1].RaisingTimeP); 
            fp12.ShowModal; 
            if fp12.Tag = 0 then 
            begin 
              try 
                SGwa[1].RaisingTimeP := StrToFloat(fp12.Edit1.Text); 
                if SGSendWave then 
                begin 
                  DownLoad; 
                  DrawWave(Wave_Pic); 
                end 
                else 
                  DrawWave(Wave_Pic); 
              except 
                Application.MessageBox('请输入正确的数据!', '输入错误', MB_OK + MB_ICONERROR); 
                fp12 := TG_SetupDlg_Frm.Create(Self); 
                fp12.A.Caption := '范围:          0.0 -- 1.0'; 
                fp12.B.Caption := '上升沿比例:'; 
                fp12.C.Caption := ''; 
                fp12.Edit1.Text := FloatToStr(SGwa[1].RaisingTimeP); 
                fp12.ShowModal; 
              end; 
            end; 
          end; switch(CurrentSGWave ) 
      case  1: 
            fp12 = TG_SetupDlg_Frm.Create(Self); 
            fp12->Caption = "三角波参数设置"; 
            fp12->A->Caption = "范围:          0.0 -- 1.0"; 
            fp12->B->Caption = "上升沿比例:"; 
            fp12->C->Caption = ""; 
            fp12->Edit1->Text = FloatToStr(SGwa[1]->RaisingTimeP); 
            fp12->ShowModal; 
            if( fp12.Tag == 0)
            {
              try 
           {            SGwa[1]->RaisingTimeP = StrToFloat(fp12->Edit1->Text); 
                if (SGSendWave )
                { 
                  DownLoad; 
                  DrawWave(Wave_Pic); 
                }
                else 
                  DrawWave(Wave_Pic);

             catch(...)

                Application->MessageBox('请输入正确的数据!', '输入错误', MB_OK + MB_ICONERROR); 
                fp12 = TG_SetupDlg_Frm->Create(Self); 
                fp12->A->Caption = '范围:          0.0 -- 1.0'; 
                fp12->B->Caption = '上升沿比例:'; 
                fp12->C->Caption = ''; 
                fp12->Edit1->Text = FloatToStr(SGwa[1]->RaisingTimeP); 
                fp12->ShowModal(); 
              }; 
            }; 
          }; 
    翻译一小段
      

  3.   

    他要转成vc的,vc里mfc窗口,用dialog就好了