我想創建一個過程,返回分配對象的表單的名稱。例如:如何從Delphi中的對象中發現所有者?
我有一個TPanel和TPanel一個TButton。我將作爲參數傳遞給TButton的函數名稱,並希望函數返回formuário的名稱,此按鈕位於何處。
怎麼辦?
LE:
function TForm1.DoSomething(Obj: TComponent): String;
var AClass : String; I : Integer;
begin
AClass := TComponent(Obj).Owner.ClassName;
if (AClass = 'TForm') then
Result := TComponent(Obj).Name
else
Result := TComponent(Obj).Owner.Name;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
NomeForm := DoSomething(Button3);
ShowMessage(NomeForm);
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
NomeForm := DoSomething(Form1);
ShowMessage(NomeForm);
end;
組件名稱被強制爲跨越不同形式的所有者窗體的範圍內唯一的,但。可能會發生這樣的情況,即在應用程序的不同表單上有多個具有相同名稱的按鈕。 –
如果對象沒有所有者,該怎麼辦?或者所有者不是表格? –
這聽起來不像「所有權」是你所指的。這聽起來像你想要「父母」控制(或父母的父母不是表格)。 – Sam