微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题Delphi编程技巧四则
栏目软件世界
作者罗林hushibo
发布2001年12期
  一、 检查计算机的网络连接情况
  这可以利用Win32 API中的检索系统度量及配置设定函数GetSystemMetrics来实现。这个函数的定义为int GetSystemMetrics(nIndex),其中nIndex为待检索的系统度量及配置设定值,SM_NETWORK标志位值为1,则计算机连接了网络,值为0,则计算机尚未连接网络。
  procedure TForm1.Button1Click(Sender: TObject);
  begin
  if GetSystemMetrics(SM_NETWORK) AND $01 = $01 then
  ShowMessage('连上了网络')
  else
  ShowMessage('尚未连接网络');
  end;
  二、收发电子邮件
  在程序的About对话框中,程序员经常提供E-mail服务以提供程序应用反馈或技术支持等,在Delphi程序中可以用ShellExecute函数实现利用默认电子邮件程序发送邮件的功能。
  procedure TForm1.EmailLabel1Click(Sender: TObject);
  Var
  EMailaddress,SubjectS,ContentS,MailS:String;
  BEGIN
  EMailaddress:='hll_hb@sina.com';
  //如果想发E-mail给多个邮件地址,则各邮件地址之间可用分号分割。例如://hll_hb@sina.com;kk_bj@163.net
  SubjectS:='Message Subject';
  ConentS:= '这是一个Hello邮件';
  MailS:='mailto:' + EMailaddress + '?subject=' + SubjectS + '&body='+ContentS
  ShellExecute(0,'open',PChar(MailS),“,”,SW_SHOWNORMAL);
  end;
  三、利用OLE自动化控制Ms Excel
  Ms Excel的制表计算功能十分强大,我们在编程时有时需要操纵Ms Excel,这时可利用OLE自动化。如下的代码段实现这个功能。
  procedure TForm1.Button1Click(Sender:TObject);
  var
  Oe: OleVariant;
  begin
  try
  Oe:= GetActiveOleObject('Excel.Application');
  except
  Oe:= CreateOleObject('Excel.Application');
  end
  Oe.visible:=true;
  Oe.WorkBooks.Add;
  Oe.Worksheets['Sheet1'].Cells[10,10].Value:= 99;
  Oe.Worksheets['Sheet1'].Cells[10,10].Font.Size:= 12;
  Oe.Range['A1,C6'].FormulaR1C1 := '123';
  Oe.quit;
  end.
  以上程序均在Windows 98、Delphi5.0下编译运行通过。
  四、制作启动屏
  (一)新建一个工程,增加一个窗体,名称为frmSplash。保存单元的名SPLASH.PAS。设窗体的BorderStyle为bsNone。在窗体上加TPanel,设其Align 属性为alAlignClient。在窗体上加TImage,设其Align 属性为 alAlignClient,并装入图片。
  (二)修改工程文件源代码为
  program Project1;
  uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  Splash in 'Splash.pas' {frmSplash};
  {$R *.RES}
  begin
  try
  frmSplash:= TfrmSplash.Create(Application);
  frmSplash.Show;
  frmSplash.Update;
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  frmSplash.Close;
  finally
  frmSplash.Free;
  end;
  Application.Run;
  end.
  (三)另外,若要做延时启动屏,则可做如下修改:
  1.在窗体frmSplash上加timer控件,设interval属性为1000∽5000(随意),Enable:=True。
  2.Timer的OnTimer事件增加如下代码:
  Timer1.Enabled := False;
  3.在frmSplash窗体的OnCloseQuery 事件增加如下代码:
  procedure TfrmSplash.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
  begin
  CanClose:= Not Timer1.Enabled;
  end;
  4.在工程的frmSplash.Close 命令前增加如下代码:
  repeat
  Application.ProcessMessages;
  until frmSplash.CloseQuery;
  至此,这样延时启动屏制作完成。