PDA

Ver la Versión Completa : Capturar Desplazamiento en Mainmenu


c748a
14-10-2010, 22:38:12
Saludos
Me interesa capturar el desplazamiento en los distintos Items de un Mainmenu para poder, mediante un mensaje sonoro, informar en que item está. El desplazamiento se produce mendiante el teclado. La finalidad sería para que lo pueda usar una persona no vidente.
Desde ya muy agradecido.

Ñuño Martínez
15-10-2010, 10:47:26
(...) La finalidad sería para que lo pueda usar una persona no vidente. (...)

No es necesario. Actualmente todos los buenos sistemas operativos incluyen ya facilidades para estos casos. En GNU/Linux basta con instalar un text-to-speech y configurar un par de variables para que "lea" el contenido de la pantalla pulsando ciertas combinaciones de teclas (Una combinación para que lea el título de la ventana activa, otra para las opciones del menú activo, etc.), aparte de existir controladores para lectores braille. Sé que MacOS también dispone de estas utilidades, y supongo que en Windows también existen, así que no es necesario que lo hagas.

Lo que deberías hacer es buscar información sobre cómo activar estas opciones y comprobar que tus programas no dan problemas. Hay páginas en Internet con consejos sobre diseño para que estos programas funcionen mejor. Sólo tienes que buscar un poquito.

c748a
15-10-2010, 13:32:55
Muchas gracias por tu respuesta Ñuño, pero el problema es que la aplicación puede correr en distintas versiones de Windows (98 en adelante). Por eso la intención de no utilizar aplicaciones anexas (como el Jaws) o la utilidades de los sistemas operativos como bien tu describes. Te cuento que el proyecto es convertir a formato braille un texto y enviarlo por puerto paralelo para imprimirlo en braille en una impresora adaptada para tal efecto. Tanto la aplicación como la adaptación de la impresora es hecho por alumnos del último año de nivel secundario.
Saludos.

rgstuamigo
16-10-2010, 17:01:55
Bueno lo que se ocurre es que captures el Mensaje WM_MENUSELECT (http://msdn.microsoft.com/en-us/library/ms646352%28VS.85%29.aspx) del Menú.
He aquí un código Ejemplo >
type
TForm1 = class(TForm)
...
...
private
{ Private declarations }
Procedure Capturando_Mensaje(var Msg:TMsg);message WM_MENUSELECT;//Declaro el procedure que captura el mensaje WM_MENUSELECT
public
{ Public declarations }
end;

Ahora en la Implementacion >
implementation

{$R *.dfm}

{ TForm1 }
...
...
procedure TForm1.Capturando_Mensaje(var Msg:TMsg);
begin
inherited;
Windows.Beep(2000,100);//<-Emito un sonido en la CPU
end;

Si deseas solo emitir el sonido dada alguna específica condicion, pues puedes mirar toda la ayuda disponible en la pagína de Link anterior que te puse.;)
Saludos...:)

c748a
18-10-2010, 16:15:26
Gracias, rgstuamigo, ya estoy trabajando con el código
Saludos