Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1227663
  • 博文数量: 788
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 7005
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-19 15:52
文章存档

2017年(81)

2011年(1)

2009年(369)

2008年(337)

分类:

2008-10-14 16:38:58



此段代码为书中的例子的一部分代码,讲的是用类引用类型动态创建控件,其中有一句代码不明白其含义,请各位大虾赐教!  
   
  procedure   TMainForm.PanelContainerMouseDown(Sender:   TObject;  
      Button:   TMouseButton;   Shift:   TShiftState;   X,   Y:   Integer);  
  var  
      NewControl:   TControl;  
      NewControlName:   string;  
  begin  
      if   Button   =   mbLeft   then  
      begin  
          NewControl   :=   FControlClassRef.Create(Self);     //   创建部件对象  
          NewControl.Parent   :=   Self.PanelContainer;     //   设置部件的宿主  
          NewControl.Visible   :=   false;     //   隐藏部件  
          NewControl.Left   :=   X;     //   设置部件的位置坐标  
          NewControl.Top   :=   Y;     //   设置部件的位置坐标  
          Inc(FControlClassCount);     //   计数器增1  
          NewControlName   :=   FControlClassRef.ClassName()   +   IntToStr(FControlClassCount);  
          Delete(NewControlName,   1,   1);     //   这句是什么意思呢?好象删除对程序没影响.  
          NewControl.Name   :=   NewControlName;     //   设置部件名称  
          NewControl.Visible   :=   true;     //   显示部件  
      end;  
  end;  
 

Delete(NewControlName,   1,   1);     //   这句是什么意思呢?好象删除对程序没影响.  
  ===================================================================================  
  这句话是在确定控件名称的时候,去掉前面的'T'。比如控件是TEdit,FControlClassCount=1,  
  NewControlName   :=   FControlClassRef.ClassName()   +   IntToStr(FControlClassCount);  
  就会是‘TEdit1’,去掉'T',NewControlName就等于'Edit1'

Delete(NewControlName,   1,   1);     补充:这个调用是删除NewControlName这个字符串的第一个字符。

to   maozefa(阿发伯):  
  谢谢!!



[新闻]Silverlight对Flash 微软打垮Adobe
博客园首页 社区 新闻频道 小组 博问 网摘 闪存
阅读(409) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~