📄 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.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -