大家帮忙看个程序

tsbob 2001-06-22 11:36:00
unit tuhua;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

Menus;

type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

OpenDialog1: TOpenDialog;

file1: TMenuItem;

openfile1: TMenuItem;

exit1: TMenuItem;

procedure FormCreate(Sender: TObject);

procedure FormPaint(Sender: TObject);

procedure openfile1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

tuhua:Tbitmap;

bmpfile:string;

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);

begin

tuhua:=Tbitmap.create;

tuhua.width:=width;

tuhua.height:=height;

end;

procedure TForm1.FormPaint(Sender: TObject);

var right:integer;

r:Trect;

begin

for right:=1 to width do

begin

r:=rect(0,0,right,height);

canvas.copyrect(r,tuhua.canvas,r);



end;

end;

procedure TForm1.openfile1Click(Sender: TObject);

begin

if opendialog1.execute then

begin

bmpfile:=opendialog1.filename;

tuhua.loadfromfile(bmpfile);

end;

end;

end.

主要是调入一个图片,让它从左倒右的逐渐显示,

问题是显示的图片中间总有一部分是白色的,显示不出来。

...全文
34 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ch81 2001-06-22
  • 打赏
  • 举报
回复
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure FormPaint(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
tuhua:TBitmap;
Empty:Boolean;
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormPaint(Sender: TObject);
var right:integer;
r:Trect;

begin
if Empty=False then
begin
for right:=1 to width do
begin
r:=rect(0,0,right,height);
canvas.copyrect(r,tuhua.canvas,r);
end;
end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
tuhua.LoadFromFile('安装程序.bmp');
Empty:=False;
Form1.OnPaint(nil);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
tuhua:=TBitmap.Create;
tuhua.Width:=Width;
tuhua.Height:=Height;
Empty:=True;
end;

end.
//我已经运行通过了。加一个empty是判断图画加载了没有。
你也可换个方法判断。
加载后,要重画CANVAS,我调用了FORM。ONPAINT,也可用Invalidate

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