Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Salir de un TEdit (https://www.clubdelphi.com/foros/showthread.php?t=94836)

Angel.Matilla 13-08-2020 10:24:43

Salir de un TEdit
 
Buenos días. Sé que tiene que ser una tontería, sé que tiene que haber alguna respuesta por el foro pero no soy capaz de dar con ella. Tengo este código:
Código:

void __fastcall TfTablas::LabeledEdit1Exit(TObject *Sender)
{
    TCustomEdit *Edit = dynamic_cast<TCustomEdit *>(Sender);

    if (GetAsyncKeyState(VK_ESCAPE) != 0)
    {
          Button5Click(NULL);
          return;
    }
   
    try
    {
          if (Edit->Text.Trim().Length() != 4 || StrToIntDef(Edit->Text, 0) == 0)
              throw Exception("Este código de entidad es incorrecto. Revise.");
    }
    catch(Exception &Exc)
    {
          Mensaje(1, Exc.Message, "Volver");
          Edit->SetFocus();
          return;
    }
}

Evidentemente hace más cosas pero el problema lo tengo ahí. Necesito que al pulsar la tecla Escape no se haga la validación que hay después, de forma que se abandone ese trozo del formulario. He probado en los eventos OnKeyDown, OnKeyPress u OnKeyUp del TLabeledEdit, tengo puesta una validación en el OnKeyPress del formulario, he probado como está con GetAsyncKeyState... pero ponga lo que ponga siempre se ejecuta la validación.

Angel.Matilla 13-08-2020 10:49:58

Solucionado. En lugar de GetAsyncKeyState he usado GetKeyState y si me hace bien lo que quiero.


La franja horaria es GMT +2. Ahora son las 03:50:21.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi