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

📄 unttest1.pas

📁 本软件是我公司开发的具有实际用途即核磁共振含油率测试分析的源代码。
💻 PAS
字号:
unit Unttest1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, Buttons, TeEngine, Series, ExtCtrls,
  TeeProcs, Chart, DB, ADODB;

type xypoint=record
        Xpoint:double;
        Ypoint:double;
end;  

type
  TFrmtest1 = class(TForm)
    GroupBox3: TGroupBox;
    GroupBox2: TGroupBox;
    Label7: TLabel;
    Edit4: TEdit;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label5: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    DT1: TDateTimePicker;
    Label4: TLabel;
    ComboBox1: TComboBox;
    BitBtn1: TBitBtn;
    Edit5: TEdit;
    BitBtn2: TBitBtn;
    GroupBox4: TGroupBox;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    sampling: TChart;
    Series1: TLineSeries;
    OD2: TOpenDialog;
    Label6: TLabel;
    Label8: TLabel;
    Edit6: TEdit;
    ADOQuery1: TADOQuery;
    Label9: TLabel;
    Edit7: TEdit;
    Label10: TLabel;
    procedure FormShow(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure Edit5KeyPress(Sender: TObject; var Key: Char);
    function  Shiyutu(ssa1:string):string;
    procedure BitBtn2Click(Sender: TObject);
    procedure ComboBox1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Frmtest1: TFrmtest1;
  sk,sb:string;
  fx0,fy0,fx1,fy1:double;  
implementation

uses Untbd2, Unit7;

{$R *.dfm}

procedure TFrmtest1.FormShow(Sender: TObject);  //参照的标定编号

var
  s1:string;
begin
   s1:= 'select *  from bd1 where testno<>''''';
   Frmbd2.ADOQuery3.Close;
   Frmbd2.ADOQuery3.SQL.Clear;
   Frmbd2.ADOQuery3.SQL.Add(s1);
   Frmbd2.ADOQuery3.Open;
   Frmbd2.ADOQuery3.First;
   ComboBox1.Items.Clear;
   while not Frmbd2.ADOQuery3.Eof do
     begin
       ComboBox1.Items.Add(Frmbd2.ADOQuery3.FieldByName('testno').AsString);
       Frmbd2.ADOQuery3.Next;
     end;
end;

procedure TFrmtest1.BitBtn1Click(Sender: TObject);
  //请选择测量的FID文件
begin
   Label10.Caption:='';
     edit5.Text:='';
     OD2.Execute;
     edit5.Text:=od2.FileName;
     if edit5.Text='' then
       begin
         showmessage('请选择FID文件!');
         exit;
       end;
end;

procedure TFrmtest1.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
 key:=#0;
end;



 function  TFrmtest1.Shiyutu(ssa1:string):string;
var
  hWndClose: HWnd;
  mypath:string;
  i,j,i1:integer;
  Tmp,ddd:real;
a:array[0..2048] of real;
b:array[0..2048] of real;
c:array[0..2048] of real;
d:array[0..2048] of real;
e:array[0..2048] of real; //实部和虚部的模
TPFile:file of TP;
x:TP;
begin
   Series1.Clear;
    PageControl1.TabIndex :=0;
     PageControl1.ActivePage:=TabSheet1;  //
        assignfile(TPFile,ssa1);    //ssa1--FID文件
        reset(TPFile);
        sampling.Series[0].Clear;
        i:=0;
        try

           while (not eof(TPFile))  do
            begin
              if i>2047 then
                begin
                  showmessage('TD参数设置不对,应该为1024或2048。'+#13+'请重新设置测量!');
                  break;
                end;
                  read(TPFile,x);
                  a[i] :=x.re;      //实部
                  b[i]:=x.im ;      //虚部
                  e[i]:=sqrt(a[i]*a[i]+b[i]*b[i]); //实部和虚部的模
//       memo1.Lines.Add(inttostr(i)+'   '+floattostr(a[i])+',    '+floattostr(b[i])+'  ');   //测试胡数据
                  sampling.Series[0].Add((e[i]));   //划线
//                Chart1.Series[0].Add((a[i]));
                  inc(i);
           end;
         finally
                closefile(TPFile);
         end;
     ///////////////////////////////////////
          j:=Series1.YValues.Locate(Series1.MaxYValue);   //最大值位置
               ddd:=0.0;
          for i1:=j-10 to j+10 do
            begin
             d[i1]:=sqrt(a[i1]*a[i1]+b[i1]*b[i1])+ddd; //实部和虚部的模
             ddd:=d[i1];
            end;

           tmp:=ddd/21;   // 最大值附近40个值的平均值



          
       //    Tmp:= Series1.MaxYValue; //最大值的模
//          label4.Caption :='时域图的最大值在'+FloatTostr(j)+'处' ;
    //      showmessage('最大值位置在'+inttostr(j)+#13+'最大值='+floattostr(tmp));
            result:=FormatFloat('0.000',Tmp);   //最大值


end;




procedure TFrmtest1.BitBtn2Click(Sender: TObject);
  var
     maxwz,syr1:string;
     yr1,kr1,br1,maxxr1,zhiliang:real;
begin
 { if   edit1.Text='' then
      begin
        showmessage('请输入样品名称!');
        exit;
      end; }
 { if   edit6.Text='' then
      begin
        showmessage('请输入测量人名称!');
        exit;
      end;

  if   edit2.Text='' then
      begin
        showmessage('请输入样品编号!');
        exit;
      end;
  if   edit3.Text='' then
      begin
        showmessage('请输入样品来源!');
        exit;
      end;       }

  if   edit5.Text='' then
      begin
        showmessage('请选择测量的FID文件!');
        exit;
      end;

  if   edit7.Text='' then
      begin
        showmessage('请输入测量的样品质量!');
        exit;
      end;


  if   combobox1.Text='' then
      begin
        showmessage('请选择参照的标定编号!');
        exit;
      end;

       maxwz:=Shiyutu(edit5.Text);
       zhiliang:=strtofloat(edit7.Text);

       maxxr1:=StrToFloat(maxwz)/zhiliang;    //Y轴

       kr1:=StrToFloat(sk);
       br1:=StrToFloat(sb);

       yr1:=kr1*maxxr1+br1;

       yr1:=(maxxr1-br1)/kr1;  //x=[(y-b)/k]
       syr1:= FormatFloat('0.000',yr1);

       edit4.Text:=syr1; //油含量

       Label10.Caption:='油含量='+syr1+'%';
   {   s1:='INSERT INTO CELIANG(tren,CLname,CLBH,CLWPLY,CLRIQI,CZHBDBH,FIDFILE,YHL) VALUES('
              +QuotedStr(edit6.Text)
              +','+QuotedStr(edit1.Text)
              +','+QuotedStr(edit2.Text)
              +','+QuotedStr(edit3.Text)
              +','+QuotedStr(DATETOSTR(DT1.Date))
              +','+QuotedStr(ComboBox1.Text)
              +','+QuotedStr(edit5.Text)
              +','+QuotedStr(edit4.Text)
              +')';
          ADOQuery1.Close;
          ADOQuery1.SQL.Clear;
          ADOQuery1.SQL.Add(s1);
          ADOQuery1.ExecSQL;
          ADOQuery1.Close;     }


end;

procedure TFrmtest1.ComboBox1Click(Sender: TObject);
var
     s1,sx0,sy0,sx1,sy1:string;
    // fx0,fy0,fx1,fy1:real;
      e1:array[0..2] of real;
begin
       if ComboBox1.text<>'' then
         begin
           s1:='select * from bd1 where  testno='+QuotedStr(ComboBox1.Text);
           ADOQuery1.Close;
           ADOQuery1.SQL.Clear;
           ADOQuery1.SQL.Add(s1);
           ADOQuery1.Open;
           ADOQuery1.First;
           while not ADOQuery1.Eof do
             begin
               sx0:= ADOQuery1.FieldByName('dbx0').AsString;
               sy0:= ADOQuery1.FieldByName('dby0').AsString;
               sx1:= ADOQuery1.FieldByName('dbx1').AsString;
               sy1:= ADOQuery1.FieldByName('dby1').AsString;
               sk:=  ADOQuery1.FieldByName('xielv').AsString;
               sb:=  ADOQuery1.FieldByName('jieju').AsString;
                ADOQuery1.Next;
             end;
       end;
               PageControl1.TabIndex:=0;
               PageControl1.ActivePage:=TabSheet1;

end;


procedure TFrmtest1.FormCreate(Sender: TObject);
begin
   Label10.Caption:='';
   dt1.Date:=date;

end;

end.

⌨️ 快捷键说明

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