ucallcontact.pas
来自「FMA is a free1 powerful phone editing to」· PAS 代码 · 共 181 行
PAS
181 行
unit uCallContact;
{
*******************************************************************************
* Descriptions: Call Contact Dialog
* $Source: /cvsroot/fma/fma/uCallContact.pas,v $
* $Locker: $
*
* Todo:
*
* Change Log:
* $Log: uCallContact.pas,v $
*
}
interface
uses
Windows, TntWindows, Messages, SysUtils, TntSysUtils, Variants, Classes, TntClasses, Graphics, TntGraphics, Controls, TntControls, Forms, TntForms,
Dialogs, TntDialogs, StdCtrls, TntStdCtrls, Placemnt, Buttons, TntButtons, Menus, TntMenus,
ExtCtrls;
const
MaxFavorites = 20;
type
TfrmCallContact = class(TTntForm)
Label1: TTntLabel;
btnCall: TTntButton;
btnCancel: TTntButton;
btnSelect: TTntButton;
FormPlacement1: TFormPlacement;
edContact: TTntEdit;
SpeedButton1: TTntSpeedButton;
FavoritesPopupMenu: TTntPopupMenu;
AddToFavorites1: TTntMenuItem;
Organize1: TTntMenuItem;
N2: TTntMenuItem;
Image1: TImage;
procedure btnCancelClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure edContactChange(Sender: TObject);
procedure btnSelectClick(Sender: TObject);
procedure btnCallClick(Sender: TObject);
procedure FavoritesPopupMenuPopup(Sender: TObject);
procedure PopupMenu1Click(Sender: TObject);
procedure Organize1Click(Sender: TObject);
procedure AddToFavorites1Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure AddRecipient(str: WideString);
end;
var
frmCallContact: TfrmCallContact;
implementation
uses
gnugettext, gnugettexthelpers,
uGetContact, Unit1, uSelectContact;
{$R *.dfm}
procedure TfrmCallContact.btnCancelClick(Sender: TObject);
begin
Close;
end;
procedure TfrmCallContact.FormShow(Sender: TObject);
begin
edContact.Text := '';
edContact.SetFocus;
end;
procedure TfrmCallContact.edContactChange(Sender: TObject);
begin
btnCall.Enabled := Trim(edContact.Text) <> '';
btnCall.Default := btnCall.Enabled;
end;
procedure TfrmCallContact.btnSelectClick(Sender: TObject);
begin
with TfrmGetContact.Create(nil) do
try
SelContacts := edContact.Text;
if ShowModal = mrOk then begin
edContact.Text := SelContacts;
edContact.SetFocus;
end;
finally
Free;
end;
end;
procedure TfrmCallContact.btnCallClick(Sender: TObject);
var
w: WideString;
begin
w := Form1.ExtractNumber(edContact.Text);
if w = '' then // only name?
edContact.Text := Form1.ContactNumberByName(edContact.Text);
if w = edContact.Text then // only tel?
edContact.Text := Form1.ContactNumberByTel(edContact.Text);
edContact.Update;
Enabled := False;
try
Form1.AskRequestConnection;
try
Form1.VoiceCall(Form1.ExtractNumber(edContact.Text));
Close;
except
Form1.Status(_('Error daling number'));
end;
finally
Enabled := True;
end;
end;
procedure TfrmCallContact.FavoritesPopupMenuPopup(Sender: TObject);
var
i: integer;
Item: TTntMenuItem;
begin
AddToFavorites1.Enabled := edContact.Text <> '';
while FavoritesPopupMenu.Items.Count > 3 do
FavoritesPopupMenu.Items.Delete(3);
for i := 0 to Form1.FFavoriteCalls.Count-1 do begin
Item := TTntMenuItem.Create(FavoritesPopupMenu);
Item.Caption := Form1.FFavoriteCalls[i];
Item.AutoHotkeys := maManual;
Item.ImageIndex := 26;
Item.OnClick := PopupMenu1Click;
FavoritesPopupMenu.Items.Add(Item);
end;
end;
procedure TfrmCallContact.PopupMenu1Click(Sender: TObject);
begin
edContact.Text := (Sender as TTntMenuItem).Caption;
edContact.SetFocus;
end;
procedure TfrmCallContact.Organize1Click(Sender: TObject);
begin
Form1.EditCallFavorites1.Click;
end;
procedure TfrmCallContact.AddToFavorites1Click(Sender: TObject);
begin
if Form1.FFavoriteCalls.IndexOf(edContact.Text) = -1 then begin
Form1.FFavoriteCalls.Insert(0,edContact.Text);
while Form1.FFavoriteCalls.Count > MaxFavorites do
Form1.FFavoriteCalls.Delete(MaxFavorites);
end;
end;
procedure TfrmCallContact.SpeedButton1Click(Sender: TObject);
var
p: TPoint;
begin
with SpeedButton1 do p := ClientToScreen(Point(0,Height));
FavoritesPopupMenu.Popup(p.X,p.Y);
end;
procedure TfrmCallContact.AddRecipient(str: WideString);
begin
edContact.Text := str;
end;
procedure TfrmCallContact.FormCreate(Sender: TObject);
begin
gghTranslateComponent(self);
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?