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

📄 config.pas

📁 用delphi开发的短信息预警系统
💻 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 + -