Uso/detección de tecla en bucle dowhile

New members who wish to post and participate in HMG Forum, please introduce yourselves in this forum by starting a new thread.

Moderator: Rathinagiri

Post Reply
oscar
Posts: 6
Joined: Mon Sep 05, 2016 3:07 am
Location: Yerba Buerna-Tucumán- Argentina
Has thanked: 2 times
Been thanked: 1 time

Uso/detección de tecla en bucle dowhile

Post by oscar » Fri Oct 07, 2016 5:34 am

Estimados programadores:

¿ Es posible detectar una tecla; ( por Ejemplo: INKEY(), LASTKEY(), Etc. ); desde el interior de un bucle DO .. WHILE
o desde un For ... Next, para ejecutar una función determinada?

Ejemplo: (Este ejemplo funciona en Clipper, pero en HMG, no :

Do While .T.

cKey := upper(chr( nKey := Inkey()))
* Asignando en un do case las funciones respectivas
Do Case
Casse nKey == VK_LEFT
Funcion()
......
End Case
.....
Enddo

Return

Oscar

User avatar
dragancesu
Posts: 457
Joined: Mon Jun 24, 2013 11:53 am
DBs Used: DBF, MySQL, Oracle
Location: Subotica, Serbia
Has thanked: 3 times
Been thanked: 67 times

Post by dragancesu » Fri Oct 07, 2016 7:46 am

There are possibilities but it's complicated and often does not need, this is a classic clipper code that should be avoided when the real windows program

See TEXTBOX control and you'll see that the response to several events ON ENTER ON CHANGE ... also GRID and BROWSE have similar opportunities

The answer is YES, but is not easy and there are better solutions

User avatar
Pablo César
Posts: 4058
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil
Has thanked: 100 times
Been thanked: 177 times

Post by Pablo César » Fri Oct 07, 2016 10:56 am

Hola Oscar, bien venido al fórum HMG. No sé si tienes alguna familiaridad con programacion gráfica, pero voy a intentar explicarte puntos importantes.

Como dijo nuestro colega Dragan, seria muy complicado, trabajoso y yo diria más atado a una forma de programar totalmente distinta a las aplicaciones baseadas en Windows. Donde el uso de mouse, eventos, propiedades y acciones son los que prepondera y todavia las hace no necesariamente en la misma secuencia que como lo hacíamos en Clipper. Al menos que estés referiendote a utilizar HMG en modo console no en modo gráfico.

Para programar en GUI, debemos dejar de lado todas las telas/pantallas (screens) mejor dicho interface visuales que utilizábamos en Clipper o cualquier otra herramienta en modo console.
Por ejemplo, cuando el usuário llena/responde a un formulário donde hay campos, en GUI el usuário puede hacerlo fuera de secuencia (eso por el uso del mouse y su interface gráfica), en cambio en modo console lo hace en una secuencia.

Recientemente, disponibilizé unas rutinas que ejemplifica algo sobre la interaccion que se le puede dar al llenar un campo (field).
Fijate este ejemplo: viewtopic.php?p=46828#p46828

Como debes saber, en la programacion GUI hay a disposicion vários tipos de CONTROLes, componentes usados en específicas situaciones. Por ejemplo: si tienes que exibir una tabla, lo puedes y debes utilizar el GRID. Si el usuário tiene que eligir un item apenas, puedes usar el COMBOBOX, LISTBOX o RADIOGROUP. Puedes fijarte en el sub-fichero DOC de HMG que has instalado, buscá por "Controls" y te vá mostrar la sintasis. Y en el sub-fichero SAMPLES tambien "Controls" irás encontrar cada ejemplo.

Desde luego que aqui en el fórum irás encontrar mucho material y ayuda de los colegas.
Es solo cuestion de ejemplificar siempre con tu código y realizar tus cuestionamientos o dudas.

Sobre algunos ejemplos de uso de teclas, por favor ver ejemplos:

C:\hmg.3.4.3\SAMPLES\Events\On_Key\ON_KEY_1
C:\hmg.3.4.3\SAMPLES\Events\On_Key\ON_KEY_2

viewtopic.php?p=31154#p31154
viewtopic.php?p=9782#p9782

Un gran abrazo desde Brasil
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein

User avatar
Roberto Lopez
HMG Founder
Posts: 3899
Joined: Wed Jul 30, 2008 6:43 pm
Has thanked: 13 times
Been thanked: 135 times

Post by Roberto Lopez » Fri Oct 07, 2016 2:31 pm

Could be you so kind to do your posts in English, according to the international nature of this forum and its members?

Thanks!
Regards/Saludos,

Roberto


(Veritas Filia Temporis)

User avatar
esgici
Posts: 4337
Joined: Wed Jul 30, 2008 9:17 pm
DBs Used: DBF
Location: iskenderun / Turkiye
Has thanked: 221 times
Been thanked: 77 times
Contact:

Post by esgici » Fri Oct 07, 2016 3:43 pm

Roberto Lopez wrote:Could be you so kind to do your posts in English, according to the international nature of this forum and its members?

Thanks!
very good 2.gif
very good 2.gif (8.27 KiB) Viewed 972 times
thank-you-clap.gif
thank-you-clap.gif (104.95 KiB) Viewed 972 times
bighug.gif
bighug.gif (72.53 KiB) Viewed 972 times
Viva INTERNATIONAL HMG :D
Viva INTERNATIONAL HMG :D

User avatar
mol
Posts: 2841
Joined: Thu Sep 11, 2008 5:31 am
Location: Myszków, Poland
Has thanked: 118 times
Been thanked: 64 times
Contact:

Post by mol » Fri Oct 07, 2016 5:10 pm

Thank you, Roberto!

User avatar
Pablo César
Posts: 4058
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil
Has thanked: 100 times
Been thanked: 177 times

Post by Pablo César » Fri Oct 07, 2016 6:04 pm

LETS STOP THERE, please !

My apologies if I have offended any party with my replying. :oops:

I believed that I gave better chance for better understanding when I repplied in spanish to Oscar in this forum/section. :?

We have to be considered that Oscar is newie at forum. In this case, the author has open an new topic in spanish, IMHO we have two ways:

1. Ask for moderator (do not exist anymore, probably by the same reason) or administrator's forum to move the topic for the right section and communicate to the author for that.
2. Be gentle and patient, do not force anyone write in English. There are many messages written in different languages here (I can list many). We do not need to return to discuss in something impossible.

I do not see much difference to post in both language when original text is being translated by the Google translator. Any one can do it and whom do not wants to take for yourself the job: would it be easier to ignore it. Just simples in that. :mrgreen:

I think next time, I will answer to the user by Private Message... :|
(Please read on blue color in my signature text at bottom of my messages and please reflect about it)

In spanish section, there are many replies in English and nobody complains in that.
IMHO, the rest of foruns/sections, it should be the same ! 8-)

