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 22-09-2016
sa_pirata sa_pirata is offline
Miembro
 
Registrado: dic 2015
Posts: 14
Poder: 0
sa_pirata Va por buen camino
Agrupar Objetos y Modificar Propiedades

Estimados, buenas tardes a todos, desde ya, gracias por las respuestas que me puedan dar.

Primero les explico el escenario:
Estoy programando un sistema TPV en Delphi 7 (Amo esta versión) y quiero hacerlo bien genérico para amoldarse a cualquier cliente (esto no es gran problema, casi que está resuelto), y se me dio por querer hacerlo también, algo personalizable, es decir, que se le pueda cambiar los colores de fondo a los formularios, colores de fuente, cuadros de texto, etc; hasta aquí ni un problema, he creado dos archivos *.ini que en uno (ConfigColor.ini) tengo los parámetros y distintas paletas con los colores ya configurados y tengo el otro archivo (ActiveColor.ini) con el color activo en el sistema. He probado que funcionen y anda todo perfecto.

El Conflicto:
Pero, como puedo hacer para poder agrupar objetos tipo TEdit (en el caso de los cuadros de texto) o de tipo TLabel, para poder modificarlos a todos de una sola vez (por supuesto, modificar todos los que sean de un mismo tipo a la vez). Como información, mis objetos tienen una nomenclatura particular, dependiendo del objeto y la función, por ejemplo un TEdit que funciona como campo para algún filtro, tiene por nombre "txt_filtro", o un botón que sea para cerrar el formulario actual se llama "btn_cerrar".

No soy un experimentado programador, he hecho uno que otro trabajito pero siempre cosas simples, y estoy queriendo llevar mi experiencia y mis proyectos a otro nivel, y la verdad no tengo muchos (nadie) a quien recurrir físicamente por ayuda.

Saludos!

Última edición por sa_pirata fecha: 22-09-2016 a las 22:50:27. Razón: Aclaración de versión delphi
Responder Con Cita
  #2  
Antiguo 23-09-2016
Avatar de Luis M.
[Luis M.] Luis M. is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Ripollet - Barcelona
Posts: 212
Poder: 20
Luis M. Va por buen camino
Hola.
Agruparlos no lo se, pero podrías hacer algo así para tratar todos los DBEdits

Código Delphi [-]
 for I:= 0 to ControlCount - 1 do
    begin
      if Controls[i] is TDBEdit then
      begin
        TDBEdit(Controls[i]).ReadOnly := True;
        TDBEdit(Controls[i]).TabStop := False;
        TDBEdit(Controls[i]).Color := clMoneyGreen;
        TDBEdit(Controls[i]).StyleElements := [seFont,seBorder];
      end;
    end;
Responder Con Cita
  #3  
Antiguo 23-09-2016
sa_pirata sa_pirata is offline
Miembro
 
Registrado: dic 2015
Posts: 14
Poder: 0
sa_pirata Va por buen camino
Cita:
Empezado por Luis M. Ver Mensaje
Hola.
Agruparlos no lo se, pero podrías hacer algo así para tratar todos los DBEdits

Código Delphi [-]
 for I:= 0 to ControlCount - 1 do
    begin
      if Controls[i] is TDBEdit then
      begin
        TDBEdit(Controls[i]).ReadOnly := True;
        TDBEdit(Controls[i]).TabStop := False;
        TDBEdit(Controls[i]).Color := clMoneyGreen;
        TDBEdit(Controls[i]).StyleElements := [seFont,seBorder];
      end;
    end;
Muchas, gracias, voy a probar y aviso a ver que tal sale todo!
Responder Con Cita
  #4  
Antiguo 23-09-2016
sa_pirata sa_pirata is offline
Miembro
 
Registrado: dic 2015
Posts: 14
Poder: 0
sa_pirata Va por buen camino
Cita:
Empezado por Luis M. Ver Mensaje
Hola.
Agruparlos no lo se, pero podrías hacer algo así para tratar todos los DBEdits

Código Delphi [-]
 for I:= 0 to ControlCount - 1 do
    begin
      if Controls[i] is TDBEdit then
      begin
        TDBEdit(Controls[i]).ReadOnly := True;
        TDBEdit(Controls[i]).TabStop := False;
        TDBEdit(Controls[i]).Color := clMoneyGreen;
        TDBEdit(Controls[i]).StyleElements := [seFont,seBorder];
      end;
    end;
Me funcionó mejor que perfecto.
Muchisimas gracias Luis M.
Saludos!
Responder Con Cita
  #5  
Antiguo 23-09-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Metes los objetos en una lista (esto seria lo que vos llamas agrupar) cuando los vas creando; o si los creaste todos en tiempo de diseño, al crear tu Form (por ejemplo en el evento FormCreate) los agregas a dicha lista

Luego, recorres la lista, para cada elemento de la lista, modificas la propiedad con el valor correspondiente

Ej:

Código Delphi [-]
procedure TForm1.Edits_SetEnabled(const Value: Boolean);
var
  I: Integer;
  Each: TEdit;
begin
  for I := 0 to EditList.Count - 1 do
  begin
    Each := TEdit(EditList[i]);
    Each.Enabled := Value;
  end;
end;

Donde EditList seria una variable privada de tu Form de tipo TList, que si no me falla la memoria, en Delphi 7 esta definida en la unidad Classes

Aca hay un poco de informacion y ejemplos de uso de la clase TList

El codigo anterior se puede mejorar y escribir mas generico de manera tal que puedas pasar la propiedad a modificar dinamicamente, es decir, podrias escribir este tipo de cosas:

Código Delphi [-]
  ...
  Edits_SetValue('Enabled', True);

Pero tendrias que hacer uso de RTTI para buscar la propiedad y asignar el valor correspondiente

Saludos
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
Acceso a objetos/propiedades de otro Form adrall OOP 6 30-07-2011 10:15:24
Propiedades y el Inspector de Objetos mcsebas OOP 6 18-02-2011 17:25:29
Conocer clases y propiedades de los objetos de cualquier ventana windows. chozas API de Windows 3 19-06-2008 19:26:04
Crear una clase y asignar objetos como propiedades leanfreue OOP 4 13-04-2007 00:08:33
Accesar a las propiedades de otros objetos sharky Varios 2 07-12-2004 23:58:55


La franja horaria es GMT +2. Ahora son las 13:12:27.


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