Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   TCurrencyEdit y TCustomEdit(). ??? (https://www.clubdelphi.com/foros/showthread.php?t=23371)

vtdeleon 14-07-2005 20:59:56

TCurrencyEdit y TCustomEdit(). ???
 
Saludos.

Tengo un procedimiento para limpiar todos los edit, incluyendo TCurrencyEdit de la Rx
Código Delphi [-]
...
    for n:= 0 to ComponentCount-1 do
      if Components[n] is TCustomEdit then
 TCustomEdit(Components[n]).Clear;
Esto funciona bien cuando es clear, pero cuando intente cambiar el Clear por Text (para otro asunto) no funciono en los componente CurrencyEdit
Código Delphi [-]
...
     for n:= 0 to ComponentCount-1 do
       if Components[n] is TCustomEdit then
         TCustomEdit(Components[n]).Text:='0';
Probe con
Código Delphi [-]
TCustomEdit(Components[n]).Text:='1';
en un Evento Click de un boton y no hizo cambios.
Lo contrario sucede con los componentes (similares) de JVCL
Que puede ser???
Tengo: D7, Rx7,XPSP2

delphi.com.ar 14-07-2005 21:38:11

Supongo que el problema radica que SetText no es un método Virtual o Dynamic, es estático. Y la TCurrencyEdit define su propia propiedad Text y lo que te muestra es el valor de esta última.
Yo alguna vez hice algo similar, pero creo que terminé utilizando RTTI.

Saludos!

JOSEPE 14-07-2005 21:43:16

Lo que ocurre es que TCustomEdit si posee en su definición el método Clear, pero no declara ninguna propiedad Text.
Salu2
JOSEPE

yusnerqui 14-07-2005 21:45:41

Hola
 
Pues porque la propiedad de almacenamiento de datos de este componente no es text sino Values. Si no quieres utilizar el Clear creo que tendrás que:

Código Delphi [-]
for n:= 0 to ComponentCount-1 do
if Components[n] is TCustomEdit then
begin
TCustomEdit(Components[n]).Text := '0';
if Components[n] is TCurrencyEdit then
TCurrencyEdit(Components[n]).Value := 0;
end;
Saludos:)

delphi.com.ar 14-07-2005 21:46:13

Cita:

Empezado por JOSEPE
Lo que ocurre es que TCustomEdit si posee en su definición el método Clear, pero no declara ninguna propiedad Text.

La propiedad Text viene de TControl. Y la diferencia con Clear (de TCustomEdit) es que si es un método Virtual sorbreescrito en TCurrencyEdit!

vtdeleon 14-07-2005 22:11:22

Ok
Hice algo parecido a lo comentado por yusnerqui
Gracias a todos por la aclaracion:cool:


La franja horaria es GMT +2. Ahora son las 07:57:23.

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