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

📄 9902.txt

📁 关于编程技术技巧的文章
💻 TXT
字号:

                     <<编程技术>>

         一份属于广大编程爱好者的电子杂志

                   第二期 99/04/04


<本期栏目>
 *刊首语*
 *雕虫小技*
    Delphi小技巧二则
     --防止程序被重复执行
     --动态建立不常用的对象
 *技术文档*
    JavaScript在E-mail中的应用
    FoxPro中Windows API的调用
    API函数在VB开发中的应用
    巧用VB编程使XMPLAYER自动播放VCD
 *服务台*
    《程序员大本营》

*****************************************************

<刊首语>
    
    近来在发送刊物后,每次都有几封被退了回来,说是找不到该邮件
地址。所以希望大家在发订阅信时,如需发送到指定信箱,请务必准确
写下您的邮件地址。也希望大家尽量用一些诸如990、263、188等一些
常见的免费信箱来订阅,因为对于有些信箱,发送也不是很正常。如果
发往同一邮件地址的刊物连续三次被退回来,而且返回的错误信息是没
有找到该邮件地址的话,我就只能将该邮件地址从发送列表中删除了。
    以上各项如对大家有不便之处还望大家能多多谅解。

*****************************************************
*****************************************************

<雕虫小技>

Delphi小技巧二则

                      防止程序被重复执行 

  Windows95的程序一般都可以重复执行,例如你按下WIN+E组合键即启动
资源管理器,如果再按WIN+E组合键又会出现一个资源管理器,这两个程序互
不干扰。有时候你可以需要制作这样一个程序:当该程序已经执行时,若用
户企图再次执行该程序则只会激活那个已执行的程序,而不是又出现一个副
本。
  完成这个目的的核心就是要在程序启动时查找该程序是否已经运行,我
曾试过很多种方法,包括向“全局元素表”(Global ATOM Table)写特定字符
串等等,但最简单的方法还是下面这个: 

在程序启动时将Application的Title特性字段的值暂时改变。 
利用Windows API函数FindWindows()查找窗口 
恢复Application的Title值 
  上述步骤一般在主Form的OnCreate事件中实现,示例如下:

procedure TForm1.FormCreate(Sender: TObject);
var
  ZAppName: array[0..127] of char;
  Hold: String;
  Found: HWND;
begin
  Hold := Application.Title;
  Application.Title := 'OnlyOne'
     + IntToStr(HInstance); // 暂时修改窗口标题
  StrPCopy(ZAppName, Hold); // 原窗口标题
  Found := FindWindow(nil, ZAppName); // 查找窗口
  Application.Title := Hold; // 恢复窗口标题
  if Found<>0 then begin
    // 若找到则激活已运行的程序并结束自身
    ShowWindow(Found, SW_RESTORE);
    Application.Terminate;
  end;
end; 


                         动态建立不常用的对象 

  不常使用的对象,例如一个About对话框应该只在需要的时候来动态地建
立,这样可以避免浪费资源。举便来说,假定你建立了一个应用程序,并为其
建立了一个About对话框,则生成的代码将在程序初始化建立主Form时也一并
建立了About对话框的Form以及其关对象,这个About对话框将一直占用部分资
源直到程序结束,即使用户从未激活这个About对话框。
  较好的做法是让Delphi在建立主Form时不自动建立About对话框(或其他
不常用的对象),激活Delphi主菜单的“Project”-“Options...”项,选取
“Application”页,你会看到有两个列表框,左边列表框中的项目表示在程
序初始化时将自动建立的所有Form,选择除主Form外的其他Form,单出“>”按
钮,将这些不需要在程序初始化时与主Form一并建立的东西全部移动右边的列
表框中,这样,你的应用程序在初始化时就只建立主窗口,而不是自动建立一
大堆用户可能从不访问的窗口。

  下面的代码段说明了怎样动态地建立并激活一个About对话框:

procedure MainForm.AboutItemClick(Sender:TObject);
begin
  with TAboutBox.Create(Application) do begin
    try
      ShowModal;
    finally
      Free;
    end;
  end;
end; 
  上例动态地建立了一个TAboutBox类的Form,然后以MODAL方式来激活这个
Form,其间无论出现什么错误,都保证会释放该动态对象所占的资源。

*****************************************************
*****************************************************

<技术文档>

                        JavaScript在E-mail中的应用

          JavaScript是Internet上一种新兴的编程语言,它主要用于Web的
          制作,可以实现各种动态和交互效果。本文成功地将JavaScript技
          术应用于E-mail,使得E-mail用户一打开电子邮件信箱便可以感受
          到邮件的动态及交互效果。

          JavaScript是一种基于对象的描述性语言,将JavaScirpt语句嵌入
          HTML文档,支持JavaScript的浏览器会解释执行JavaScript语句,
          实现各种效果。
          

⌨️ 快捷键说明

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