www.pudn.com > 电话产品防伪伺服系统(tw8).rar > Uform_record_pro.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.