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

📄 unitaddcontact.pas

📁 Delphi版飞信源代码 用Delphi实现飞信功能
💻 PAS
字号:
unit UnitAddContact;

interface

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

type
  TFormAddContact = class(TForm)
    rdPhoneNum: TRadioButton;
    rdFetionNum: TRadioButton;
    edPhoneNum: TEdit;
    edSipNum: TEdit;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Label1: TLabel;
    edPSMsg: TEdit;
    Label2: TLabel;
    mmUserInfo: TMemo;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    procedure rdPhoneNumClick(Sender: TObject);
    procedure edPhoneNumKeyPress(Sender: TObject; var Key: Char);
    procedure edPhoneNumKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edSipNumKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
    FPhoneUri, FFetionUri: string;
    procedure ShowUserInfo(aUser: TUserInfo);
  public
    { Public declarations }
    AddUri, PSMsg: string;
  end;

var
  FormAddContact: TFormAddContact;

implementation

{$R *.dfm}

procedure TFormAddContact.BitBtn1Click(Sender: TObject);
begin
  if rdPhoneNum.Checked then
    AddUri := FPhoneUri
  else
    AddUri := FFetionUri;
  PSMsg := edPSMsg.Text;
end;

procedure TFormAddContact.edPhoneNumKeyPress(Sender: TObject; var Key: Char);
begin
  if ( (Key>#31) and (Key<#128) ) then
  if ( (Key<'0') or (Key>'9') ) then
    Key := #0;
end;

procedure TFormAddContact.edPhoneNumKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var aUser: TUserInfo;
begin
  if ( (Key<Ord('0')) or (Key>Ord('9')) ) then
    exit;
  if Length(edPhoneNum.Text)=edPhoneNum.MaxLength then
  begin
    FPhoneUri := 'tel:'+edPhoneNum.Text;
    aUser := FormMain.RetriveUserInfo(FPhoneUri);
    ShowUserInfo(aUser);
  end;
end;

procedure TFormAddContact.edSipNumKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var aUser: TUserInfo;
begin
  if ( (Key<Ord('0')) or (Key>Ord('9')) ) then
    exit;
  if Length(edSipNum.Text)=edSipNum.MaxLength then
  begin
    aUser.Sid := '';
    FFetionUri := FormMain.RetriveURIFromUID(edSipNum.Text);
    if FFetionUri<>'' then
      aUser := FormMain.RetriveUserInfo(FFetionUri);
    ShowUserInfo(aUser);
  end;
end;

procedure TFormAddContact.rdPhoneNumClick(Sender: TObject);
begin
  edPhoneNum.Enabled := rdPhoneNum.Checked;
  edSipNum.Enabled := rdFetionNum.Checked;
end;

procedure TFormAddContact.ShowUserInfo(aUser: TUserInfo);
begin
  mmUserInfo.Clear;
  if aUser.Sid <> '' then
  begin
    mmUserInfo.Lines.Add('URI: '+aUser.Sid);
    mmUserInfo.Lines.Add('昵称: '+aUser.NickName);
    mmUserInfo.Lines.Add('国家: '+aUser.Nation+' 省份: '+aUser.Province+' 城市: '+aUser.City);
    mmUserInfo.Lines.Add('手机号码: '+aUser.MobileNum);
  end else
  begin
    mmUserInfo.Lines.Add('该用户未开通飞信。');
  end;
end;

end.

⌨️ 快捷键说明

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