Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-06-2011
Dclase Dclase is offline
Miembro
 
Registrado: ene 2007
Posts: 35
Poder: 0
Dclase Va por buen camino
Gracias Caral, con un Procedure ya la habia probado y me funciona la parte de cambiarlo todo, pero necesito que sea con una funcion para pasar el numero del que quiero dejar una propiedad diferente a los demas.
Responder Con Cita
  #2  
Antiguo 16-06-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola

Código Delphi [-]
Procedure Cambio;
var
   dif,  i : Integer;
  comp : TComponent;
begin
  Dif:= 5; // por ejemplo
  for i := 1 to 10 do begin
  comp := FindComponent('Edit' + IntToStr(i));
  If TEdit(comp).text <> IntToStr(Dif) then
  begin 
  TEdit(comp).Color:= clRed;
  end;
end;

Saludos

Edito: Corregido.
__________________
Siempre Novato

Última edición por Caral fecha: 16-06-2011 a las 22:22:59.
Responder Con Cita
  #3  
Antiguo 17-06-2011
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 23
defcon1_es Va por buen camino
Hola. Puedes hacer un procedimiento con los parámetros que necesites tener en cuenta y/o cambiar
Código Delphi [-]
procedure CambiarPropiedad(Contenedor: TForm; NumeroElemento: Integer; NuevoColor: TColor, Activar:Boolean);
var i:Integer;
begin
  for i := 0 to (Contenedor.ComponentCount - 1) do  
  begin         
    if (Contenedor.Components[i] is TEdit)
    then begin
      if TEdit(Contenedor.Components[i]).Name = 'Edit+IntToStr(NumeroElemento)
      then begin       
        TEdit(Contenedor.Components[i]).Color := NuevoColor;         
        TEdit(Contenedor.Components[i]).Enabled := Activar;         
      end;
    end;
  end;
end;

Esto está bien para 2 o 3 clases de componentes, pero si son 6 o mas clases de componentes que quieres cambiar sus propiedades,
es mejor aprovecharse de la RTTI (esa gran desconocida)

Código Delphi [-]
procedure CambiarPropiedad(Contenedor: TForm; Clase: String; NuevoColor: TColor; Activar:Boolean);
var i:Integer;
PropInfo: PPropInfo;
begin
  for i := 0 to (Contenedor.ComponentCount - 1) do  
  begin         
      if Contenedor.Components[i].ClassNameIs(Clase)
      then begin
// 2.-Buscamos si el componente tiene la propiedad 'Color'
       PropInfo := TypInfo.GetPropInfo(Contenedor.Components[i].ClassInfo, 'Color') ;
       if Assigned(PropInfo)
       then begin
// 3.-Damos el valor que queremos a la propiedad 'Color'
         TypInfo.SetOrdProp(Contenedor.Components[i], PropInfo, LongInt(NuevoColor));
// 4.-Buscamos si el componente tiene la propiedad 'Enabled'
         PropInfo := TypInfo.GetPropInfo(Contenedor.Components[i].ClassInfo, 'Enabled') ;
         if Assigned(PropInfo) then
// 5.-Damos el valor que queremos a la propiedad 'Enabled'
           TypInfo.SetOrdProp(Contenedor.Components[i], PropInfo, LongInt(Activar));
       end;
    end;
  end;
end;
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...

Última edición por defcon1_es fecha: 17-06-2011 a las 09:38:29.
Responder Con Cita
  #4  
Antiguo 17-06-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.437
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Tal vez esta entrada pueda ayudar: "Modificar propiedades de controles en ejecución utilizando RTTI".

La ventaja de hacerlo con RTTI es que podría llamar a esta función:

Código Delphi [-]

// Otros ejemplos 
SetPropAsString(Components[i], 'Left', '10'); 
SetPropAsString(Components[i], 'Color', 'clRed');

Sin preocuparte del Tipo de control (TEdit, TCheckbox,...). Si tiene la propiedad y se llama así la cambiará.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cambiar propiedades de la barra de scroll dmr1974 Varios 2 18-06-2008 20:04:02
Como asiganar IP a PC cambiar propiedades TCP/IP JuanErasmo API de Windows 2 08-09-2007 20:37:06
Cambiar Propiedades de ZConnection Maury Manosalva MySQL 4 12-12-2006 17:11:57
Llamar a una funcion almacenandola en una variable papulo Varios 15 02-02-2006 18:19:25
Llamada a una funcion que incluye en el nombre una variable papulo PHP 11 28-12-2005 16:38:19


La franja horaria es GMT +2. Ahora son las 01:30:18.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi