Ver Mensaje Individual
  #6  
Antiguo 19-05-2010
Avatar de Faust
Faust Faust is offline
Miembro
 
Registrado: abr 2006
Ubicación: México D.F.
Posts: 930
Reputación: 21
Faust Va por buen camino
Se me ocurre otra que he usado en estos casos:

Lla función:

Código Delphi [-]
function FindCompByName(AContainer: TForm; AName: TComponentName):TComponent;
var
  i: Integer;
begin
  Result:= nil;
  for i:= 0 to AContainer.ComponentCount - 1do
    if AContainer.Components[i].Name = AName then
      Result:= AContainer.Components[i]
end;

Recibe como parámetros el nombre de un contenedor, en este caso un Form, y un nombre de un componente, te devuelve ese componente.

Este es un ejemplo de como usarlo:

Código Delphi [-]
procedure TForm1.btnTestClick(Sender: TObject);
begin
  with TStringGrid(FindCompByName(Self, 'grdAquiEstoy')) do
  begin
    DefaultColWidth:= 60;
    DefaultRowHeight:= 20;
//  Aqui puedes poner código para manipular el componente
  end;
end;

Para realizar este ejemplo pon varios controles en un formulario, además un botón llamado btnTest y un stringgrid llamado grdAquiEstoy, en el OnClick del botón btnTest inserta este código y afectará las columnas y filas del stringgrid, espero te sirva.

NOTA: Este no verifica si existe o no el componente, tal y como lo hace el ejemplo de Caro, el control debe existir o debes escribir código para manejar la situación en caso de que no exista.
__________________
Herr Heins Faust

Última edición por Faust fecha: 19-05-2010 a las 16:47:09. Razón: corrección
Responder Con Cita