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

📄 uform_record_pro.pas

📁 电话防伪系统
💻 PAS
字号:
unit Uform_record_pro;

interface

uses
  tw8a32,Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Spin, Buttons, ComCtrls, ImgList, ExtCtrls, DB, ADODB;

type
  Tform_record_pro = class(TForm)
    Panel2: TPanel;
    Image1: TImage;
    Image2: TImage;
    Bevel3: TBevel;
    Bevel2: TBevel;
    Label3: TLabel;
    Panel1: TPanel;
    listview: TListView;
    ImageList1: TImageList;
    StatusBar1: TStatusBar;
    Label2: TLabel;
    Image3: TImage;
    Label5: TLabel;
    Label6: TLabel;
    BitBtn1: TBitBtn;
    BitBtn3: TBitBtn;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    SpinEdit1: TSpinEdit;
    Timer1: TTimer;
    Timer2: TTimer;
    Label4: TLabel;
    BitBtn2: TBitBtn;
    recordset_temp: TADOQuery;
    BitBtn4: TBitBtn;
    ProgressBar1: TProgressBar;
    Label1: TLabel;
    procedure FormShow(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure ESitem(cc:boolean);
    procedure Timer1Timer(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure listviewClick(Sender: TObject);
    procedure listviewChange(Sender: TObject; Item: TListItem;
      Change: TItemChange);
    procedure BitBtn4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    filename:string;
    stage:integer;
    phonecode:integer;
  end;

var
  form_record_pro: Tform_record_pro;

implementation

uses Uform_record_pro_input;

{$R *.dfm}

procedure Tform_record_pro.FormShow(Sender: TObject);
var
   i:integer;
   p:^integer;
   ListItem: TListItem;
begin
   //show the windows and add the items in the listview 2001-12-25p
   listview.Clear ;

   recordset_temp.SQL.Clear ;
   recordset_temp.SQL.Add('select * from [PRO]');
   recordset_temp.Open ;

   for i:=1 to recordset_temp.recordcount do
   begin
      listitem:=listview.Items.Add ;
      listitem.Caption :=inttostr(recordset_temp.Fields[0].AsInteger -1);
      listitem.SubItems.Add(recordset_temp.Fields[1].asstring);

      new(p);
      p^ := recordset_temp.Fields[0].AsInteger ;
      listitem.Data :=p;

      recordset_temp.Next ;
   end;

   recordset_temp.Close ;

end;

procedure Tform_record_pro.BitBtn1Click(Sender: TObject);
var
   p:^integer;
begin
//record the phone 2001-12-24p

   if bitbtn1.Caption ='开始录音' then
   begin
      //know use whick phone
      if radiobutton1.Checked =true then phonecode:=0 else phonecode:=1;

      //know the file's name
      if listview.selected=nil then exit;
      p:=listview.Selected.Data ;
      filename:=inttostr(p^) + 'pro.tw';

      //enabled the item
      ESitem(false);
      bitbtn1.Caption :='停止录音';
      bitbtn3.Enabled :=false;
      stage:=1;

      timer1.Enabled :=true;
   end
   else
   begin
      //enabled the item
      ESitem(true);
      label1.Caption :='';
      progressbar1.Position :=0;
      bitbtn1.Caption :='开始录音';
      bitbtn3.Enabled :=true;
      stage:=1;
      tw_stoprecordfile(phonecode);
      tw_hangupctrl(phonecode);
      timer1.Enabled :=false;
   end;

end;
procedure Tform_record_pro.ESitem(cc:boolean);
begin
   //showmessage
   listview.Enabled :=cc;
   spinedit1.Enabled :=cc;
   radiobutton1.Enabled :=cc;
   radiobutton2.Enabled :=cc;
   bitbtn4.Enabled :=cc;
   bitbtn2.Enabled :=cc;
end;

procedure Tform_record_pro.Timer1Timer(Sender: TObject);
var
   temp:pchar;
   temp2:integer;
begin
   if stage=1 then
   begin
      if tw_ringdetect(phonecode) >1 then
      begin
         stage:=2;
         tw_offhookctrl(phonecode);
         temp:=pchar( ExtractFilePath(ParamStr(0)) + 'sound\' + filename);
         tw_startrecordfile(phonecode,temp,0,spinedit1.Value  *6448);
         label1.Caption :='请录音';
      end;
   end;
   if stage=2 then
   begin
      temp2:=tw_recordfilerest(phonecode);
      temp2:=temp2* 100;
      temp2:= temp2 div (spinedit1.Value *6448);
      progressbar1.Position :=100 - temp2;
      if temp2=0 then
      begin
         ESitem(true);
         label1.Caption :='';
         progressbar1.Position :=0;
         bitbtn1.Caption :='开始录音';
         bitbtn3.Enabled :=true;
         stage:=1;
         tw_hangupctrl(phonecode);
         timer1.Enabled :=false;
      end;
   end;
end;

procedure Tform_record_pro.BitBtn3Click(Sender: TObject);
var
   p:^integer;
begin
   //play the sound 2001-12-25p

   //know use whick phone
   if radiobutton1.Checked =true then phonecode:=0 else phonecode:=1;

   //know the file's name
   if listview.selected=nil then exit;
   p:=listview.selected.data;
   filename:=inttostr(p^) + 'pro.tw';

   if bitbtn3.Caption ='播   放' then
   begin
      ESitem(false);
      bitbtn1.Enabled :=false;
      bitbtn3.Caption :='停止放音';
      stage:=1;
      timer2.Enabled :=true;
   end
   else
   begin
      ESitem(true);
      bitbtn1.Enabled :=true ;
      bitbtn3.Caption :='播   放';
      stage:=1;
      timer2.Enabled :=false;

      if tw_playfilerest(phonecode)>0  then
      begin
         tw_stopPlayfile(phonecode);
      end;
      tw_hangupctrl(phonecode);
   end;

end;

procedure Tform_record_pro.Timer2Timer(Sender: TObject);
var
   temp:pchar;
begin
   //the timer of play the sound 2001-12-25p

   if stage=1 then
   begin
      if tw_ringdetect(phonecode) >1 then
      begin
         tw_offhookctrl(phonecode);
         temp:=pchar( ExtractFilePath(ParamStr(0)) + 'sound\' + filename);
         tw_startplayfile(phonecode,temp,0,0);
         stage:=2;
      end;
   end;
   if stage=2 then
   begin
      if tw_playfilerest(phonecode)=0 then
      begin
         ESitem(true);
         bitbtn1.Enabled :=true ;
         bitbtn3.Caption :='播   放';
         stage:=1;
         timer2.Enabled :=false;
         tw_hangupctrl(phonecode);
      end;
   end;
end;

procedure Tform_record_pro.BitBtn2Click(Sender: TObject);
begin
   close;
end;

procedure Tform_record_pro.listviewClick(Sender: TObject);
begin
   if listview.Selected=nil then exit;
   label4.Caption :='[' + listview.Selected.Caption + ']   ' + listview.Selected.SubItems.Text ;
end;

procedure Tform_record_pro.listviewChange(Sender: TObject; Item: TListItem;
  Change: TItemChange);
begin
   listviewClick(nil);
end;

procedure Tform_record_pro.BitBtn4Click(Sender: TObject);
var
   p:^integer;
begin
   //edit the pro's name 2001-12-25p
   if listview.selected=nil then exit;

   form_record_pro_input.Edit1.Text :=listview.Selected.SubItems.Text ;
   form_record_pro_input.ShowModal ;

   if form_record_pro_input.yesno =false then exit;

   p:=listview.Selected.Data ;
   recordset_temp.SQL.Clear ;
   recordset_temp.SQL.Add('select * from [PRO] where [PRO_ID]=' + inttostr(p^));
   recordset_temp.Open;
   if recordset_temp.RecordCount <>0 then
   begin
      recordset_temp.Edit ;
      recordset_temp.Fields[1].AsString :=form_record_pro_input.string_name ;
      recordset_temp.Post ;
      listview.Selected.SubItems.Clear ;
      listview.Selected.SubItems.Add(form_record_pro_input.string_name);
      listviewClick(nil);
   end;
   recordset_temp.Close ;
end;

end.

⌨️ 快捷键说明

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