Better this than avoid undesnecessary discussions, by the another reason is because all of us should respect the free communication. :geek:

Oscar, si te sientes mejor escribir en español, por favor hazlo en: viewforum.php?f=24
Allá puedes escribir en español, castellano, português e inclusive en ingles que nadie irá quejarse. :P
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein

oscar
Posts: 6
Joined: Mon Sep 05, 2016 3:07 am
Location: Yerba Buerna-Tucumán- Argentina
Has thanked: 2 times
Been thanked: 1 time

Post by oscar » Fri Oct 07, 2016 11:39 pm

Pablo César wrote:Hola Oscar, bien venido al fórum HMG. No sé si tienes alguna familiaridad con programacion gráfica, pero voy a intentar explicarte puntos importantes.

Como dijo nuestro colega Dragan, seria muy complicado, trabajoso y yo diria más atado a una forma de programar totalmente distinta a las aplicaciones baseadas en Windows. Donde el uso de mouse, eventos, propiedades y acciones son los que prepondera y todavia las hace no necesariamente en la misma secuencia que como lo hacíamos en Clipper. Al menos que estés referiendote a utilizar HMG en modo console no en modo gráfico.

Para programar en GUI, debemos dejar de lado todas las telas/pantallas (screens) mejor dicho interface visuales que utilizábamos en Clipper o cualquier otra herramienta en modo console.
Por ejemplo, cuando el usuário llena/responde a un formulário donde hay campos, en GUI el usuário puede hacerlo fuera de secuencia (eso por el uso del mouse y su interface gráfica), en cambio en modo console lo hace en una secuencia.

Recientemente, disponibilizé unas rutinas que ejemplifica algo sobre la interaccion que se le puede dar al llenar un campo (field).
Fijate este ejemplo: viewtopic.php?p=46828#p46828

Como debes saber, en la programacion GUI hay a disposicion vários tipos de CONTROLes, componentes usados en específicas situaciones. Por ejemplo: si tienes que exibir una tabla, lo puedes y debes utilizar el GRID. Si el usuário tiene que eligir un item apenas, puedes usar el COMBOBOX, LISTBOX o RADIOGROUP. Puedes fijarte en el sub-fichero DOC de HMG que has instalado, buscá por "Controls" y te vá mostrar la sintasis. Y en el sub-fichero SAMPLES tambien "Controls" irás encontrar cada ejemplo.

Desde luego que aqui en el fórum irás encontrar mucho material y ayuda de los colegas.
Es solo cuestion de ejemplificar siempre con tu código y realizar tus cuestionamientos o dudas.

Sobre algunos ejemplos de uso de teclas, por favor ver ejemplos:

C:\hmg.3.4.3\SAMPLES\Events\On_Key\ON_KEY_1
C:\hmg.3.4.3\SAMPLES\Events\On_Key\ON_KEY_2

viewtopic.php?p=31154#p31154
viewtopic.php?p=9782#p9782

Un gran abrazo desde Brasil
Mil gracias por tu orientación. Voy a revisar lo sugerido. Después de cuento !!!

oscar
Posts: 6
Joined: Mon Sep 05, 2016 3:07 am
Location: Yerba Buerna-Tucumán- Argentina
Has thanked: 2 times
Been thanked: 1 time

Post by oscar » Fri Oct 07, 2016 11:45 pm

Mil gracias por tu orientación. Voy a revisar lo sugerido. Después de cuento !!!

No problem to write in english. I review suggested and then you tell
Again, many thanks Pablo.

Oscar

User avatar
esgici
Posts: 4337
Joined: Wed Jul 30, 2008 9:17 pm
DBs Used: DBF
Location: iskenderun / Turkiye
Has thanked: 221 times
Been thanked: 77 times
Contact:

Post by esgici » Sat Oct 08, 2016 7:45 am

every-community-collapses-when-combined-three-evil.jpg
every-community-collapses-when-combined-three-evil.jpg (93.73 KiB) Viewed 872 times
Viva INTERNATIONAL HMG :D

Post Reply