Я хотел бы создать процедуру, которая возвращает мне имя формы, в которой выделен объект. Например:Как открыть владельца из объекта в 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