Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Cambiar la una propiedades de todos los componentes de una form (https://www.clubdelphi.com/foros/showthread.php?t=39033)

Mauro® 09-01-2007 00:43:25

Cambiar la una propiedades de todos los componentes de una form
 
Hola a todos les escribo nuevamente para hacerles una consulta, hay alguna forma de cambiar una propiedad de todos los componentes de una form?. Mi problema en concreto es el siguiente, tengo un Datamodule con varias tablas y quisiera poder cambiarles a todas la propiedad Active de una sola vez. Alguien me puede orientar con esto???

Desde ya muchas gracias a todos.
Un gran saludo.
Mauro.

samantha jones 09-01-2007 01:02:17

podrias poner algo como esto:


Código Delphi [-]
for i:=0 to componentsCount -1 do     
    if components[i] is TTable then            
         TTable(components[i]).open;

Mauro® 09-01-2007 13:47:28

No me funciona
 
Hola gracias por la respuesta, ya había probado algo similar pero no me funciona, falta algo en el Uses?

Saludos y gracias.

BuenaOnda 09-01-2007 14:05:46

Claro.. tienes que crear una instancia del objeto...

por ejemplo para limpiar todas las cajas de texto de un Form podria poner algo como esto :

Function LimpiarCajasDeTextos(Forma : TForm);
var
Caja : TEdit;
begin

FOR J:=0 TO Forma.ComponentCount - 1 DO
BEGIN
{ Limpiamos las Edits }
IF Forma.Components[J] IS TEdit THEN
BEGIN
Caja:=Forma.Components[J] as TEdit;
Caja.Text:='';
END;
END;
end;

obviamente debes poner en el uses de tu TDataModule, la libreria correspondiente para el Form (Forms) y para el TEdit...

Suerte espero que te sirva...:D

Lepe 09-01-2007 20:36:21

Hola BuenaOnda, para ser concisos, al código de samantha jones no le falta nada.

Se supone que ese código va en el Datamodule, y puesto que dentro de él, existen ya objetos TTable, los uses los habrá añadido Delphi.

Para ser pejigueras... como decimos por aquí, pues sí, le falta declarar la variable "i" :D.

Quizás falte algo que no es obvio:

Esto no funcionará:
Código Delphi [-]
procedure AbreTablas;
var i:integer;
begin
for i:=0 to componentsCount -1 do     
    if components[i] is TTable then            
         TTable(components[i]).open;
end;

Sin embargo esto sí:

Código Delphi [-]
procedure TDatamodule1.AbreTablas;
var i:integer;
begin
for i:=0 to componentsCount -1 do     
    if components[i] is TTable then            
         TTable(components[i]).open;
end;

Siendo TDatamodule1 el nombre de dicho módulo de datos.

Saludos


La franja horaria es GMT +2. Ahora son las 21:47:44.

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