DELPHI开发中的小盲区

原创 2003年09月10日 11:32:00

类型变量的赋值

首先看看下面一段代码,运行一下看看
procedure TForm1.Button1Click(Sender: TObject);
var
  FormImage: TBitmap;
begin
  FormImage:=TBitmap.Create;  
  FormImage := GetFormImage;
  try
    formImage.SaveToFile('c:/a.bmp');
  finally
    FormImage.Free;
  end;
end;

可以分析一下,上面代码是否有问题呢,进行调试时虽然不会出现错误,但是事实的确有很大的问题,因为

GetFormImage返回的本身就是一个TbitMap类型的对象
而使用VCL的Create方法创造的也是一个实例,我们对于实例之间不能使用" :="进行操作;
只能使用以下两种方式进行操作

方法一:

procedure TForm1.Button1Click(Sender: TObject);
var
  FormImage: TBitmap;//声明一个该类型变量
begin
 // FormImage:=TBitmap.Create; //这句不应该有
  FormImage := GetFormImage;  //通过 Tform方法进行给变量赋值,相当于已经使用了Create方法,这时可以直接使用,
  try
    formImage.SaveToFile('c:/a.bmp');
  finally
    FormImage.Free;
  end;
end;
方法二:

使用assign,但是此时必须
使用create方法构造一个实例,因为使用assign进行操作对象时,是将源实例的属性都复制入目标实例中,但是如果进行操作大型结构的类型变量时可能效率不高。

如下
procedure TForm1.Button2Click(Sender: TObject);
var
  FormImage: TBitmap;
begin
  FormImage:=TbitMap.Create;
  FormImage.Assign(GetFormImage);
  try
    formImage.SaveToFile('c:/a.bmp');
  finally
    FormImage.Free;
  end;
end;

感谢以前的工程部经理,中国BCB论坛斑竹 lewolf 大哥 ^_^

QQ:53997882

 

 

关于人眼的视觉盲区

第一次听说人眼睛是不完美的,是通过杜洋直播间听到的,他刚说的时候我还以为kaiwanxi...
  • u011894856
  • u011894856
  • 2014年07月25日 11:49
  • 1792

delphi一步步开发H5 APP

APP越来越流行,客户需要开发APP,对习惯了用delphi的开发者来说,如何开发APP是个让人头大的问题。其实delphi开发APP是完全可行的。 下面就通过示例,一步步都大家如何开发一个APP。先...
  • pcwe2002
  • pcwe2002
  • 2017年01月18日 23:39
  • 2627

基于Arduino超声波测距/盲区检测

Arduino源代码: const int echopin = 3; // echo接3端口 const int trigpin = 2; // trig接2端口 const int led =...
  • wybliw
  • wybliw
  • 2017年05月16日 11:00
  • 563

以Delphi Package架构多人开发应用程序环境

印象中的Package   在一般的AP开发时,我们知道在Delphi7.0整合环境中将Project->Options->选到Packages卷标页,Builder with runtime p...
  • xiexuan2007
  • xiexuan2007
  • 2013年12月20日 12:24
  • 1268

10分钟10行代码开发APP(delphi 应用案例)

仅用不到三分钟时间,没写一行代码完成数据服务器程序开发;余下5分钟完成应用端程序配置与界面、再用2分钟完成10行代码,总共10分钟10行代码完成包括用户登录、数据读取、数据显示、检索等功能,并可生成A...
  • tanqth
  • tanqth
  • 2016年09月14日 13:49
  • 6330

Delphi for iOS开发指南(1):在Mac上配置你的开发环境

为iOS目标平台开发的FireMonkey应用程序最初可以在Mac的iOS Simulator上测试。 测试过程的第二阶段可以使用iOS Device目标平台,需要一台连接到Mac的测试iOS De...
  • wei_wu49036233
  • wei_wu49036233
  • 2013年09月03日 09:08
  • 9344

即将逝去的Delphi前景在何方

自1995年Borland公司发布Delphi 1.0以来,Delphi受到很多开发者的亲睐,到1999年发布Delphi5,Delphi以其开发快捷、控件丰富、易于上手等优势吸引了众多的开发者,用户...
  • wuhs
  • wuhs
  • 2017年05月21日 03:08
  • 2598

Delphi for iOS开发指南(2):在Windows PC上配置你的开发环境

在这篇教程开始之前,你应该阅读并按教程里的步骤执行: “Delphi for iOS开发指南(1):在Mac上配置你的开发环境”   为iOS目标平台开发的FireMonkey应用程序最初可以在...
  • wei_wu49036233
  • wei_wu49036233
  • 2013年09月03日 09:09
  • 3009

Delphi D10.1 移动开发中APP界面基本布局(一)

Delphi 目前在移动应用开发上已越来越成熟,其高效、简洁的开发更让人喜欢。 说明案例演示使用Delphi控件完成界面基本布局,其中包括TLayout、TVertScrollBox、 ...
  • tanqth
  • tanqth
  • 2017年06月14日 14:16
  • 1425

delphi bpl插件系统开发(转)

半路出家的delphier一如我,对于win32api式的调用有着近乎厌恶的抵触情绪,我很早以前看c++的教程时看到lptrXXXXX的变量就头大,以至于到现在都不会用c++,都不曾写成功过那怕一个h...
  • gjtao1130
  • gjtao1130
  • 2016年04月12日 14:39
  • 760
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DELPHI开发中的小盲区
举报原因:
原因补充:

(最多只允许输入30个字)