Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Operador IS con Componentes DevExpress (https://www.clubdelphi.com/foros/showthread.php?t=26595)

onlytk 27-10-2005 19:04:25

Operador IS con Componentes DevExpress
 
Hola amigos, tengo un problema con unos componentes devExpress, recientemente los descargue y al implementar una rutina en un control TcxTextEdit, que no es mas que un Edit Box, al presionar ENTER este salte al siguiente control, no me funciona, segun encontre en un truco en Club Delphi, esto deberia funcionar

Código Delphi [-]
procedure TfrmLogin.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    if (ActiveControl is TcxTextEdit) then
    begin
        if Key = VK_RETURN then
         Perform( WM_NEXTDLGCTL, 0, 0 );
    end;
    if Key = VK_ESCAPE then
     Close;
end;

pero al parecer cuando hago la comparacion si el ActiveControl (Control Activo) es de la Clase tcxTextEdit (Componente DevExpress) no me funciona, creo que es porque ActiveControl es del tipo TWinControl, entonces hay alguna manera para que funciones esto????. o como utilizo el IS en componentes que no esten heredados del TWincontrol??,

Gracias de antemano, salu2. :cool:

luisgutierrezb 27-10-2005 19:09:48

mmm creo que te falta poner la propiedad "KeyPreview" de la forma en True, para que cualquier tecla la procese la forma primero.

onlytk 27-10-2005 19:19:01

Ups me olvide, si le Puse KeyPreview := True, al inicio inkluso kice hacer sin la komparacion kon el operador IS, pero al presionar sobre un boton ENTER, este me tiene ke mostrar un mensaje si es korrecto o no, kon un ShowMessage, y al presionar enter en la ventana del mensaje, mi Form tambien kapturaba el ENTER, y se saltaba al otro control, por eso kice poner el: if (ActiveControl is TcxTextEdit) then, para ke el enter no sea atrapado en los botones, :( , bueno alguien sabe komo puedo solucionar alguno de estos problemas ke tengo??? :confused:

onlytk 27-10-2005 19:55:08

Acabo de buscar en la pagina de DevExpress, y al parecer para utilizar el ActiveControl, y komparar con uncontrol TcxTextEdit, debo compararlo con su clase TcxCustomInnerTextEdit, pero esta clase ni siquiera aparece en su documentacion, si no hubiera sido por la pagina del producto, nunca hubiera adivinado esa clase, exite otra forma de averiguar a que clase corresponde el ActiveControl????

La pagina del autor del DevExpress que me ayudo es la siguiente:
http://www.devexpress.com/Support/Kn...=ActiveControl

ahora si funciona.

Pero........ al presionar ENTER en el boton de OK de un showMessage sigue me envia al siguiente controld e mi formulario principal, como soluciono esto??? :confused:

onlytk 27-10-2005 20:46:19

Ok, ya lo resolvi, el problema era el evento KeyUp, ahi no es aconsejable, sino mejor usar en los eventos KeyDown, o KeyPress, bueno eso era todo jejeje, saludos a todos y gracias por responder. :cool:


La franja horaria es GMT +2. Ahora son las 00:12:13.

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