現在我動態創建了TIMage控制元件 也寫了它雙擊的事件 但是我想在雙擊的時候獲取這個Image控制元件的名稱
請問怎么寫
uj5u.com熱心網友回復:
vars_name: string;
begin
if sender is Timage then s_name:=Timage(sender).name;
end
uj5u.com熱心網友回復:
showmessage 是空的
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
(sender as Tbutton).nameuj5u.com熱心網友回復:
應該是你創建的時候沒有賦予name屬性,哪種寫法都一樣
uj5u.com熱心網友回復:
同LS,創建時需給它個name
var
img: Timage;
begin
img := TImage.Create(Self);
img.Name := 'myImg';
.....
uj5u.com熱心網友回復:
應該是你在創建的時候沒有給這個組件命名。樓上是創建時命名代碼。
uj5u.com熱心網友回復:
看看你自己創建timgage控制元件時的問題uj5u.com熱心網友回復:
在創建TIMage時,給image賦予name屬性,加個tag
SetLength(image,4);
......
image[i] := TImage.Create(Self);
image[i].Caption := '打開';
image[i].Name := '名稱'+inttostr(i);
image[i].Tag := i;
image[i].Top := top;
image[i].Left := Left;
image[i].OnClick := ClickImage;
......
在image的ClickImage點擊事件中
if sender is TImage then
begin
i := (sender as TImage).tag;
showmessage(image[i].name);
end;
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
控制元件名稱只是在寫代碼的時候用來獲取控制元件物件,而動態創建的控制元件已經直接獲取到物件了,名稱已經沒有意義。uj5u.com熱心網友回復:
樓上說的 認同 我平時用的用動態陣列來 來記錄動態的建的物件 這個9樓 的同學已經給了 當然你若非要用名字 6樓 的正解轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/132858.html
標籤:VCL組件開發及應用
