Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-02-2010
Lenny Lenny is offline
Miembro
 
Registrado: jun 2007
Posts: 161
Poder: 17
Lenny Va por buen camino
Exclamation Cambiar estado de varios Componentes a la ves

Hola y gracias de antemano, me han servido mucho los comentarios a mis dudas y hoy tengo otra.

Encontré un código bastante útil, lo utilizo sobre unos DBEdit cambiando según la necesidad de ReadOnly a True ó False, el código en cuestión:

procedure TForm1.ReadOnly(Value:boolean);
Código Delphi [-]
var
  PropInfo  : PPropInfo;
  Component : TComponent;
  i         : integer;
begin
  for i := 0 to ComponentCount - 1 do begin
    Component := Components[ i ];
    if Component is TControl then begin
            PropInfo := GetPropInfo( Component.ClassInfo, 'ReadOnly' );
      if Assigned( PropInfo ) and
         ( PropInfo^.PropType^.Kind = tkEnumeration ) then
        SetOrdProp( Component, PropInfo, integer( Value ) );
    end;
  end;
end;


Es bastante cómodo, se ejecuta así:

Código Delphi [-]
procedure TForm1.DBEdit15Exit(Sender: TObject);
begin
ReadOnly(True);
end;


Pero... también tengo un DBGrid en la misma Form y pienso utilizarlo en más Form's pero me cambia a todos los componentes que tengan ReadOnly, las preguntas son dos:

1) ¿Se puede modificar y como para que solo afecte a un tipo de componentes y no a todos?

2) ¿Que cambios debería hacer para que además de cambiar de ReadOnly también pueda cambiar el color de los DBEdits por ejemplo?

Lo pregunto por qué he intentado de todo y no me funciona aun (modificarlo, por que cumple bien su funcion inicial), y como ven, el código en si es bastante útil (al menos para mí) y me ahorraría muchas líneas de código en vez de escribir una por una
Código Delphi [-]
DBEDit1.Color:= clWindow
ó
Código Delphi [-]
DBEdit1.ReadOnly:= True
lo ideal es usar este mismo código que a mí me sirve muchísimo (o alguno similar) ya que se escribe una vez y al llamarlo coloco la opción que sea necesaria sin tener que colocarlo dentro de un boton para pdoer ejecutarlo como solia hacerlo antes.

Espero no abusar de su buena voluntad, muy agradecido si alguien puede ayudarme, de antemano mil gracias...

Lenny.
Responder Con Cita
  #2  
Antiguo 26-02-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola leny, debes preguntar por el nombre de la clase, en tu caso TDBEdit.

Código Delphi [-]
procedure ReadOnly(valor : Boolean);
  for i := 0 to ComponentCount - 1 do begin
    Component := Components[ i ];
    if Component is TDBEdit then
     TDBEdit(Component).ReadOnly := valor;
  end;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
Respuesta



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
Error:"La operación en varios pasos generó errores. Compruebe los valores de estado" Chogo Tablas planas 3 10-02-2009 17:24:51
La operacion en varios pasos generó errores. Compruebe los valores de estado. Cabanyaler Conexión con bases de datos 6 06-08-2007 21:13:15
Como cambiar una propiedad en varios componentes a la vez!! ilichhernandez OOP 2 13-11-2005 22:16:51
Cambiar el color de fondo de varios componentes... alt126 C++ Builder 1 05-02-2005 11:47:41
Cambiar el estado de un checkbox insertado en un grid. Carlos Arevalo Varios 4 27-10-2004 02:27:49


La franja horaria es GMT +2. Ahora son las 15:32:32.


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