No sé, pero si no son muchas clases, con los overloads podrías hacerlo, o ya puesto con funciones:
Código Delphi
[-]
function tform1.obja(cep:string):Tcomponent;
begin
result := findcomponent(cep);
end;
function tform1.obja(cep:string):TEdit;
begin
result := TEdit(findcomponent(cep));
end;
function tform1.obja(cep:string):TOpenDialog;
begin
result := TOpenDialog(findcomponent(cep));
end;
o hacer una clase que lo englobe todo:
Código Delphi
[-]
TBusca = class(TObject)
private
encontrado:TComponent;
procedure SetName(Value:String);
public
ComponentName:string read FName write SetName;
function AsEdit:TEdit;
function AsOpenDialog:TOpenDialog;
end
implementation
procedure TBusca.SetName(Value:string);
begin
encontrado := Form1.Findcomponet(value);
end;
function TBusca.AsEdit:TEdit;
begin
if Assigned(encontrado) then
result := TEdit(encontrado)
else
result := nil;
end;
function TBusca.AsOpenDialog:TOpenDialog;
begin
if Assigned(encontrado) then
result := TOpenDialog(encontrado)
else
result := nil;
end;