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

📄 ufconfig.pas

📁 这个是DELPHI环境下的收发短信程序的源代码。目前发送短信已经做的很完美了
💻 PAS
字号:
unit UFConfig;

interface


uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ComCtrls, CheckLst;

type
  TForm2 = class(TForm)
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    GroupBox3: TGroupBox;
    TabSheet2: TTabSheet;
    GroupBox2: TGroupBox;
    Label6: TLabel;
    Label7: TLabel;
    SMSCenter: TEdit;
    radText: TRadioButton;
    radPDU: TRadioButton;
    TabSheet3: TTabSheet;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    cmbBaudRate: TComboBox;
    cmbByteSize: TComboBox;
    cmbComPort: TComboBox;
    cmbStopbits: TComboBox;
    cmbParity: TComboBox;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    Label8: TLabel;
    ComboBox1: TComboBox;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

const
  IniPath = 'Sms.ini';                                                          //配置文件名称

var
  Form2: TForm2;

implementation

uses
  USMS;


{$R *.dfm}
///////////////////////////////////////////////////////////////////////////////////////////////////////


procedure TForm2.BitBtn1Click(Sender: TObject);
var
  RunDir:string;
  strTmp:Pchar;
  CheckPass:boolean;
begin
  CheckPass := TRUE;
  RunDir := ExtractFileDir(Application.ExeName);

  if (strlen(Pchar(SMSCenter.Text)) <> 11) and (strlen(Pchar(SMSCenter.Text)) <> 13) then
  begin
    MessageDlg('短消息中心数据长度不正确!',mtWarning,[mbOk],0);
    CheckPass := FALSE;
  end else
  begin
    if strlen(Pchar(SMSCenter.Text)) = 11 then
    begin
      SMSCenter.Text := '86' + SMSCenter.Text;
    end;
    WritePrivateProfileString('SMS','SMSCenter',Pchar(SMSCenter.Text),Pchar(RunDir+'\'+IniPath));
  end;

  if radText.Checked then
  begin
    WritePrivateProfileString('SMS','SMSMode','Text',Pchar(RunDir+'\'+IniPath));
  end else
  begin
    WritePrivateProfileString('SMS','SMSMode','PDU',Pchar(RunDir+'\'+IniPath));
  end;

  WritePrivateProfileString('Serial','BaudRate',Pchar(cmbBaudRate.Text),Pchar(RunDir+'\'+IniPath));
  WritePrivateProfileString('Serial','ByteSize',Pchar(cmbByteSize.Text),Pchar(RunDir+'\'+IniPath));
  WritePrivateProfileString('Serial','ComPort' ,Pchar(cmbComPort.Text),Pchar(RunDir+'\'+IniPath));
  WritePrivateProfileString('Serial','Parity'  ,Pchar(cmbParity.Text),Pchar(RunDir+'\'+IniPath));
  WritePrivateProfileString('Serial','StopBits',Pchar(cmbStopBits.Text),Pchar(RunDir+'\'+IniPath));

  if StrToInt(comboBox1.Text) > 600 then comboBox1.Text := '600';
  if StrToInt(comboBox1.Text) < 0 then comboBox1.Text := '5';
  WritePrivateProfileString('System','DelayTime',Pchar(comboBox1.Text),Pchar(RunDir+'\'+IniPath));
  if CheckBox1.Checked then strTmp := '1' else strTmp := '0';
  WritePrivateProfileString('System','ChkNewMsg',strTmp,Pchar(RunDir+'\'+IniPath));
  if CheckBox2.Checked then strTmp := '1' else strTmp := '0';
  WritePrivateProfileString('System','ChkEnCode',strTmp,Pchar(RunDir+'\'+IniPath));

  if CheckPass then
  begin
    if SMS.SComm.SComInit then
    begin
      sleep(200);
      SMS.ErrMsg :=SMS.IniSMS;
      if SMS.ErrMsg < 0 then
      begin
        SMS.SComm.CloseSerial;
        if MessageDlg('短消息模块初始化失败('+IntToStr(SMS.ErrMsg)+')!要继续吗?',mtWarning,[mbYes,mbNo],0) = mrYes then
        begin
          Form2.Close;
        end;
      end else
      begin
        Form2.Close;
      end;
    end else
    begin
      if MessageDlg('指定的串口不存在或被其它程序占用!要继续吗?',mtWarning,[mbYes,mbNo],0) = mrYes then
      begin
        Form2.Close;
      end;
    end;
  end;
end;

procedure TForm2.BitBtn2Click(Sender: TObject);
begin
  Form2.Close;
end;

procedure TForm2.FormActivate(Sender: TObject);
var
  getBuffer:array[1..20] of char;
  RunDir:string;
begin
  RunDir := ExtractFileDir(Application.ExeName);
  GetPrivateProfileString('SMS','SMSCenter','',PChar(@getBuffer[1]),500,Pchar(RunDir+'\'+IniPath));
  SMSCenter.Text := Copy(getBuffer,1,strlen(@getBuffer[1]));

  GetPrivateProfileString('SMS','SMSMode','PDU',PChar(@getBuffer[1]),500,Pchar(RunDir+'\'+IniPath));
  if Copy(getBuffer,1,strlen(@getBuffer[1])) = 'Text' then
    radText.Checked := TRUE
  else
    radPDU.Checked := TRUE;

  GetPrivateProfileString('Serial','BaudRate','9600',PChar(@getBuffer[1]),500,Pchar(RunDir+'\'+IniPath));
  cmbBaudRate.ItemIndex := cmbBaudRate.Items.IndexOf(Copy(getBuffer,1,strlen(@getBuffer[1])));

//  m_Integer := GetPrivateProfileInt('Serial','ByteSize',8,PChar(RunDir+'\'+IniPath));
  GetPrivateProfileString('Serial','ByteSize','8',PChar(@getBuffer[1]),500,Pchar(RunDir+'\'+IniPath));
  cmbByteSize.ItemIndex := cmbByteSize.Items.IndexOf(Copy(getBuffer,1,strlen(@getBuffer[1])));

  GetPrivateProfileString('Serial','ComPort','COM1',PChar(@getBuffer[1]),500,Pchar(RunDir+'\'+IniPath));
  cmbComPort.ItemIndex := cmbComPort.Items.IndexOf(copy(getBuffer,1,strlen(@getBuffer[1])));

  GetPrivateProfileString('Serial','Parity','NONE',PChar(@getBuffer[1]),500,Pchar(RunDir+'\'+IniPath));
  cmbParity.ItemIndex := cmbParity.Items.IndexOf(Copy(getBuffer,1,strlen(@getBuffer[1])));

  GetPrivateProfileString('Serial','StopBits','1',PChar(@getBuffer[1]),500,Pchar(RunDir+'\'+IniPath));
  cmbStopBits.ItemIndex := cmbStopBits.Items.IndexOf(Copy(getBuffer,1,strlen(@getBuffer[1])));

  GetPrivateProfileString('System','DelayTime','5',PChar(@getBuffer[1]),500,Pchar(RunDir+'\'+IniPath));
  ComboBox1.ItemIndex := ComboBox1.Items.IndexOf(Copy(getBuffer,1,strlen(@getBuffer[1])));
  if ComboBox1.ItemIndex <0 then ComboBox1.Text := Copy(getBuffer,1,strlen(@getBuffer[1]));

  GetPrivateProfileString('System','ChkNewMsg','1',PChar(@getBuffer[1]),500,Pchar(RunDir+'\'+IniPath));
  if Copy(getBuffer,1,1) = '1' then
    CheckBox1.Checked := TRUE
  else
    CheckBox1.Checked := FALSE;

  GetPrivateProfileString('System','ChkEnCode','0',PChar(@getBuffer[1]),500,Pchar(RunDir+'\'+IniPath));
  if Copy(getBuffer,1,1) = '1' then
    CheckBox2.Checked := TRUE
  else
    CheckBox2.Checked := FALSE;

  if not CheckBox1.Checked then
  begin
    Label8.Enabled := FALSE;
    ComboBox1.Enabled := FALSE;
    CheckBox2.Enabled := FALSE;
  end else
  begin
    Label8.Enabled := TRUE;
    ComboBox1.Enabled := TRUE;
    CheckBox2.Enabled := TRUE;
  end;
end;

procedure TForm2.CheckBox1Click(Sender: TObject);
begin
  if not CheckBox1.Checked then
  begin
    Label8.Enabled := FALSE;
    ComboBox1.Enabled := FALSE;
    CheckBox2.Enabled := FALSE;
  end else
  begin
    Label8.Enabled := TRUE;
    ComboBox1.Enabled := TRUE;
    CheckBox2.Enabled := TRUE;
  end;
end;

end.

⌨️ 快捷键说明

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