每次点击image都是白的,没有图案
解决方案 »
- 關於如何抓取網頁中的資料?
- 如何将exe文件伪装成txt用附件发给俺的老板
- 如何用DELphi获得不断变化的动态外部IP
- 用adoquery写access数据的问题
- 如果在DELPHI中要打开C:\AAA.DATA这个媒体文件,怎样用代码实现呢?(调用WINDOWS内部的媒体播放器。)
- 超级菜:用WEBBROWSER控件做浏览器,怎么控制前进后退按扭什么时候enable
- timer的值单位是什么?
- 关于Just-in-time Debugger的问题
- 如何在quickrep报表中画一条直线?
- 大伙帮帮忙, 非Delphi问题
- 各位大侠,谁知道用delphi5.0的安装工具如何安装长文件名文件!
- 怎样打印tiff图形呢
Shift: TShiftState; X, Y: Integer);
var
Image:TImage;
BMP:TBitmap;
begin
Image:=TImage.Create(nil);
Image.parent :=Self; BMP.Height:=10;
BMP.Width:=10;
BMP.Canvas.Pen.Color:=clRed;
BMP.Canvas.Pen.Width:=2;
BMP.Canvas.MoveTo(X,Y);
BMP.Canvas.LineTo(X+10,Y-80); Image.Picture.Assign(BMP);
Image.Show;
Image.Left := x;
Image.Top := y;
end;
{ tedit1 }
procedure TForm1.FormDestroy(Sender: TObject);
var
i:integer;
begin
try
for i:=0 to self.ComponentCount-1 do
begin
if self.Components[i] is TImage then
TImage(self.Components[i]).Free;
end;
except
exit;
end;
end;end.
Shift: TShiftState; X, Y: Integer);
var
Image:TImage;
BMP:TBitmap;
begin
Image:=TImage.Create(nil);
Image.parent :=Self;
BMP:=TBitmap.Create;
BMP.Height:=Image.Height;
BMP.Width:=Image.Width; BMP.Canvas.Pen.Color:=clRed;
BMP.Canvas.Pen.Width:=2;
BMP.Canvas.Pen.Mode:=pmNot;
BMP.Canvas.MoveTo(X,Y);
BMP.Canvas.LineTo(X,Y+80);
Image.Picture.Assign(BMP);
Image.Show;
Image.Left := x;
Image.Top := y;
end;
{ tedit1 }
procedure TForm1.FormDestroy(Sender: TObject);
var
i:integer;
begin
try
for i:=0 to self.ComponentCount-1 do
begin
if self.Components[i] is TImage then
TImage(self.Components[i]).Free;
end;
except
exit;
end;
end;end.
procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.Canvas.LineTo(10,10);
Image1.Canvas.MoveTo(50,50);
end;看看这样行不行吧 你之前的代码没什么问题 XP系统上可以绘出直线
img: TImage;
begin
img := TImage.Create(Form1);
img.Parent := Form1;
img.Transparent := true;
img.Left := X;
img.Top := Y;
img.Canvas.Pen.Color := clred;
img.Canvas.Pen.Mode := pmnot;
img.Canvas.MoveTo(2,2);
img.Canvas.LineTo(2,10);
img.Show;end;
img.Canvas.LineTo(2,10); 这里的坐标是相对坐标了不能再使用X,Y要做转换
TShiftState; X, Y: Integer);
var
Image:TImage;
BMP:TBitmap;
begin
Image:=TImage.Create(Self);
Image.parent :=Self;
Image.Show;
BMP:=TBitmap.Create;
BMP.Height:=50;
BMP.Width:=50; BMP.Canvas.Pen.Color:=clRed;
BMP.Canvas.Pen.Width:=2;
BMP.Canvas.MoveTo(10,10);
BMP.Canvas.LineTo(20,40);
Image.Picture.Assign(BMP);
Image.Left := x;
Image.Top := y;
BMP.Free;
Image.Refresh;
end;
就是说我随机加载几个image,我怎么区别这些image,这些image又没有序号。
就比如上图我加载两个image, 我想让它们之间连线 第一个image的中点连到第二个image的中点,这不就要区分这两个image不一样了
怎么保存,谢谢,我是刚学习delphi的,麻烦你了
1、新建工程,在Formk,加一个TButton,一个TEDit。
2、FormMouseUp事件
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
MyImage : TImage;
Path:string;
iWidth:integer;
begin
iWidth:=strtoint(Edit1.text); //大小自己定
MyImage := TImage.Create(nil);
with MyImage do
begin
Parent := Form1; // 如果没有这句,新创建的myShape将不会显示在窗体上
Left := X;
Top := Y;
Width := iWidth;
Height := iWidth;
Canvas.Pen.Width:=3; // 边框宽度 3
Canvas.Pen.Color:=clRed; // 画笔颜色:红
canvas.Brush.color:=clYellow; // 填充色:黄
Canvas.Pen.Mode:=pmCopy; // 系统默认的模式,可写可不写
Canvas.Rectangle(0,0,iWidth,iWidth);// 画方框
Visible:=True;
end;
end;3、FormDestroy事件
procedure TForm1.FormDestroy(Sender: TObject);
var i:integer;
begin
try
for i:=self.ComponentCount-1 downto 0 do
begin
if self.Components[i] is TButton then
self.Components[i].Free;
end;
except
exit;
end;
end;4、Button1Click事件
procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;5、编译执行,见下图。在Edit1中分别输入不同的值,可以创建Image,并在Image中画出方框。