Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   No puedo consultar el estado ReadOnly de un TEdit (https://www.clubdelphi.com/foros/showthread.php?t=92879)

Angel.Matilla 02-03-2018 13:06:26

No puedo consultar el estado ReadOnly de un TEdit
 
Tengo este código:
Código PHP:

void __fastcall TfRecMod::FechaExit(TObject *Sender)
{
     
TCustomEdit *Edit dynamic_cast<TCustomEdit*>(Sender);

     if (
Edit->ReadOnly)
          return;
[...]


Está en un evento de un TEdit en el que hago validaciones para varios campos similares, en vez de declarar un evento para cada uno dichos campos. En algunos casos la propieda ReadOnly de los TEdit / TLabeledEdit está puesta a true porque me interesa que la información no se pueda modificar. Sin embargo a la hora de compilar la aplicación, el compilador me genera un error:
Cita:

E2247 'TCustomEdit::ReadOnly' is not accessible
En este caso ¿cómo puedo comprobar la situación de dicha propiedad? Por lo que he visto en la ayuda de Builder mientras en un TEdit esta propiedad es pública en un TCustomEdit está protegida.

ecfisa 02-03-2018 18:09:24

Hola.

Si vas a usar el evento OnExit sobre TEdit y TCustomEdit, debes realizar el moldeo de este modo:
Código PHP:

void __fastcall TfRecMod::FechaExit(TObject *Sender)
{
  
TEdit *Edit static_cast<TEdit*>(Sender); // <--

  
Caption = (Edit->ReadOnly) ? "ReadOnly" "Normal";

  [...]


Saludos :)

Angel.Matilla 02-03-2018 19:07:41

Muchas gracias.


La franja horaria es GMT +2. Ahora son las 16:55:51.

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