Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Accesar a las propiedades de otros objetos (https://www.clubdelphi.com/foros/showthread.php?t=16661)

sharky 06-12-2004 21:06:36

Accesar a las propiedades de otros objetos
 
F1.... :rolleyes:

Tengo un problemilla....

Estoy haciendo un procedimiento para validar datos desde una forma; para posteriormente llamarla desde cualquier otra y poder verificar que los datos que yo pida esten correctos; cada forma tiene un número distinto de objetos, los únicos que valido son los TEdit(que no estén vacios, que escriban letras cuando deban hacerlo, etc), TComboBox, etc. ya pase el formulario por valor: Procedure Validar (sender : TObject); ya puedo accesar a la lista de componentes con un for :p : For I := 1 to (Sender as TForm).Componentcount -1 Do

y ya puedo separar cada uno de los componente con ClassName :p , pero ahora el problema es que yo quiero modificarle la propiedad color (por ejemplo) al componente (Sender as TForm).Components[i] y no puedo...:(

Ya intenté declara una variable igual a al tipo de objeto que deseo modificar :
Edit := TEdit.Create((Sender as TForm).Components[i])
y se crea el objet, pero no puedo modificar el valor .....:confused:


Alguien tiene una propuesta....



F1..... PLIS....


ATTE

Sharkenstein ______/(
( (

P.D. Mil disculpas si está un poco extenso el texto, pero creo necesario explicar todo el contexto....

THNKS :D

Neftali [Germán.Estévez] 07-12-2004 09:51:41

Cita:

Empezado por sharky
...Ya intenté declara una variable igual a al tipo de objeto que deseo modificar :
Edit := TEdit.Create((Sender as TForm).Components[i])
y se crea el objet, pero no puedo modificar el valor .....:confused:

Todo perfecto hasta ahí, pero no debes crear de nuevo el objeto, puesto que has pasado el formulario por parámetro y los componentes ya existen; BAsta con que hagas lo siguiente:

Código Delphi [-]
  Edit := TEdit((Sender as TForm).Components[i]);
  Edit.Color := ...
 
//  o directamente
 
  TEdit((Sender as TForm).Components[i]).Color := ...

Asegurate antes de hacer el CAST ( TEdit(...)) de que el componente es un TEdit, ya que sino tendrás un "Abstract error".

sharky 07-12-2004 23:58:55

Gracias por el tip
 
Gracias Neftaly por ese tip, aunque nada más funciona estando en la misma forma, no puedo modificar las propiedades desde un módulo de Datos, por ejemplo, pero se me ocurre crear un componente y pegarlo en cada form, de esta manera funcionará...

Que buena onda que existan tipos que aún deseen ayudar y enseñar a otros :p compoartiendo lo poco o mucho que saben...



Atte

Sharkenstein..,



"LA ESCUELA ES EL ARCA DE NOE..... "
.
.
.

" PORQUE ES LA SALVACIÓN DE LOS ANIMALES" :D


La franja horaria es GMT +2. Ahora son las 11:18:09.

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