개체가 할당 된 양식의 이름을 반환하는 프로 시저를 만들고 싶습니다. 예를 들면 다음과 같습니다.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