Delphi编程技巧四则 罗林hushibo 2001年 12期 #1 一、 检查计算机的网络连接情况    这可以利用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;   #1 二、收发电子邮件    在程序的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;   #1 三、利用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下编译运行通过。   #1 四、制作启动屏    (一)新建一个工程,增加一个窗体,名称为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;    至此,这样延时启动屏制作完成。