FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Array de Botones. Acci贸n en funci贸n de bot贸n pulsado
Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM

Array de Botones. Acci贸n en funci贸n de bot贸n pulsado

Posted: Fri Mar 28, 2014 11:02 PM
En un dialogo genero un n煤mero de botones (BTNBMP) mediante c贸digo que es variable. Aqu铆 dejo el c贸digo:
Code (fw): Select all Collapse
聽
聽DEFINE DIALOG oDlg FROM 5,10 TO 32, 85 FONT oFontDoble TITLE "Selecci贸n posici贸n" 聽
聽 聽 
聽 聽 @ 1,1 SAY oSay VAR cSAy OF oDlg FONT oFontDobleN
聽 聽 
聽 聽 for i=1 TO nNumBotones
聽 聽 聽 // Bot贸n para hacer una nueva venta.
聽 聽 聽 
聽 聽 聽 if i <= 4
聽 聽 聽 聽 聽@ 40,20+65*(i-1) BTNBMP oBtnPosicion[i] OF oDlg; 聽 //@ y , x
聽 聽 聽 聽 聽 聽 聽 聽ACTION ( nPosicionEs= *******, oDlg:end() );
聽 聽 聽 聽 聽 聽 聽 聽SIZE 50,38 pixel; // Ancho, Alto 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 
聽 聽 聽 聽 聽 聽 聽 聽UPDATE
聽 聽 聽 聽 聽 聽 聽 聽oBtnPosicion[i]:SetFile(RutaExe+"\"+ltrim(str(i))+".bmp")
聽 聽 聽 聽 else
聽 聽 聽 聽 聽@ 40+52,20+65*(i-1-4) BTNBMP oBtnPosicion[i] OF oDlg; 聽 //@ y , x
聽 聽 聽 聽 聽 聽 聽 聽ACTION ( nPosicionEs= ******* ,oDlg:end());
聽 聽 聽 聽 聽 聽 聽 聽SIZE 50,38 pixel; // Ancho, Alto 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 
聽 聽 聽 聽 聽 聽 聽 聽UPDATE
聽 聽 聽 聽 聽 聽 聽 聽oBtnPosicion[i]:SetFile(RutaExe+"\"+ltrim(str(i))+".bmp")
聽 聽 聽 endif
聽 聽 next i 聽 聽 聽 

聽 聽 @ 150,20 BTNBMP oBtnCancelar OF oDlg MESSAGE 'SALIR' SIZE 90,30; //ancho x alto
聽 聽 聽 聽 聽 聽 聽 聽ACTION (oDlg:end()) default CANCEL
聽 聽 聽 聽 聽 聽 聽 聽oBtnCancelar:SetFile(RutaExe+"\CANCELAR.bmp")
聽 聽 聽 聽 聽 聽 聽 聽
聽ACTIVATE DIALOG oDlg CENTER


Me pita bien los botones pero no logro descubrir la manera de averiguar cual es el bot贸n que ha hecho click el usuario. Es decir, en la parte del c贸digo donde pongo nPosicionEs= *******, no s茅 qu茅 debo de poner.
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM

Re: Array de Botones. Acci贸n en funci贸n de bot贸n pulsado

Posted: Sat Mar 29, 2014 01:16 AM

Creo que si usas una Var public que al hacer click en el boton tome el valor de la posicion del boton en el array, podrias saber que boton se presiono, algo como nBoton = aBtn[n] al momento de hacer click antes de ejecutar la accion, es una idea a vuelo de pajaro terrestre, saludos... :shock:

Dios no est谩 muerto...



Gracias a mi Dios ante todo!
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM

Re: Array de Botones. Acci贸n en funci贸n de bot贸n pulsado

Posted: Sat Mar 29, 2014 03:47 AM
Verhoven wrote:En un dialogo genero un n煤mero de botones (BTNBMP) mediante c贸digo que es variable. Aqu铆 dejo el c贸digo:
Code (fw): Select all Collapse
聽
聽DEFINE DIALOG oDlg FROM 5,10 TO 32, 85 FONT oFontDoble TITLE "Selecci贸n posici贸n" 聽
聽 聽 
聽 聽 @ 1,1 SAY oSay VAR cSAy OF oDlg FONT oFontDobleN
聽 聽 
聽 聽 for i=1 TO nNumBotones
聽 聽 聽 // Bot贸n para hacer una nueva venta.
聽 聽 聽 
聽 聽 聽 if i <= 4
聽 聽 聽 聽 聽@ 40,20+65*(i-1) BTNBMP oBtnPosicion[i] OF oDlg; 聽 //@ y , x
聽 聽 聽 聽 聽 聽 聽 聽ACTION ( nPosicionEs= *******, oDlg:end() );
聽 聽 聽 聽 聽 聽 聽 聽SIZE 50,38 pixel; // Ancho, Alto 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 
聽 聽 聽 聽 聽 聽 聽 聽UPDATE
聽 聽 聽 聽 聽 聽 聽 聽oBtnPosicion[i]:SetFile(RutaExe+"\"+ltrim(str(i))+".bmp")
聽 聽 聽 聽 else
聽 聽 聽 聽 聽@ 40+52,20+65*(i-1-4) BTNBMP oBtnPosicion[i] OF oDlg; 聽 //@ y , x
聽 聽 聽 聽 聽 聽 聽 聽ACTION ( nPosicionEs= ******* ,oDlg:end());
聽 聽 聽 聽 聽 聽 聽 聽SIZE 50,38 pixel; // Ancho, Alto 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 
聽 聽 聽 聽 聽 聽 聽 聽UPDATE
聽 聽 聽 聽 聽 聽 聽 聽oBtnPosicion[i]:SetFile(RutaExe+"\"+ltrim(str(i))+".bmp")
聽 聽 聽 endif
聽 聽 next i 聽 聽 聽 

聽 聽 @ 150,20 BTNBMP oBtnCancelar OF oDlg MESSAGE 'SALIR' SIZE 90,30; //ancho x alto
聽 聽 聽 聽 聽 聽 聽 聽ACTION (oDlg:end()) default CANCEL
聽 聽 聽 聽 聽 聽 聽 聽oBtnCancelar:SetFile(RutaExe+"\CANCELAR.bmp")
聽 聽 聽 聽 聽 聽 聽 聽
聽ACTIVATE DIALOG oDlg CENTER


Me pita bien los botones pero no logro descubrir la manera de averiguar cual es el bot贸n que ha hecho click el usuario. Es decir, en la parte del c贸digo donde pongo nPosicionEs= *******, no s茅 qu茅 debo de poner.


En el ejemplo que pongo supongo que tanto nPosicionEs como oDlg son variables est谩ticas
Code (fw): Select all Collapse
.../...

聽DEFINE DIALOG oDlg FROM 5,10 TO 32, 85 FONT oFontDoble TITLE "Selecci贸n posici贸n"
聽 聽For x = 1 to 10
聽 聽@ 110, 2+(x-1)*30 BUTTON aBotones[x] PROMPT "Btn"+StrZero(x,2) oF oDlg ;
聽 聽 聽 SIZE 20, 10 PIXEL ; 
聽 聽 聽 FONT oFont 
聽 聽 聽 aBotones[ x ]:bAction := HazBlock(x)
聽 聽Next x

聽ACTIVATE DIALOG oDlg CENTER
Return nil

//---------------------------------------------------------------------------//

Function HazBlock( x )
Return &("{ || Pon(" +LTrim(Str(x))+") }" )

//---------------------------------------------------------------------------//

Function Pon( x )
nPosicionEs := x
MsgInfo( nPosicionEs )
//oDlg:End() 聽 聽 // oDlg -> Variable est谩tica
Return nil

//---------------------------------------------------------------------------//
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM

Re: Array de Botones. Acci贸n en funci贸n de bot贸n pulsado

Posted: Sat Mar 29, 2014 05:12 AM

Muchas Gracias.
Ha funcionado correctamente, si bien, no ha sido necesario declarar como est谩ticas esas dos variables que se帽alas.

Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM

Re: Array de Botones. Acci贸n en funci贸n de bot贸n pulsado

Posted: Sat Mar 29, 2014 01:35 PM
Verhoven wrote:Muchas Gracias.
Ha funcionado correctamente, si bien, no ha sido necesario declarar como est谩ticas esas dos variables que se帽alas.


Qu茅 tipo eran esas variables?
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM

Re: Array de Botones. Acci贸n en funci贸n de bot贸n pulsado

Posted: Sun Mar 30, 2014 04:06 PM

public

Continue the discussion