Page 1 of 1
a Get on a buttonbar
Posted: Sat Oct 01, 2022 7:40 am
by Silvio.Falconi
How can I put a Get in a buttonbar when the end user selects the second option of a combobox xhe is on the same buttonbar
local aShowExtract:= {"Estrazioni continue","Estrazioni annuali"}
::nyear := "2022"
//ComboBox
@ 2,190 COMBOBOX aShowCbx[2] Var cExtractSel ITEMS aShowExtract ;
SIZE 150,400 PIXEL OF ::oBar HEIGHTGET 18 STYLE CBS_DROPDOWN ;
ON Change oGet:refresh()
//get
@ 2, 280 GET oGet VAR ::nyear SIZE 150,22 PIXEL OF ::oBar WHEN aShowCbx[2]:nat= 2
Re: a Get on a buttonbar
Posted: Sat Oct 01, 2022 10:50 am
by Antonio Linares
Dear Silvio,
@ 2, 280 GET oGet VAR ::nyear SIZE 150,22 PIXEL OF ::oBar WHEN aShowCbx[2]:nat= 2 VALID ( aShowCbx[2]:Set( 2 ), .T. )
Re: a Get on a buttonbar
Posted: Sat Oct 01, 2022 2:06 pm
by Silvio.Falconi
Yes but I not must See the get It the option Is not 2
Not disabile the get, i hope you understood
Re: a Get on a buttonbar
Posted: Sat Oct 01, 2022 6:02 pm
by karinha
Silvio, mira se ayuda:
Code: Select all | Expand
// C:\FWH..\SAMPLES\WHENOCBX.PRG// This sample shows how to create a test Bar with a Valid ON CHANGE.#Include "FiveWin.ch"#Define CLR_SOFTYELLOW nRGB
( 255,
251,
225 )#Define CLR_LGREEN nRGB
( 190,
215,
190 )#Define COLOR_BTNFACE
15#Define aPubGrad
{| lInvert |
If( lInvert, ;
{ { 1 /
3, nRGB
( 255,
253,
222 ), nRGB
( 255,
231,
151 ) }, ;
{ 2 /
3, nRGB
( 255,
215,
84 ), nRGB
( 255,
233,
162 ) } ;
}, ;
{ { 1 /
2, nRGB
( 219,
230,
244 ), nRGB
( 207 -
50,
221 -
25,
255 ) }, ;
{ 1 /
2, nRGB
( 201 -
50,
217 -
25,
255 ), nRGB
( 231,
242,
255 ) } ;
} ) }STATIC oWnd, lWhenoCbx := .T.
FUNCTION Main
() LOCAL oGet, oFnt, oFont, oBar, oBtn, oBtn2, nYear, cExtractSel, ;
aShowCbx := ARRAY
(5), PANY :=
YEAR( DATE
() ), cTitle, oBrush
// Show de ComboBox by Silvio Falconi LOCAL aShowExtract :=
{ "Estrazioni continue",
"Estrazioni annuali", ;
"Silvio Falconi" } HB_GCALL
( .F.
) SkinButtons
() SetGetColorFocus
( CLR_LGREEN
) tGet
():
lDisColors := .F.
tGet
():
nClrTextDis := CLR_HBLUE
tGet
():
nClrPaneDis := CLR_SOFTYELLOW
nYear :=
YEAR( DATE
() ) DEFINE BRUSH oBrush
COLOR CLR_LGREEN
DEFINE FONT oFnt
NAME "Ms Sans Serif" SIZE 00,
-14 BOLD
DEFINE FONT oFont
NAME "Ms Sans Serif" SIZE 00,
-16 BOLD
cTitle :=
"Test Bar & Valid/On Change for Silvio Falconi" DEFINE WINDOW oWnd
TITLE cTitle
BRUSH oBrush BORDER SINGLE
MDI ;
MENU BuildMenu
() MENUINFO
4 DEFINE BUTTONBAR oBar BUTTONSIZE
50,
50 _3DLOOK TOP
OF oWnd
2007 WITH OBJECT oBar
oBar:
bClrGrad := aPubGrad
// Preferi assim. oBar:
bRClicked :=
{ ||
NIL } // Botao direito do Mouse desligado. oBar:
bLClicked :=
{ ||
NIL } // Botao Esquerdo do Mouse desligado. oBar:
nClrText := CLR_HBLUE
oBar:
Adjust() oBar:
SetFont( oFont
) END
@
1,
10 COMBOBOX aShowCbx
Var cExtractSel
ITEMS aShowExtract
OF oBar ;
SIZE 200,
300 STYLE CBS_DROPDOWN ;
ON CHANGE( QueoCbx
( aShowCbx:
nAt, cExtractSel, oGet
) ) IF Set
( _SET_INSERT, ! Set
( _SET_INSERT
) ) Set
( _SET_INSERT, ! Set
( _SET_INSERT
) ) ENDIF @
15,
300 GET oGet
VAR nYear
SIZE 150,
22 PIXEL OF oBar
CENTER ;
FONT oFont
UPDATE WHEN( lWhenoCbx
) oGet:
disable() oGet:
lBtnTransparent := .T.
// transparent button get oGet3 oGet:
lAdjustBtn := .T.
// Button Get Adjust Witdh oGet3 oGet:
lDisColors := .F.
// Deactive disable color oGet:
nClrTextDis := CLR_YELLOW
// Color text disable status oGet:
nClrPaneDis := CLR_BLACK
// Color Pane disable status // Buttons DEFINE BUTTON oBtn
OF oBar
PROMPT "&Exit" NOBORDER GROUP
CENTER ;
ACTION( oWnd:
End() ) oBtn:
cToolTip :=
"Salida - Exit - Cancelar" SET
MESSAGE OF oWnd
TO OemToAnsi ;
( "- CopyRight (C) JoÆo Santos @" + ALLTRIM
( STR
( PANY
) ) +
[ -
] + ;
" kapiabafwh@gmail.com.br - Brazil " ) ;
KEYBOARD
COLOR CLR_HBLUE, GetSysColor
( COLOR_BTNFACE
) FONT oFnt
2007 oWnd:
oMsgBar:
SetColor( CLR_HBLUE, CLR_HBLUE
) oWnd:
oMsgBar:
Refresh() oWnd:
oMsgBar:
KeybOn() oWnd:
oMsgBar:
DateOn() oWnd:
oMsgBar:
ClockOn() oWnd:
oMsgBar:
Refresh() ACTIVATE WINDOW oWnd
MAXIMIZED ON INIT( xFocus
( oGet
) ) IF Set
( _SET_INSERT, ! Set
( _SET_INSERT
) ) Set
( _SET_INSERT, ! Set
( _SET_INSERT
) ) ENDIF oBrush:
End() oFnt:
End() oFont:
End() Release All
SysRefresh
() HB_GCALL
( .T.
) CLEAR MEMORY
PostQuitMessage
( 0 ) QUIT
RETURN NILFUNCTION BuildMenu
() LOCAL oMenu
MENU oMenu
2007 MENUITEM "&Salida" ;
MESSAGE( "Saida(Escape) do Sistema" ) MENU MENUITEM "Sair do Sistema " ;
RESOURCE "SAIDA16X16" ;
ACCELERATOR ACC_ALT,
ASC( "S" ) ;
ACTION( oWnd:
End() ) ;
MESSAGE "Saida Para o Sistema Operacional(Windows)" ENDMENU ENDMENURETURN( oMenu
)FUNCTION QueoCbx
( nOpt, cText, oGet
) LOCAL cTxtSil :=
"Silvio" LOCAL nYear :=
YEAR( DATE
() ) IF nOpt =
1 lWhenoCbx := .F.
oGet:
Hide() oGet:
Refresh() ELSEIF nOpt =
2 lWhenoCbx := .F.
oGet:
Show() oGet:
Disable() oGet:
VARPUT( nYear
) oGet:
Refresh() ELSEIF nOpt =
3 // Silvio Falconi lWhenoCbx := .T.
oGet:
Show() oGet:
Enable() oGet:
VARPUT( cTxtSil
) oGet:
Refresh() xFocus
( oGet
) ENDIFRETURN NILFUNCTION xFocus
( oObj
) xSetFocus
( oObj
) xSetFocus
( oObj
)RETURN( .T.
)FUNCTION xSetFocus
( oObj
) LOCAL _oWnd := oObj:
oWnd, _oTempo :=
"" DEFINE TIMER _oTempo
INTERVAL 10 OF _oWnd ;
ACTION ( oObj:
SetFocus(), _oTempo:
End() ) ACTIVATE TIMER _oTempo
RETURN( .T.
)// fin / end - João Santos - São Paulo Brasil - kapiabafwh@gmail.com
Regards, saludos.
Re: a Get on a buttonbar
Posted: Sat Oct 01, 2022 7:46 pm
by Silvio.Falconi
Can be a solution but at init I have this
If the second ComboBox option is 2 the procedure must insert before of third combobox this

