Ver Mensaje Individual
  #4  
Antiguo 05-10-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Reputación: 24
maeyanes Va por buen camino
Hola...

Según la ayuda.. la propiedad Visible de un TField solo sirve para indicar si este se muestra o no en un data grid...

En tu código no necesitas del TDataLink para saber si un campo está o no asociado a un control... Podrías intentar con lo siguiente:

Código Delphi [-]
procedure HideFieldControls(AForm: TForm; AField: TField);
var
  I: Integer;
  PropInfo: PPropInfo;
  FieldName: string;

begin
  for I := 0 to Pred(AForm.ControlCount) do
  begin
    PropInfo := GetPropInfo(AForm.Controls[i].ClassInfo, 'DataField');
    // Si existe la propiedad DataField en el componente
    if Assigned(PropInfo) then
    begin
      //Obtenemos el nombre del campo y lo comparamos con el que enviamos al procedimiento
      FieldName := GetStrProp(AForm.Controls[i], PropInfo);
      if (AField.FieldName = FieldName) and (AForm.Controls[i] is TWinControl) then
        TWinControl(AForm.Controls[i].Hide
    end
  end
end;

Esto lo hice de memoria y sin probarlo, espero te sirva...



Saludos...

Última edición por maeyanes fecha: 05-10-2007 a las 19:06:58.
Responder Con Cita