Cita:
Empezado por Jere_84
Hola gente del club, en una de mis funciones quiero obtener el componente padre de un dbedit y trabajar con este, mi problema es:
|
Hola... prueba con este código a ver si te sirve.
Código Delphi
[-]
function GetParentOfType(pClassType : TClass;
pComponent : TComponent;
var vComponent : TComponent) : Boolean;
var
lComponent : TComponent;
lBoFound : Boolean;
begin
lBoFound := False;
lComponent := pComponent.GetParentComponent;
while (not lBoFound) and Assigned(lComponent) do
begin
if lComponent.ClassType = pClassType then
begin
vComponent := lComponent;
lBoFound := True;
end
else
lComponent := lComponent.GetParentComponent;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
lComponent : TComponent;
i : Integer;
lTabSheet : TTabSheet;
begin
for i := 0 to Self.ComponentCount - 1 do
begin
if Self.Components[i] is TEdit then
begin
if Length(Trim(TEdit(Self.Components[i]).Text)) = 0 then
begin
if GetParentOfType(TTabSheet, Self.Components[i], lComponent) then
begin
lTabSheet := TTabSheet(lComponent);
if GetParentOfType(TPageControl, lTabSheet, lComponent) then
begin
TPageControl(lComponent).ActivePage := lTabSheet;
TEdit(Self.Components[i]).SetFocus;
end;
end;
end;
end;
end;
end;