HOLA AMIGOS:
Tengo una inquietud, si tengo 2 Buttons ...
@ 200,300 BUTTON Button_1 PARENT CARGA CAPTION "AZUL" ONCLICK LLENA()
@ 200,400 BUTTON Button_2 PARENT CARGA CAPTION "ROJO" ONCLICK LLENA()
Cómo puedo saber si fue clickeado el primero o el segundo Button ?
Es para tener una sola function llamada LLENA
***********************
Function LLENA
IF Button.Button_1 = ????? <--- Qué debería escribir ?
quim=5
lato=2.6
fuel=0.9
ELSE
quim=2
lato=6.0
fuel=1.5
ENDIF
***********************
Gracias por su amabilidad ...
If Button was clicked
Moderator: Rathinagiri
-
- Posts: 684
- Joined: Tue Jun 04, 2013 6:33 pm
- Location: Argentina
Re: If Button was clicked
Hola Louis:
Prueba esto
#include <hmg.ch>
#include "hfcl.ch"
PRIVATE resp
DEFINE WINDOW LLENADOR ;
ROW 0 ;
COL 0 ;
WIDTH 600 ;
HEIGHT 420 ;
TITLE 'EXAMPLE' ; //
ON INIT NIL ;
MAIN
ON KEY ESCAPE ACTION ThisWindow.Release
@ 200,300 BUTTON Button_1 PARENT CARGA CAPTION "AZUL" ACTION ( resp := "A", LLENANDO() )
@ 200,400 BUTTON Button_2 PARENT CARGA CAPTION "ROJO" ACTION ( resp := "R", LLENANDO() )
END WINDOW
CENTER Window LLENADOR
ACTIVATE Window LLENADOR
RETURN
***********************
PROCEDURE LLENANDO
IF resp == "A"
quim=5
lato=2.6
fuel=0.9
MSGINFO("Pulse el botón Azul" , "AVISO")
ELSEIF resp == "R"
quim=2
lato=6.0
fuel=1.5
MSGINFO("Pulse el botón Rojo" , "AVISO")
ENDIF
RETURN
***********************
Prueba esto
#include <hmg.ch>
#include "hfcl.ch"
PRIVATE resp
DEFINE WINDOW LLENADOR ;
ROW 0 ;
COL 0 ;
WIDTH 600 ;
HEIGHT 420 ;
TITLE 'EXAMPLE' ; //
ON INIT NIL ;
MAIN
ON KEY ESCAPE ACTION ThisWindow.Release
@ 200,300 BUTTON Button_1 PARENT CARGA CAPTION "AZUL" ACTION ( resp := "A", LLENANDO() )
@ 200,400 BUTTON Button_2 PARENT CARGA CAPTION "ROJO" ACTION ( resp := "R", LLENANDO() )
END WINDOW
CENTER Window LLENADOR
ACTIVATE Window LLENADOR
RETURN
***********************
PROCEDURE LLENANDO
IF resp == "A"
quim=5
lato=2.6
fuel=0.9
MSGINFO("Pulse el botón Azul" , "AVISO")
ELSEIF resp == "R"
quim=2
lato=6.0
fuel=1.5
MSGINFO("Pulse el botón Rojo" , "AVISO")
ENDIF
RETURN
***********************
- luisvasquezcl
- Posts: 1259
- Joined: Thu Jul 31, 2008 3:23 am
- Location: Chile
- Contact:
Re: If Button was clicked
Hola,
hay una propiedad de la ventana que te permite saber el control que tiene el foco y que será el que dispara el evento, el boton1 o 2
espero te sea de utilidad,
Saludos cordiales,
Luis Vasquez.
hay una propiedad de la ventana que te permite saber el control que tiene el foco y que será el que dispara el evento, el boton1 o 2
Code: Select all
#include <hmg.ch>
#include "hfcl.ch"
PRIVATE resp
DEFINE WINDOW LLENADOR ;
ROW 0 ;
COL 0 ;
WIDTH 600 ;
HEIGHT 420 ;
TITLE 'EXAMPLE' ; //
ON INIT NIL ;
MAIN
ON KEY ESCAPE ACTION ThisWindow.Release
@ 200,300 BUTTON Button_1 PARENT CARGA CAPTION "AZUL" ACTION LLENANDO()
@ 200,400 BUTTON Button_2 PARENT CARGA CAPTION "ROJO" ACTION LLENANDO()
END WINDOW
CENTER Window LLENADOR
ACTIVATE Window LLENADOR
RETURN
***********************
PROCEDURE LLENANDO
IF LLENADOR.FocusedControl = "BUTTON_1"
quim=5
lato=2.6
fuel=0.9
MSGINFO("Pulse el botón Azul" , "AVISO")
ELSEIF LLENADOR.FocusedControl = "BUTTON_2"
quim=2
lato=6.0
fuel=1.5
MSGINFO("Pulse el botón Rojo" , "AVISO")
ENDIF
RETURN
********************
Saludos cordiales,
Luis Vasquez.
Re: If Button was clicked
Es simple...
Solo pasa como parámetro a tu función el # de Botón
@ 200,300 BUTTON Button_1 PARENT CARGA CAPTION "AZUL" ONCLICK LLENA("1")
@ 200,400 BUTTON Button_2 PARENT CARGA CAPTION "ROJO" ONCLICK LLENA("2")
*************************************************************
Function LLENA( Btn )
IF Btn = "1"
....
ELSEIF Btn = "2"
....
ELSE
.....
ENDIF
Solo pasa como parámetro a tu función el # de Botón
@ 200,300 BUTTON Button_1 PARENT CARGA CAPTION "AZUL" ONCLICK LLENA("1")
@ 200,400 BUTTON Button_2 PARENT CARGA CAPTION "ROJO" ONCLICK LLENA("2")
*************************************************************
Function LLENA( Btn )
IF Btn = "1"
....
ELSEIF Btn = "2"
....
ELSE
.....
ENDIF
Andrés González López
Desde Guadalajara, Jalisco. México.
Desde Guadalajara, Jalisco. México.
Re: If Button was clicked
Muchas gracias EduardoLuis
me funcionó perfecto con tu ejemplo
Gracias también a Luis Vasquez y Andrés Gonzalez, tomaré vuestras sugerencias para también hacerlo
de otra manera.
Gracias de nuevo, son Uds muy amables
me funcionó perfecto con tu ejemplo
Gracias también a Luis Vasquez y Andrés Gonzalez, tomaré vuestras sugerencias para también hacerlo
de otra manera.
Gracias de nuevo, son Uds muy amables

