Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Modificar propiedad de varios componentes del mismo tipo (https://www.clubdelphi.com/foros/showthread.php?t=77184)

chartres 30-12-2011 18:57:53

Modificar propiedad de varios componentes del mismo tipo
 
Hola,

alguien sabe alguna manera de modificar la propiedad de varios componentes del mismo tipo.
en especifico un tquery.

Yo tengo una funcion pero hace la busqueda del componente por nombre, no por tipo
y para que funcione necesito ponerle el nombre parecido a los querys, query1, query2, etc

pero yo quiero una funcion que busque por tipo de componente y a todos por ejemplo les diga
Tquery.open;
sin importar el nombre que tengan. ya que no puedo ponerle a todos query1,quey2 ..etc,

espero me explique y alguien sepa.
gracias

ecfisa 30-12-2011 19:22:29

Hola chartres.
Cita:

pero yo quiero una funcion que busque por tipo de componente y a todos por ejemplo les diga
Tquery.open;
sin importar el nombre que tengan. ya que no puedo ponerle a todos query1,quey2 ..etc,
Te pongo un ejemplo que abre todos los TIBQuery de un form:
Código Delphi [-]
...
var
  i: Integer;
begin
  for i:= ComponentCount -1  downto 0 do
    if Components[i] is TIBQuery then
      (Components[i] as TIBQuery).Open;
end;
Si utilizas BDE deberás evaluar por TQuery, si ADO por TADOQuery, etc.

Saludos.

chartres 30-12-2011 19:50:36

hola,

ya tenia esa funcion pero la estaba yo queriendo llamar de una forma externa. no donde estan los querys y no funcionaba, pero como me la pasaste retome la opcion y le busque y funciono.

gracias, asunto resuelto.

AzidRain 30-12-2011 20:59:25

Otro truco es usar un la propiedad tag para diferenciar los componentes, así te puede servir para diferencias unos de otros aún siendo del mismo tipo, en donde "is" ya no nos sería tan útil. Supongamos que tenemos 5 Tquerys y quieres mover siempre solo 3, pues le pones el mismo tag a los 3 que requieres y quedaría así:

Código Delphi [-]

for i:= ComponentCount -1  downto 0 do
    if (Components[i] is TIBQuery) and (Components[i].tag=2) then  // Solo abrimos los TIBQuery que esten marcados con ese tag
      (Components[i] as TIBQuery).Open;


La franja horaria es GMT +2. Ahora son las 11:01:26.

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