如何在TImage上在程序运行过程中加一个Tlabel,为何我加了后,看不见?(10分)

  • 主题发起人 主题发起人 Boblee
  • 开始时间 开始时间
B

Boblee

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在运行过程中在Timage上加一个TLalbel,但看不这个Label,另外,如何对这个Label设parent.
我现在是这样设的:
。。。
lab := TLabel.create(nil);
lab.caption := 'test labe on timage';
Lab.parent := TWincontrol(img);//=img.Hostdocksit.
...
因为只有这两个才能得到TWincontrol类型的object.
但就是看不见这个lab.
 
lab.Parent := Image1 //如果你的Image.Name = Image1
 
lab.left := ...
lab.top := ....
lab.width := ...
lab.height := ...
 

我的部分Code:
uses
..
implement
var
g_tmpImg:Timage;
...
tipLab := TLabel.Create(nil);
with tipLab do
begin
Color := clWindow;
Font.Charset := DEFAULT_CHARSET;
Font.Color := clRed;
Font.Style := [fsBold];
Font.Size := 9;
Font.Height := -11;
ParentColor := False;
ParentFont := False;
AutoSize := true;//是AutoSize,所以我就没设Width,height.
Caption := tip;
Parent := g_tmpimg.hostDocksite;//TWinControl(g_tmpimg);
Left := 10;
top :=20;
end;
 
如果直接 lab.Parent := Image1 //如果你的Image.Name = Image1会出现编译错误:类型
错误:不能把TImage付给TWincontrol.
 
Image是继承自TGraphicControl的,不是容器,不能作为label的容器吧?
 
那怎么办?
 
将其属性设置成透明的!
 
lab.Parent:=Image1.parent;
lab.BringToFront;
给分吧 :)
 
后退
顶部