-
- Posts: 1275
- Joined: Tue Sep 03, 2013 4:22 am
- Location: Tecámac, México
Re: If Button was clicked
Hola LOUIS,
Recuerda que existe tambien en control CheckButton:
ejemplo:
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
MAIN.PRG
MAIN.FMG
Saludos
Recuerda que existe tambien en control CheckButton:
Code: Select all
@...CHECKBUTTON / DEFINE CHECKBUTTON
Creates a CheckButton control
Standard Syntax (xBase Style):
@ <nRow> ,<nCol>
CHECKBUTTON<ControlName>
[ OF | PARENT <ParentWindowName> ]
CAPTION <cCaption> | PICTURE <cPictureName>
[ WIDTH <nWidth>] [ HEIGHT <nHeight> ]
[ VALUE <lValue> ]
[ FONT <cFontName> SIZE <nFontSize> ]
[ BOLD ] [ ITALIC ] [ UNDERLINE ] [ STRIKEOUT ]
[ TOOLTIP <cToolTipText> ]
[ ON GOTFOCUS <OnGotFocusProcedur> | <bBlock> ]
[ ON CHANGE <OnChangeProcedure> | <bBlock> ]
[ ON LOSTFOCUS <OnLostFocusProcedure> | <bBlock> ]
[ HELPID <nHelpId> ]
[ INVISIBLE ]
[ NOTABSTOP ]
[ NOTRANSPARENT ]
Alternate Syntax:
DEFINE CHECKBUTTON <Controlname>
PARENT <ParentWindowName>
ROW <nValue>
COL <nValue>
CAPTION <cValue>
WIDTH <nValue>
HEIGHT <nValue>
FONTNAME <cValue>
FONTSIZE <nValue>
FONTBOLD <lValue>
FONTITALIC <lValue>
FONTUNDERLINE <lValue>
FONTSTRIKEOUT <lValue>
TOOLTIP <cValue>
ONGOTFOCUS <ActionProcedure>
ONLOSTFOCUS <ActionProcedure>
ONCHANGE <ActionProcedure>
TABSTOP <lValue>
HELPID <nValue>
VISIBLE <lValue>
TRANSPARENT <lValue>
END CHECKBUTTON
Properties:
- Value
- Enabled
- Visible
- Row
- Col
- Width
- Height
- Caption
- FontName
- FontSize
- FontBold
- FontItalic
- FontUnderline
- FontStrikeout
- ToolTip
- Picture
- Name (R)
- Parent (D)
- HelpId (D)
- TabStop (D)
D: Available at control definition only
R: Read-Only
Events:
- OnGotFocus
- OnChange
- OnLostFocus
Methods:
- Show
- Hide
- SetFocus
- Release
Note: Transparence in picture checkbuttons requires 256 or less color depth bitmaps.
Code: Select all
lValorBoton := Win_1.MiButton_1.Value
IF lValorBoton = .T. // IF lValorBoton
ELSE
ENDIF
MAIN.PRG
Code: Select all
#include <hmg.ch>
Function Main
PRIVATE lEstado := .F.
SET TOOLTIPSTYLE BALLOON
Load Window Main
Center Window Main
Activate Window Main
Return
PROCEDURE EstadoBoton()
IF Main.Image_Only_Button.Value
MsgInfo("El boton esta Cliqueado")
ELSE
MsgInfo("El boton NO esta Cliqueado")
ENDIF
Code: Select all
* Harbour MiniGUI IDE Two-Way Form Designer Generated Code
* (c)2004-2007 Roberto Lopez <harbourminigui@gmail.com>
* http://harbourminigui.googlepages.com
DEFINE WINDOW TEMPLATE AT 132 , 257 WIDTH 251 HEIGHT 358 VIRTUAL WIDTH Nil VIRTUAL HEIGHT Nil TITLE "" ICON NIL MAIN CURSOR NIL ON INIT Nil ON RELEASE Nil ON INTERACTIVECLOSE Nil ON MOUSECLICK Nil ON MOUSEDRAG Nil ON MOUSEMOVE Nil ON SIZE Nil ON MAXIMIZE Nil ON MINIMIZE Nil ON PAINT Nil BACKCOLOR Nil NOTIFYICON NIL NOTIFYTOOLTIP NIL ON NOTIFYCLICK Nil ON GOTFOCUS Nil ON LOSTFOCUS Nil ON SCROLLUP Nil ON SCROLLDOWN Nil ON SCROLLLEFT Nil ON SCROLLRIGHT Nil ON HSCROLLBOX Nil ON VSCROLLBOX Nil
DEFINE BUTTON Text_And_Image_Button
ROW 90
COL 20
WIDTH 190
HEIGHT 100
ACTION MsgInfo('Text And Image Button')
CAPTION "Text And Image"
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP "Text And Image Button"
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
ONGOTFOCUS Nil
ONLOSTFOCUS Nil
HELPID Nil
FLAT .F.
TABSTOP .T.
VISIBLE .T.
TRANSPARENT .F.
PICTURE "BUTTON.BMP"
PICTALIGNMENT TOP
END BUTTON
DEFINE BUTTON Text_Only_Button
ROW 20
COL 20
WIDTH 190
HEIGHT 60
ACTION MsgInfo('Text Only Button')
CAPTION "Text Only"
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP "Text Only Button"
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
ONGOTFOCUS Nil
ONLOSTFOCUS Nil
HELPID Nil
FLAT .F.
TABSTOP .T.
VISIBLE .T.
TRANSPARENT .F.
PICTURE Nil
PICTALIGNMENT TOP
END BUTTON
DEFINE CHECKBUTTON Image_Only_Button
ROW 200
COL 20
WIDTH 190
HEIGHT 100
ACTION MsgInfo ('Image Only Button')
CAPTION Nil
FONTNAME "Arial"
FONTSIZE 9
TOOLTIP "Image Only Button"
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
ONCHANGE EstadoBoton()
ONGOTFOCUS Nil
ONLOSTFOCUS Nil
HELPID Nil
FLAT .F.
TABSTOP .T.
VISIBLE .T.
TRANSPARENT .F.
PICTURE "button.bmp"
PICTALIGNMENT TOP
END CHECKBUTTON
END WINDOW
Saludos