Ver Mensaje Individual
  #12  
Antiguo 25-11-2004
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Reputación: 22
andres1569 Va por buen camino
Hola

Cita:
Empezado por sergio_015
O sea que si comparar=58 y cumple con la condicion entonces cambiara un shape, pero y el shape se llama NOM58 que coincidiria con el valor de comparar, un poco revoltoso pero es necesario , es por eso q aclaraba lo del nombre
Intuyo que aparte de comprobar si es un TShape, miras el número con que lo has nombrado (58 en el ejemplo) para ver si cumple cierta condición (digamos menor de 200 o algo así). Para no complicarte la vida dando nombres a todos los TShapes, incluso para agilizar las comparaciones, quizás te convenga hacer uso de la propiedad Tag, común a todos los descendientes de TComponent. Está pensada para cosas como estas, basta con que asignes (y de un tirón mediante el Object Inspector tras seleccionar los TShapes deseados) un número concreto (pongamos el 7) y ya tienes diferenciados los shapes, incluso puedes crear más categorías (... tantas como números alberga un tipo Integer ). Siguiendo el ejemplo que te puso Marcos (con la corrección de Román ):

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
Var
  nConta : Integer;
  AComponent : TComponent;
begin
  for nConta:=0 to form1.ComponentCount -1 do
  begin
    AComponent := form1.Components[nConta];
    if (AComponent is TShape) AND (AComponent.Tag = 7) then
      TShape(AComponent).brush.Color := ClGreen;
  end;
end;
En el ejemplo utilizo la variable AComponent para guardar el valor de form1.Components[nConta], para evitar llamar varias veces la misma propiedad Components[n], manías mías .

Saludos
__________________
Guía de Estilo

Última edición por andres1569 fecha: 25-11-2004 a las 09:53:59.
Responder Con Cita