two btn, a get ,two btn
and the third combobox moved to dx
Re: a Get on a buttonbar
Posted: Sat Oct 01, 2022 9:06 pm
by Silvio.Falconi
I made a small test
I cannot move the third combobox and the buttons at the end of the buttonbar
Just to explain what I mean
Code: Select all | Expand
#include "FiveWin.ch"
static oWnd
function Main()
DEFINE WINDOW oWnd TITLE "Test" MDI ;
MENU BuildMenu()
ACTIVATE WINDOW oWnd
return nil
function BuildMenu()
local oMenu
MENU oMenu
MENUITEM "Test"
MENU
MENUITEM "Child" ACTION CreateChild()
SEPARATOR
MENUITEM "Exit" ACTION oWnd:End()
ENDMENU
oMenu:AddMdi()
ENDMENU
return oMenu
function CreateChild()
local oWnd, oBar
local aShowWheel := {"Ruote Orizontali","Ruote Orizontali Venus ","Ruote Verticali"}
local aShowExtract:= {"Estrazioni continue","Estrazioni annuali"}
local aRecno := {"2","5","10","20","30","40","50","100","200","300","500"}
local aShowCbx := array(3)
local nTypeShow
local oGetYear
local oBtnYear:=array(4)
local nYear:= 2022
local lWhenoCbx := .f.
local nRecnos := 10
local cExtractSel := "Estrazioni continue"
local oPrint,oExit
DEFINE WINDOW oWnd MDICHILD TITLE "Child" VSCROLL
DEFINE BUTTONBAR oBar TOP OF oWnd 2015
@ 2,5 COMBOBOX aShowCbx[1] Var nTypeShow ITEMS aShowWheel ;
SIZE 180,400 PIXEL OF oBar HEIGHTGET 18
@ 2,190 COMBOBOX aShowCbx[2] Var cExtractSel ITEMS aShowExtract ;
SIZE 150,400 PIXEL OF oBar HEIGHTGET 18 STYLE CBS_DROPDOWN ;
ON CHANGE( ChangeCombo( aShowCbx[2]:nAt,;
cExtractSel, oGetYear ,@aShowCbx[3], @lWhenoCbx ) )
@ 2, 380 GET oGetYear VAR nYear SIZE 60,22 PIXEL OF oBar ;
UPDATE WHEN( lWhenoCbx )
@ 2,350 COMBOBOX aShowCbx[3] VAR nRecnos ITEMS aRecno SIZE 50,60 PIXEL;
OF oBar HEIGHTGET 18 STYLE CBS_DROPDOWN
DEFINE BUTTON oPrint RESOURCE "print" NOBORDER OF oBar GROUP ;
TOOLTIP "Imprimir" ACTION NIL
DEFINE BUTTON oExit RESOURCE "power" NOBORDER OF oBar GROUP ;
TOOLTIP "Uscita" ;
ACTION( oWnd:End() )
oBar:bRClicked := {|| 0 }
oBar:bLClicked := {|| 0 }
lWhenoCbx := .F.
oGetYear:hide()
oGetYear:Refresh()
ACTIVATE WINDOW oWnd
return nil
//----------------------------------------------------------//
Function ChangeCombo( nOpt, cText, oGet, oCombo, lWhenoCbx )
local nYear := YEAR( DATE() )
IF nOpt = 1
lWhenoCbx := .F.
oGet:Hide()
oGet:Refresh()
oGet:Disable()
oCombo:Move( oCombo:nTop, 380 )
ELSEIF nOpt = 2
lWhenoCbx := .t.
oGet:Show()
oGet:Enable()
oGet:VARPUT( nYear )
oGet:Refresh()
oCombo:Move( oCombo:nTop, 480 )
ENDIF
oCombo:refresh()
oGet:setfocus()
RETURN lWhenoCbx
Re: a Get on a buttonbar
Posted: Sat Oct 01, 2022 9:57 pm
by cmsoft
Silvio, no entiendo muy bien si esto es lo que quieres
Mover los botones al final de la barra?
Code: Select all | Expand
#include "FiveWin.ch"
static oWnd
function Main()
DEFINE WINDOW oWnd TITLE "Test" MDI ;
MENU BuildMenu()
ACTIVATE WINDOW oWnd
return nil
function BuildMenu()
local oMenu
MENU oMenu
MENUITEM "Test"
MENU
MENUITEM "Child" ACTION CreateChild()
SEPARATOR
MENUITEM "Exit" ACTION oWnd:End()
ENDMENU
oMenu:AddMdi()
ENDMENU
return oMenu
function CreateChild()
local oWnd, oBar
local aShowWheel := {"Ruote Orizontali","Ruote Orizontali Venus ","Ruote Verticali"}
local aShowExtract:= {"Estrazioni continue","Estrazioni annuali"}
local aRecno := {"2","5","10","20","30","40","50","100","200","300","500"}
local aShowCbx := array(3)
local nTypeShow
local oGetYear
local oBtnYear:=array(4)
local nYear:= 2022
local lWhenoCbx := .f.
local nRecnos := "10"
local cExtractSel := "Estrazioni continue"
local oPrint,oExit
DEFINE WINDOW oWnd MDICHILD TITLE "Child" VSCROLL
DEFINE BUTTONBAR oBar TOP OF oWnd 2015
@ 2,5 COMBOBOX aShowCbx[1] Var nTypeShow ITEMS aShowWheel ;
SIZE 180,400 PIXEL OF oBar HEIGHTGET 18
@ 2,190 COMBOBOX aShowCbx[2] Var cExtractSel ITEMS aShowExtract ;
SIZE 150,400 PIXEL OF oBar HEIGHTGET 18 STYLE CBS_DROPDOWN ;
ON CHANGE( ChangeCombo( aShowCbx[2]:nAt,;
cExtractSel, oGetYear ,@aShowCbx[3], @lWhenoCbx,oPrint,oExit,oBar ) )
@ 2, 350 GET oGetYear VAR nYear SIZE 60,22 PIXEL OF oBar ;
UPDATE WHEN( lWhenoCbx )
@ 2,350 COMBOBOX aShowCbx[3] VAR nRecnos ITEMS aRecno SIZE 50,60 PIXEL;
OF oBar HEIGHTGET 18 STYLE CBS_DROPDOWN
DEFINE BUTTON oPrint RESOURCE "print" PROMPT "P" OF oBar ;
TOOLTIP "Imprimir" ACTION NIL
DEFINE BUTTON oExit RESOURCE "power" PROMPT "E" OF oBar ;
TOOLTIP "Uscita" ;
ACTION( oWnd:End() )
oBar:bRClicked := {|| 0 }
oBar:bLClicked := {|| 0 }
lWhenoCbx := .F.
oGetYear:hide()
oGetYear:Refresh()
ACTIVATE WINDOW oWnd
return nil
//----------------------------------------------------------//
Function ChangeCombo( nOpt, cText, oGet, oCombo, lWhenoCbx,oPrint,oExit,oBar )
local nYear := YEAR( DATE() )
//oPrint:destroy()
//oExit:destroy()
IF nOpt = 1
lWhenoCbx := .F.
oGet:Hide()
oGet:Refresh()
oGet:Disable()
oCombo:Move( oCombo:nTop, 350 )
oPrint:Move( oPrint:nTop, oPrint:nLeft - 80 )
oExit:Move( oExit:nTop, oExit:nLeft - 80 )
ELSEIF nOpt = 2
lWhenoCbx := .t.
oGet:Show()
oGet:Enable()
oGet:VARPUT( nYear )
oGet:Refresh()
oCombo:Move( oCombo:nTop, 430 )
oPrint:Move( oPrint:nTop, oPrint:nLeft + 80 )
oExit:Move( oExit:nTop, oEXIT:nLeft + 80 )
ENDIF
oCombo:refresh()
oGet:setfocus()
// oPrint:show()
// oExit:show()
/*
DEFINE BUTTON oPrint RESOURCE "print" NOBORDER OF oBar ;
TOOLTIP "Imprimir" ACTION NIL
DEFINE BUTTON oExit RESOURCE "power" NOBORDER OF oBar ;
TOOLTIP "Uscita" ;
ACTION( oWnd:End() )*/
RETURN lWhenoCbx
Re: a Get on a buttonbar
Posted: Sun Oct 02, 2022 1:50 pm
by karinha
La verdad no entendí nada. Ni el propósito de la misma.
Honestly I didn't understand anything. Nor the purpose of it.
Regards, saludos.
Re: a Get on a buttonbar
Posted: Mon Oct 03, 2022 7:54 am
by Silvio.Falconi
karinha wrote:La verdad no entendí nada. Ni el propósito de la misma.
Honestly I didn't understand anything. Nor the purpose of it.
Regards, saludos.
honestamente a veces no puedo entender las respuestas que me dan, probablemente no puedo explicarme bien
Eppiure es muy simple, tengo tres cuadros combinados.
el segundo combobox tiene dos opciones
si el usuario final cambia el segundo combobox y selecciona la segunda opción "extracciones anuales" debe aparecer un get con el número del año actual y dos botones para seleccionar (avance y retroceso del año)
este get debe colocarse antes del tercer cuadro combinado
finalmente despues del tercer combobox estan los demas botones de la barra de botones
Qué no entendiste ?
Re: a Get on a buttonbar
Posted: Mon Oct 03, 2022 7:58 am
by Silvio.Falconi
cmsoft wrote:Silvio, no entiendo muy bien si esto es lo que quieres
Mover los botones al final de la barra?
Code: Select all | Expand
#include "FiveWin.ch"
static oWnd
function Main()
DEFINE WINDOW oWnd TITLE "Test" MDI ;
MENU BuildMenu()
ACTIVATE WINDOW oWnd
return nil
function BuildMenu()
local oMenu
MENU oMenu
MENUITEM "Test"
MENU
MENUITEM "Child" ACTION CreateChild()
SEPARATOR
MENUITEM "Exit" ACTION oWnd:End()
ENDMENU
oMenu:AddMdi()
ENDMENU
return oMenu
function CreateChild()
local oWnd, oBar
local aShowWheel := {"Ruote Orizontali","Ruote Orizontali Venus ","Ruote Verticali"}
local aShowExtract:= {"Estrazioni continue","Estrazioni annuali"}
local aRecno := {"2","5","10","20","30","40","50","100","200","300","500"}
local aShowCbx := array(3)
local nTypeShow
local oGetYear
local oBtnYear:=array(4)
local nYear:= 2022
local lWhenoCbx := .f.
local nRecnos := "10"
local cExtractSel := "Estrazioni continue"
local oPrint,oExit
DEFINE WINDOW oWnd MDICHILD TITLE "Child" VSCROLL
DEFINE BUTTONBAR oBar TOP OF oWnd 2015
@ 2,5 COMBOBOX aShowCbx[1] Var nTypeShow ITEMS aShowWheel ;
SIZE 180,400 PIXEL OF oBar HEIGHTGET 18
@ 2,190 COMBOBOX aShowCbx[2] Var cExtractSel ITEMS aShowExtract ;
SIZE 150,400 PIXEL OF oBar HEIGHTGET 18 STYLE CBS_DROPDOWN ;
ON CHANGE( ChangeCombo( aShowCbx[2]:nAt,;
cExtractSel, oGetYear ,@aShowCbx[3], @lWhenoCbx,oPrint,oExit,oBar ) )
@ 2, 350 GET oGetYear VAR nYear SIZE 60,22 PIXEL OF oBar ;
UPDATE WHEN( lWhenoCbx )
@ 2,350 COMBOBOX aShowCbx[3] VAR nRecnos ITEMS aRecno SIZE 50,60 PIXEL;
OF oBar HEIGHTGET 18 STYLE CBS_DROPDOWN
DEFINE BUTTON oPrint RESOURCE "print" PROMPT "P" OF oBar ;
TOOLTIP "Imprimir" ACTION NIL
DEFINE BUTTON oExit RESOURCE "power" PROMPT "E" OF oBar ;
TOOLTIP "Uscita" ;
ACTION( oWnd:End() )
oBar:bRClicked := {|| 0 }
oBar:bLClicked := {|| 0 }
lWhenoCbx := .F.
oGetYear:hide()
oGetYear:Refresh()
ACTIVATE WINDOW oWnd
return nil
//----------------------------------------------------------//
Function ChangeCombo( nOpt, cText, oGet, oCombo, lWhenoCbx,oPrint,oExit,oBar )
local nYear := YEAR( DATE() )
//oPrint:destroy()
//oExit:destroy()
IF nOpt = 1
lWhenoCbx := .F.
oGet:Hide()
oGet:Refresh()
oGet:Disable()
oCombo:Move( oCombo:nTop, 350 )
oPrint:Move( oPrint:nTop, oPrint:nLeft - 80 )
oExit:Move( oExit:nTop, oExit:nLeft - 80 )
ELSEIF nOpt = 2
lWhenoCbx := .t.
oGet:Show()
oGet:Enable()
oGet:VARPUT( nYear )
oGet:Refresh()
oCombo:Move( oCombo:nTop, 430 )
oPrint:Move( oPrint:nTop, oPrint:nLeft + 80 )
oExit:Move( oExit:nTop, oEXIT:nLeft + 80 )
ENDIF
oCombo:refresh()
oGet:setfocus()
// oPrint:show()
// oExit:show()
/*
DEFINE BUTTON oPrint RESOURCE "print" NOBORDER OF oBar ;
TOOLTIP "Imprimir" ACTION NIL
DEFINE BUTTON oExit RESOURCE "power" NOBORDER OF oBar ;
TOOLTIP "Uscita" ;
ACTION( oWnd:End() )*/
RETURN lWhenoCbx
su solución funciona bien, solo quiero insertar antes y después de obtener dos botones <y> para seleccionar el año de un lado a otro
y antes del botón oPrint hay otros botones
lo que habia hecho era solo un ejemplo, sin reconocimiento
