当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: 我的疑问是这样的: 如果我输入:“中华人民”, 数据库表中实际写入为“中华” 输入“中华人民共”,数据库表中实际写入为“中华” 输入“中华人民共和”,数据库表中实际写入为“中华人” 输入“中华人民共和国”,数据库表中实际写入为“中华人” 输入“中华人民共和国中”,数据库表中实际写入为“中华人民” 不知道这是怎么回事? 我的程序大致是这样的: 1、服务器程序端: 我在adoquery2的sq......
 ·音标问题    »显示摘要«
    摘要: 我的金山词霸2002怎么不出音标 怎么才能让让它出来音标?? ......


高手看过来,有散

高手看过来….请教几个问题?  
  ---------------------------------------------------------------------------------  
  procedure   Tfrm_itemtca.Resize(Sender:   TObject);  
  begin  
      with   Owner   as   TForm   do  
          Self.SetBounds(0,   0,   ClientWidth,  
                                              ClientHeight);  
  end;  
  ---------------------------------------------------------------------------------  
  1. 此处的   Self   指的是   对象   Tfrm_itemtca?    
  ---------------------------------------------------------------------------------  
  Control.pas  
  procedure   TWinControl.SetBounds(ALeft,   A,   AWidth,   AHeight:   Integer);  
  var  
      WindowPlacement:   TWindowPlacement;  
  begin  
      if   (ALeft   <>   FLeft)   then  
      begin  
          if   HandleAllocated   then  
              SetWindowPos(FHandle,   0,   ALeft,   A,   AWidth,   AHeight,  
                  SWP_NOZORDER   +   SWP_NOACTIVATE)  
          else  
          begin  
            …  
              begin  
                  GetWindowPlacement(FHandle,   @WindowPlacement);  
                  WindowPlacement.rcNormalPosition   :=   BoundsRect;  
              end;  
          end;  
      end;  
  end;  
   
  function   GetWindowPlacement;   external   user32   name   GetWindowPlacement;  
  --------------------------------------------------------------------------  
   
  2.GetWindowPlacement(FHandle,   @WindowPlacement);    
  这里的’@WindowPlacement   ‘?,   跟踪进去  
    在windows   里发现如下,  
  function   GetWindowPlacement;   external   user32   name   GetWindowPlacement;  
  再也找不到…,   也不明白上面是什么意思?  
  ---------------------------------------------------------------------------------  
  Windows.pas    
  TWindowPlacement   =   tagWINDOWPLACEMENT;  
   
  tagWINDOWPLACEMENT   =   packed   record  
          length:   UINT;  
          flags:   UINT;  
          showCmd:   UINT;  
          ptMinPosition:   TPoint;  
          ptMaxPosition:   TPoint;  
          rcNormalPosition:   TRect;  
  --------------------------------------------------------------------------  
   
    3.   tagWINDOWPLACEMENT   =   packed   record   这种定义怎样理解?  
   
    4.   关于   ‘   =   ‘   有几中意思?   如    
        a   .   TWindowPlacement     =     tagWINDOWPLACEMENT;  
        b.   if   Form2   =   nil   then    
        ………  
   
   
 

NO.1   作者: Eastunfail

1.   类中的Self永远表示当前实例。不是指Tfrm_itemtca,而是他的实例的指针,你调用的SetBounds是Tfrm_itemtca的方法  
  2.没有看懂你的意思  
  3.packed的record是为了和API的结构兼容,在编译期没有采取内存布局优化。  
  4.=只有一个意思。表示相等啦   :P。  
        你的a的是定义在type域内,所以TWindowPlacement     =     tagWINDOWPLACEMENT表示声明一个记录类型TWindowPlacement,内部组织跟tagWINDOWPLACEMENT一样的。也可以说跟tagWINDOWPLACEMENT加一个别名TWindowPlacement  
        你的b则是用来判断Form2与nil是否相等的。

NO.2   作者: Eastunfail

课外话题?  
   
  设置   我感兴趣的论坛   ->   配置我感兴趣的论坛

NO.3   作者: lynew

up

NO.4   作者: Eastunfail

1.self很简单,在什么类中用他就是代表什么。self其实是类的成员函数的一个隐含参数  
  2.@表示取指针。@WindowPlacement就是WindowPlacement的指针  
  3.   external   user32   用在静态声明API的时候指定DLL文件名,name用来指定DLL导出的函数名。这里user32是一个常量,字符串类型,你可以在windows.pas文件中找到  
  4.你可以作个试验:  
    type   a=record  
              field1:byte;  
              field2:integer;  
      end;  
      b=packed   record  
              field1:byte;  
              field2:integer;  
      end;  
  在用sizeof来查看两个结构的大小就可以了。  
   
   
  p.s.   红星用来粗略表示专家分的多少,5000-10000就是1颗红星


 ·asp操纵mssql的问题    »显示摘要«
    摘要: 以表格的形式显示数据库表,怎样显示关联的表的列 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE