http://www.csdn.net/expert/topic/687/687624.xml?temp=.0240137

解决方案 »

  1.   

    当你需要使用某项Windows API的时候,例如:ShellExecute()
    则需要uses  ShellApi
      

  2.   

    其中封装了borland公司制作的许多函数方法,而且封装了windows消息.
    对,和c++的差不多,也是等于把整个代码块加了进来,这样一些函数才认。
      

  3.   

    呵呵!!可以试着删除一个,
    然后再进行一下语法检查,
    如果是需要的单元文件,
    Delphi会再次自动将它加入到Uses 中去的!
      

  4.   

    跟C++的include差不多的,你可以通过查询找到一个Func/Proc所在的单元
      

  5.   

    Delphi是相向编程环境.  即是说你可以像编写c一样, 直接用notepad编写.pas
    然後用dcc32编译器编译.  这通常会得最少的程式的.另外是透过Delphi的IDE, 以视图环境下编程.  Delphi便以做FORM的大前题
    下, 替你加上非可视元素.  Delphi是假设用vcl的控件下工作的, 所以会替你
    安排 uses 某些最基本的vcl如 windows.dcu; dialogs.dcu...(就是你所问
    的东西了).  於是你不用做任何工作也可以直接呼叫大部份Delphi给你的功能
    了.  请留意当你做 DataModule 和否一般的Form 所uses 的元件都不相同.
    因两者的功用不同的.  所以你是可以按你实际的需要删去一些真的无用元件,
    让你程式较小.
      

  6.   

    你发现了吗?有两个位置可以 uses ...,一个是Interface,另一个是Implementation它们的区别在于:
    Unit2的Interface中如果uses unit1
    Unit3的Interface中如果uses unit2,那么Unit3也可以引用Unit1中的变量和函数。有包含关系。而Implementation中没有。交叉引用:
    不可以在Interface中交叉引用。有很多书上说如果两个单元要交叉引用,要把一个uses 放到Interface,另一个放到Implementation;其实没有特殊要求的话,将两个uses 都放到Implementation是较好的选择。
      

  7.   

    另:针对ericleung()
    看看菜单 Project\Options...\Packages\Runtime Packages\Build with Rutime Packages 这一项如果没有打钩(默认是没有打钩的),你uses了再多的单元,编译出来的程序也不会变大。试试
      

  8.   

    delphi自己用object pascal重写了api和很多东西。uses 就更具要加进不同的单元。如果用到某个函数,在编译时报错,就说明你没有引用该单元。
      

  9.   

    那是form 需要的单元文件,你自己定义类,可以根据需要用单元文件! ,
    uses 也可以在下面加,!
      

  10.   

    同意oracle_lover(数据库情人)说法