📄 config.pas
字号:
unit config;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, DB, ADODB, Grids, DBGrids, Menus,
Buttons;
type
TForm2 = class(TForm)
PageControl1: TPageControl;
QunFaSMSTab: TTabSheet;
GroupBox2: TGroupBox;
RecListBox: TListBox;
Panel2: TPanel;
GroupBox1: TGroupBox;
BookListBox: TListBox;
Button3: TButton;
Button4: TButton;
GroupBox3: TGroupBox;
Memo1: TMemo;
Label1: TLabel;
Button5: TButton;
Button1: TButton;
Button2: TButton;
Button6: TButton;
Button7: TButton;
UsualSMSTab: TTabSheet;
UsualSMSListView: TListView;
UsualPopupMenu: TPopupMenu;
openB: TMenuItem;
editB: TMenuItem;
deleteB: TMenuItem;
addB: TMenuItem;
GroupBox4: TGroupBox;
Memo2: TMemo;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Label2: TLabel;
BitBtn3: TBitBtn;
Edit1: TEdit;
Label3: TLabel;
Button8: TButton;
ComboBox1: TComboBox;
procedure Button4Click(Sender: TObject);
procedure Memo1Change(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure UsualSMSListViewMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure Memo2Change(Sender: TObject);
procedure addBClick(Sender: TObject);
procedure PageControl1Change(Sender: TObject);
procedure editBClick(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure deleteBClick(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure openBClick(Sender: TObject);
procedure UsualSMSListViewDblClick(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
private
{ Private declarations }
SelNum1:integer;
SelNum2:integer;
public
{ Public declarations }
function RepeatSelected(str:string):Boolean; //检查收件人是否有重复
procedure readusualmsgfromSQL();
procedure saveusualmsgfromSQL();
end;
var
Form2: TForm2;
SMSLength,SMSWords:integer;
implementation
uses main;
{$R *.dfm}
procedure TForm2.Button4Click(Sender: TObject);
begin
ComboBox1.Clear;
ComboBox1.Text:='请在此选择部门';
close;
end;
//========字数限定======================
procedure TForm2.Memo1Change(Sender: TObject);
var
i,j:integer;
SMSContent,chinese,english:string;
begin
SMSLength:=0;
chinese:='';
english:='';
SMSContent:=memo1.Text;
j:=length(memo1.Text);
if j>0 then
begin
for i:=1 to j do
begin
if ord(SMSContent[i])>128 then
begin
SMSLength:=70; // 中文字符70个
chinese:=chinese+SMSContent[i];
end else
begin
SMSLength:=160; // 英文字符160个
english:=english+SMSContent[i];
end;
end;
SMSWords:=(length(chinese) div 2)+length(english);
end else
begin
SMSWords:=0;
SMSLength:=160;
end;
label1.Caption:='当前输入字数:'+inttostr(SMSWords)+'/'+inttostr(SMSLength);
if SMSWords>SMSLength then
begin
Button3.Enabled:=false;
messagebox(handle,'超过限定字数,不能发送该信息!'+#13#10+'系统仅支持中文70个汉字,英文160个字符','警告!',MB_OK+MB_ICONWARNING);
end else
Button3.Enabled:=true;
end;
procedure TForm2.FormShow(Sender: TObject);
var
i:integer;
begin
memo1.Clear;
reclistbox.Clear; //清空收件人列表
SMSWords:=0;
SMSLength:=160;
booklistbox.Clear;
for i:=0 to length(PNode)-1 do
begin
ComboBox1.Items.Add(PNode[i].Text);
end;
readusualmsgfromSQL();
if sendcontent<>'' then
reclistbox.Items.Add(sendcontent);
end;
procedure TForm2.readusualmsgfromSQL();
var
i:integer;
begin
with form1.BookQuery do
begin
SQL.Clear;
SQL.Add('select * from usualsms order by did');
open;
if RecordCount>0 then
begin
first;
UsualSMSListView.Clear;
for i:=0 to RecordCount-1 do
begin
UsualSMSListView.Items.Add;
UsualSMSListView.Items.Item[UsualSMSListView.Items.Count-1].Caption:=
trim(Fieldbyname('G_content').Value);
next;
end;
end else UsualSMSListView.Clear;
close;
end;
end;
procedure TForm2.saveusualmsgfromSQL();
var
i:integer;
begin
//======存储过程存储数据======================
with Form1.ADOCommand_ADD do
begin
Parameters.Clear;
Parameters.AddParameter.Name:='DID';
Parameters.AddParameter.Name:='G_content';
CommandText:='delete from usualsms';
Execute;
if UsualSMSListView.Items.Count<>0 then
begin
for i:=0 to UsualSMSListView.Items.Count-1 do
begin
CommandText:='exec p_usualsms @DID=:DID,@G_content=:G_content';
Parameters.ParamByName('DID').Value:=i;
Parameters.ParamByName('G_content').Value:=UsualSMSListView.Items.Item[i].Caption;
Execute;
end;
end;
end;
end;
//======清空发送内容================================
procedure TForm2.Button6Click(Sender: TObject);
begin
memo1.Clear;
memo1.OnChange(Sender);
memo1.SetFocus;
end;
//=======添加收件人==========================
procedure TForm2.Button1Click(Sender: TObject);
var
i:integer;
begin
if booklistbox.SelCount<=0 then exit
else
begin
for i:=0 to booklistbox.Items.Count-1 do
begin
if booklistbox.Selected[i] then
begin
if RepeatSelected(booklistbox.Items.Strings[i]) then // 检查收件人是否有重复
continue
else
reclistbox.Items.Add(booklistbox.Items.Strings[i]);
end;
end;
end;
end;
//==========检查收件人是否有重复==================================
function TForm2.RepeatSelected(str:string):Boolean;
var
i:integer;
begin
result:=false;
if reclistbox.Items.Count<>0 then
begin
for i:=0 to reclistbox.Items.Count-1 do
begin
if result=true then exit
else begin
if reclistbox.Items.Strings[i]=str then
begin
result:=true;
end else
begin
result:=false;
continue;
end;
end;
end;
end;
end;
//========删除被选择的收件人==============================
procedure TForm2.Button2Click(Sender: TObject);
var
i:integer;
str:TStrings;
begin
str:=TStringList.Create;
if reclistbox.SelCount<=0 then exit
else
begin
for i:=0 to reclistbox.Items.Count-1 do
begin
if not reclistbox.Selected[i] then
str.Add(reclistbox.Items.Strings[i]);
end;
end;
reclistbox.Items:=str;
end;
//========清空收件人列表==================================
procedure TForm2.Button7Click(Sender: TObject);
begin
reclistbox.Clear;
end;
procedure TForm2.Button3Click(Sender: TObject);
var
i:integer;
begin
if reclistbox.Items.Count=0 then
begin
showmessage('收件人为空,请添加收件人!');
exit;
end;
if trim(memo1.Text)='' then
begin
showmessage('信息内容为空,请填写内容后再发送!');
exit;
end;
//=============添加到待发信息列表====================
for i:=0 to reclistbox.Items.Count-1 do
begin
with form1.WaitSMSListView do
begin
Items.Add;
Items.Item[Items.Count-1].Caption:=trim(memo1.Text);
Items.Item[Items.Count-1].SubItems.Add(StrToName(reclistbox.Items.Strings[i]));
Items.Item[Items.Count-1].SubItems.Add(StrToNumber(reclistbox.Items.Strings[i]));
Items.Item[Items.Count-1].SubItems.Add(formatdatetime('yy-mm-dd hh:mm:ss',now));
end;
end;
ComboBox1.Clear;
ComboBox1.Text:='请在此选择部门';
close;
end;
procedure TForm2.Button5Click(Sender: TObject);
begin
PageControl1.ActivePage:=UsualSMSTab;
end;
procedure TForm2.UsualSMSListViewMouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
i:integer; mousepos:TPoint;
begin
if (Button=mbRight) then
begin
for i:=0 to UsualSMSListView.Items.Count-1 do
begin
if UsualSMSListView.Items.Item[i].Selected then
begin
SelNum1:=i;
GetCursorPos(mousepos); //获取鼠标位置
openB.Enabled:=true;
editB.Enabled:=true;
if GroupBox4.Visible then
deleteB.Enabled:=false
else deleteB.Enabled:=true;
UsualPopupMenu.Popup(mousepos.X, mousepos.Y); // 弹出菜单;
exit;
end;
end;
begin
GetCursorPos(mousepos); //获取鼠标位置
openB.Enabled:=false;
editB.Enabled:=false;
deleteB.Enabled:=false;
UsualPopupMenu.Popup(mousepos.X, mousepos.Y); // 弹出菜单;
end;
end;
end;
procedure TForm2.Memo2Change(Sender: TObject);
var
i,j,MSMSLength,MSMSWords:integer;
SMSContent,chinese,english:string;
begin
//========字数限定======================
MSMSLength:=0;
chinese:='';
english:='';
SMSContent:=memo2.Text;
j:=length(memo2.Text);
if j>0 then
begin
for i:=1 to j do
begin
if ord(SMSContent[i])>128 then
begin
MSMSLength:=70; // 中文字符70个
chinese:=chinese+SMSContent[i];
end else
begin
MSMSLength:=160; // 英文字符160个
english:=english+SMSContent[i];
end;
end;
MSMSWords:=(length(chinese) div 2)+length(english);
end else
begin
MSMSWords:=0;
MSMSLength:=160;
end;
label2.Caption:='当前输入字数:'+inttostr(MSMSWords)+'/'+inttostr(MSMSLength);
if MSMSWords>MSMSLength then
messagebox(handle,'超过限定字数,不能发送该信息!'+#13#10+
'系统仅支持中文70个汉字,英文160个字符','警告!',
MB_OK+MB_ICONWARNING);
end;
procedure TForm2.addBClick(Sender: TObject);
begin
Memo2.Clear;
GroupBox4.Caption:='添加常用短信';
GroupBox4.Visible:=true;
BitBtn2.Enabled:=true;
BitBtn1.Enabled:=false;
Memo2.SetFocus;
end;
procedure TForm2.editBClick(Sender: TObject);
begin
GroupBox4.Caption:='编辑常用短信';
GroupBox4.Visible:=true;
BitBtn1.Enabled:=true;
BitBtn2.Enabled:=false;
Memo2.Text:=UsualSMSListView.Selected.Caption;
SelNum2:=SelNum1;
end;
procedure TForm2.PageControl1Change(Sender: TObject);
begin
GroupBox4.Visible:=false;
end;
procedure TForm2.BitBtn2Click(Sender: TObject);
begin
if trim(Memo2.Text)<>'' then
with UsualSMSListView do
begin
Items.Add;
Items.Item[Items.Count-1].Caption:=Memo2.Text;
end;
Memo2.Clear;
GroupBox4.Visible:=false;
saveusualmsgfromSQL();
end;
procedure TForm2.BitBtn1Click(Sender: TObject);
begin
UsualSMSListView.Items.Item[SelNum2].Caption:=Memo2.Text;
Memo2.Clear;
GroupBox4.Visible:=false;
saveusualmsgfromSQL();
end;
procedure TForm2.deleteBClick(Sender: TObject);
begin
UsualSMSListView.DeleteSelected;
saveusualmsgfromSQL();
end;
procedure TForm2.BitBtn3Click(Sender: TObject);
begin
Memo2.Clear;
GroupBox4.Visible:=false;
end;
procedure TForm2.openBClick(Sender: TObject);
begin
Memo1.Clear;
Memo1.Text:=UsualSMSListView.Selected.Caption;
PageControl1.ActivePage:=QunFaSMSTab;
end;
procedure TForm2.UsualSMSListViewDblClick(Sender: TObject);
begin
if UsualSMSListView.SelCount>0 then
begin
Memo1.Clear;
Memo1.Text:=UsualSMSListView.Selected.Caption;
PageControl1.ActivePage:=QunFaSMSTab;
end;
exit;
end;
procedure TForm2.Button8Click(Sender: TObject);
begin
if (trim(edit1.Text)='') or (PageControl1.TabIndex=1) then exit;
reclistbox.Items.Add('\'+trim(edit1.Text));
edit1.Clear;
end;
procedure TForm2.ComboBox1Change(Sender: TObject);
var
i:integer;
begin
BookListBox.Clear;
with Form1.BookQuery do
begin
SQL.Clear;
SQL.Add('select * from yujing where department = '''+ComboBox1.Text+''' order by id');
Open;
if RecordCount>0 then
begin
First;
for i:=0 to RecordCount-1 do
begin
BookListBox.Items.Add(trim(Fieldbyname('Pname').AsString)+'\'+Fieldbyname('Mphone').AsString);
Next;
end;
end;
Close;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -