Hide oFolder option

Hide oFolder option

Postby sambomb » Thu Jul 29, 2010 2:40 pm

When I change one checkbox I need to hide an option, the second in that case. sample:
Code: Select all  Expand view

   Redefine Folder      oFolder;
            ID          200;
            Prompt      "Nome da Empresa",;
                        "Linha",;
                        "Cod Barras",;
            Of          oDlg;
            Dialogs     "TDLGCONFIGARGOXCAMPO",;
                        "TDLGCONFIGARGOXLINHA",;
                        "TDLGCONFIGARGOXBARRAS"
 


I want to show only the first and the third option, any hint?
maybe some like: oFolder:aVisible[2] := .F., oFolder:Refresh()
Email: SamirSSabreu@gmail.com
MSN: SamirAbreu@hotmail.com
Skype: SamirAbreu
xHarbour 1.1.0 + FwXh 8.02
xHarbour 1.2.1 + Fwhh 10.6
User avatar
sambomb
 
Posts: 385
Joined: Mon Oct 13, 2008 11:26 am
Location: Itaocara - RJ - Brasil

Re: Hide oFolder option

Postby ukoenig » Thu Jul 29, 2010 6:14 pm

A Solution, I used in one of my Tools :
Because of big Page-Sizes, I use a extra Function for each Folder-Page.

Image

Code: Select all  Expand view

#include "FiveWin.ch"

FUNCTION MAIN()
local oDlg1, oCheck1, lCheck1 := .F.
   
DEFINE DIALOG oDlg RESOURCE "Test0"

REDEFINE CHECKBOX oCheck1 VAR lCheck1  ID 100  OF oDlg UPDATE

REDEFINE BUTTON ID 20 OF oDlg ;
ACTION LOAD_FOLDER(lCheck1)  

REDEFINE BUTTON ID 30 OF oDlg ;
ACTION oDlg:End()  

ACTIVATE DIALOG oDlg CENTERED
   
RETURN NIL  

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

FUNCTION LOAD_FOLDER( lCheck1 )
LOCAL oDlg2, oFld

DEFINE DIALOG oDlg2 RESOURCE "Test"
   
IF lCheck1 = .T.
    REDEFINE FOLDER oFld ID 10 OF oDlg2 ;
    PROMPTS "One", "Three" DIALOGS "dlg1", "dlg3"
    PAGE1(oFld,1)
    PAGE3(oFld,2)
ELSE
    REDEFINE FOLDER oFld ID 10 OF oDlg2 ;
    PROMPTS "One", "Two", "Three" DIALOGS "dlg1", "dlg2", "dlg3"
    PAGE1(oFld,1)
    PAGE2(oFld,2)
    PAGE3(oFld,3)
ENDIF      

REDEFINE BUTTON ID 20 OF oDlg2 ;
ACTION oDlg2:End()  

ACTIVATE DIALOG oDlg2 CENTERED
   
RETURN NIL  

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

FUNCTION PAGE1(oFld,nPage)
LOCAL oGet1, cGet1 := "Test1"

REDEFINE GET oGet1  VAR cGet1 ID 10  OF oFld:aDialogs[nPage]

RETURN NIL

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

FUNCTION PAGE2(oFld,nPage)
LOCAL oGet2, cGet2 := "Test2"

REDEFINE GET oGet2 VAR cGet2  ID 20  OF oFld:aDialogs[nPage]

RETURN NIL

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

FUNCTION PAGE3(oFld,nPage)
LOCAL oGet3, cGet3 := "Test3"

REDEFINE GET oGet3 VAR cGet3  ID 30 OF oFld:aDialogs[nPage]

RETURN NIL
 


Best Regards
Uwe :lol:
Since 1995 ( the first release of FW 1.9 )
i work with FW.
If you have any questions about special functions, maybe i can help.
User avatar
ukoenig
 
Posts: 4043
Joined: Wed Dec 19, 2007 6:40 pm
Location: Germany

Re: Hide oFolder option

Postby sambomb » Thu Jul 29, 2010 6:35 pm

But I have 12 pages and 12 checkbox to control if the page is visible or not, the way you use will be too hard to code.
Email: SamirSSabreu@gmail.com
MSN: SamirAbreu@hotmail.com
Skype: SamirAbreu
xHarbour 1.1.0 + FwXh 8.02
xHarbour 1.2.1 + Fwhh 10.6
User avatar
sambomb
 
Posts: 385
Joined: Mon Oct 13, 2008 11:26 am
Location: Itaocara - RJ - Brasil

Re: Hide oFolder option

Postby ukoenig » Fri Jul 30, 2010 11:17 pm

The Solution You are looking for ?
( creates a Folder with Pages, defined in the Main-Dialog with Checkboxes )

Image

The PRG :

Code: Select all  Expand view

// Dinamically adding pages and controls

#include "FiveWin.ch"

STATIC oCheck[12], lCheck[12], cPROMPT[12]

FUNCTION Main()
LOCAL oDlg1

// VAR-Init for Checkboxes
// ----------------------------
I := 1
FOR I := 1 TO 12
    lCheck[I] := .F.
NEXT

// Define Page-Titles
// -------------------------
cPROMPT[1] := "P 1"
cPROMPT[2] := "P 2"
cPROMPT[3] := "P 3"
cPROMPT[4] := "P 4"
cPROMPT[5] := "P 5"
cPROMPT[6] := "P 6"
cPROMPT[7] := "P 7"
cPROMPT[8] := "P 8"
cPROMPT[9] := "P 9"
cPROMPT[10] := "P 10"
cPROMPT[11] := "P 11"
cPROMPT[12] := "P 12"

DEFINE DIALOG oDlg1 RESOURCE "Test0"

REDEFINE CHECKBOX oCheck[1] VAR lCheck[1]  ID 101  OF oDlg1 UPDATE
REDEFINE CHECKBOX oCheck[2] VAR lCheck[2]  ID 102  OF oDlg1 UPDATE
REDEFINE CHECKBOX oCheck[3] VAR lCheck[3]  ID 103  OF oDlg1 UPDATE
REDEFINE CHECKBOX oCheck[4] VAR lCheck[4]  ID 104  OF oDlg1 UPDATE
REDEFINE CHECKBOX oCheck[5] VAR lCheck[5]  ID 105  OF oDlg1 UPDATE
REDEFINE CHECKBOX oCheck[6] VAR lCheck[6]  ID 106  OF oDlg1 UPDATE
REDEFINE CHECKBOX oCheck[7] VAR lCheck[7]  ID 107  OF oDlg1 UPDATE
REDEFINE CHECKBOX oCheck[8] VAR lCheck[8]  ID 108  OF oDlg1 UPDATE
REDEFINE CHECKBOX oCheck[9] VAR lCheck[9]  ID 109  OF oDlg1 UPDATE
REDEFINE CHECKBOX oCheck[10] VAR lCheck[10]  ID 110  OF oDlg1 UPDATE
REDEFINE CHECKBOX oCheck[11] VAR lCheck[11]  ID 111  OF oDlg1 UPDATE
REDEFINE CHECKBOX oCheck[12] VAR lCheck[12]  ID 112  OF oDlg1 UPDATE

REDEFINE BUTTON ID 20 OF oDlg1 ;
ACTION LOAD_FOLDER(lCheck)  

REDEFINE BUTTON ID 30 OF oDlg1 ;
ACTION oDlg1:End()  

ACTIVATE DIALOG oDlg1 CENTERED

RETURN( NIL )
   
// --------------------------

FUNCTION LOAD_FOLDER(lCheck)
LOCAL oDlg2, oFld

DEFINE DIALOG oDlg2 RESOURCE "Test1"

// Define the 1. selected Folderpage
// ----------------------------------------

I := 1
nSelected := 0 // no Page selected
FOR I := 1 TO 12
        xxx := LTRIM(STR(I))
    IF lCheck[I] = .T.
        REDEFINE FOLDER oFld ID 110 OF oDlg2 ;
        DIALOGS "dlg&xxx" PROMPTS cPROMPT[I]
        nSelected := I
        EXIT
    ENDIF
NEXT

// Break if nothing selected
// -----------------------------
IF nSelected = 0
    MsgAlert( "No Folder-pages selected !", "Attention" )
    RETURN( NIL )
ENDIF

// Fill the defined 1. Folder-page with Data
// ---------------------------------------------------
PAGE&xxx( oFld:aDialogs[1] )

// Only for Test !!!
// -------------------
// REDEFINE BUTTON ID 20 OF oDlg2 ;
// ACTION ( oFld:AddItem( "P 5", "dlg5", { | oDlg2 | RedefineControls( oDlg2 ) } ),;
//                  ATail( oFld:aDialogs ):SetFont( oFld:oFont ) )

REDEFINE BUTTON ID 30 OF oDlg2 ;
ACTION oDlg2:End()  

ACTIVATE DIALOG oDlg2 CENTERED ;
ON INIT AddDialog( oDlg2, oFld, nSelected )

RETURN NIL

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

FUNCTION ADDDIALOG( oDlg2, oFld, nSelect )

// Select all other Folderpages ( 1. selected Page is excluded )
// ----------------------------------------------------------------------
I := 1
FOR I := 1 TO 12
        xxx := LTRIM(STR(I))
    IF lCheck[I] = .T. .and. I <> nSelected
        oFld:AddItem( cPROMPT[I], "dlg&xxx", { | oDlg2 | RedefineControls( oDlg2, I ) } )
        ATail( oFld:aDialogs ):SetFont( oFld:oFont )
    ENDIF
NEXT

RETURN NIL

// -------- Load PAGE - Controls ( 1. Page excluded ) -----------------

FUNCTION RedefineControls( oDlg2, I )
LOCAL J

J := 1
FOR J := 1 TO 12
    xxx := LTRIM(STR(I))
    IF lCheck[I] = .T.  .and. I = J
        PAGE&xxx(oDlg2)
    ENDIF
NEXT

RETURN NIL

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

FUNCTION PAGE1(oDlg2)
LOCAL oGet1, cGet1 := "Test1"

REDEFINE GET oGet1  VAR cGet1 ID 10  OF oDlg2

RETURN NIL

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

FUNCTION PAGE2(oDlg2)
LOCAL oGet2, cGet2 := "Test2"

REDEFINE GET oGet2 VAR cGet2  ID 20  OF oDlg2

RETURN NIL

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

FUNCTION PAGE3(oDlg2)
LOCAL oGet3, cGet3 := "Test3"

REDEFINE GET oGet3 VAR cGet3  ID 30 OF oDlg2

RETURN NIL

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

FUNCTION PAGE4(oDlg2)
LOCAL oGet4, cGet4 := "Test4"

REDEFINE GET oGet4 VAR cGet4  ID 40 OF oDlg2

RETURN NIL

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

FUNCTION PAGE5(oDlg2)
LOCAL oGet5, cGet5 := "Test5"

REDEFINE GET oGet5 VAR cGet5  ID 50 OF oDlg2

RETURN NIL

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

FUNCTION PAGE6(oDlg2)
LOCAL oGet6, cGet6 := "Test6"

REDEFINE GET oGet6 VAR cGet6  ID 60 OF oDlg2

RETURN NIL

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

FUNCTION PAGE7(oDlg2)
LOCAL oGet7, cGet7 := "Test7"

REDEFINE GET oGet7 VAR cGet7  ID 70 OF oDlg2

RETURN NIL

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

FUNCTION PAGE8(oDlg2)
LOCAL oGet8, cGet8 := "Test8"

REDEFINE GET oGet8 VAR cGet8  ID 80 OF oDlg2

RETURN NIL

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

FUNCTION PAGE9(oDlg2)
LOCAL oGet9, cGet9 := "Test9"

REDEFINE GET oGet9 VAR cGet9  ID 90 OF oDlg2

RETURN NIL

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

FUNCTION PAGE10(oDlg2)
LOCAL oGet10, cGet10 := "Test10"

REDEFINE GET oGet10 VAR cGet10  ID 100 OF oDlg2

RETURN NIL

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

FUNCTION PAGE11(oDlg2)
LOCAL oGet11, cGet11 := "Test11"

REDEFINE GET oGet11 VAR cGet11  ID 110 OF oDlg2

RETURN NIL

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

FUNCTION PAGE12(oDlg2)
LOCAL oGet12, cGet12 := "Test12"

REDEFINE GET oGet12 VAR cGet12  ID 120 OF oDlg2

RETURN NIL
 


The RESOURCE :

Code: Select all  Expand view

Test1 DIALOG 19, 47, 357, 124
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "FiveWin Folders"
{
 CONTROL "", 110, "SysTabControl32", 0 | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 4, 5, 348, 99
 PUSHBUTTON "&Exit", 30, 223, 107, 37, 14
 PUSHBUTTON "&Add page", 20, 95, 107, 94, 14
}

Test0 DIALOG 56, 54, 194, 148
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Test"
FONT 8, "MS Sans Serif"
{
 DEFPUSHBUTTON "Exit", 30, 127, 112, 53, 22
 CHECKBOX " Page 1 included", 101, 15, 6, 83, 12
 DEFPUSHBUTTON "Load Folder", 20, 29, 112, 82, 22
 CHECKBOX " Page 2 included", 102, 15, 22, 83, 12
 CHECKBOX " Page 3 included", 103, 15, 38, 83, 12
 CHECKBOX " Page 4 included", 104, 15, 53, 83, 12
 CHECKBOX " Page 5 included", 105, 15, 69, 83, 12
 CHECKBOX " Page 6 included", 106, 15, 85, 83, 12
 CHECKBOX " Page  7 included", 107, 105, 5, 83, 12
 CHECKBOX " Page  8 included", 108, 105, 21, 83, 12
 CHECKBOX " Page  9 included", 109, 105, 37, 83, 12
 CHECKBOX " Page 10 included", 110, 105, 52, 83, 12
 CHECKBOX " Page 11 included", 111, 105, 68, 83, 12
 CHECKBOX " Page 12 included", 112, 105, 84, 83, 12
}

dlg1 DIALOG 18, 18, 134, 84
STYLE WS_CHILD | 4
{
 LTEXT "1. page:", 5, 22, 17, 48, 8
 EDITTEXT 10, 22, 30, 65, 11
}

dlg2 DIALOG 18, 18, 134, 84
STYLE WS_CHILD | 4
{
 LTEXT "2. page:", 5, 22, 17, 48, 8
 EDITTEXT 20, 22, 30, 65, 11
}

dlg3 DIALOG 18, 18, 134, 84
STYLE WS_CHILD | 4
{
 LTEXT "3. page:", 5, 22, 17, 48, 8
 EDITTEXT 30, 22, 30, 65, 11
}

dlg4 DIALOG 18, 18, 134, 84
STYLE WS_CHILD | 4
{
 LTEXT "4 page:", 5, 22, 17, 48, 8
 EDITTEXT 40, 22, 30, 65, 11
}

dlg5 DIALOG 18, 18, 134, 84
STYLE WS_CHILD | 4
{
 LTEXT "5. page:", 5, 22, 17, 48, 8
 EDITTEXT 50, 22, 30, 65, 11
}

dlg6 DIALOG 18, 18, 134, 84
STYLE WS_CHILD | 4
{
 LTEXT "6. page:", 5, 22, 17, 48, 8
 EDITTEXT 60, 22, 30, 65, 11
}

dlg7 DIALOG 18, 18, 134, 84
STYLE WS_CHILD | 4
{
 LTEXT "7. page:", 5, 22, 17, 48, 8
 EDITTEXT 70, 22, 30, 65, 11
}

dlg8 DIALOG 18, 18, 134, 84
STYLE WS_CHILD | 4
{
 LTEXT "8. page:", 5, 22, 17, 48, 8
 EDITTEXT 80, 22, 30, 65, 11
}

dlg9 DIALOG 18, 18, 134, 84
STYLE WS_CHILD | 4
{
 LTEXT "9. page:", 5, 22, 17, 48, 8
 EDITTEXT 90, 22, 30, 65, 11
}

dlg10 DIALOG 18, 18, 134, 84
STYLE WS_CHILD | 4
{
 LTEXT "10. page:", 5, 22, 17, 48, 8
 EDITTEXT 100, 22, 30, 65, 11
}

dlg11 DIALOG 18, 18, 134, 84
STYLE WS_CHILD | 4
{
 LTEXT "11. page:", 5, 22, 17, 48, 8
 EDITTEXT 110, 22, 30, 65, 11
}

dlg12 DIALOG 18, 18, 134, 84
STYLE WS_CHILD | 4
{
 LTEXT "12. page:", 5, 22, 17, 48, 8
 EDITTEXT 120, 22, 30, 65, 11
}
 


Best Regards
Uwe :lol:
Since 1995 ( the first release of FW 1.9 )
i work with FW.
If you have any questions about special functions, maybe i can help.
User avatar
ukoenig
 
Posts: 4043
Joined: Wed Dec 19, 2007 6:40 pm
Location: Germany

Re: Hide oFolder option

Postby sambomb » Mon Aug 02, 2010 12:02 pm

My screen:
Image

Code: Select all  Expand view

Function ConfigArgox()
Private  oCheck := Array(12), lCheck := aFill(Array(12),.F.)

   //-- Campos
   For i := 1 to 12

      RedefineCheckCampos(i)

   end

****************************************************************************
static procedure RedefineCheckCampos(nOption)
****************************************************************************
*
* Definir método a ser executado ao alterar um dos checkbox dos campos
* Parametros: nOption
* Retorno: Nenhum
*
* Autor: Samir
* 29/7/2010 - 14:20:19
*
****************************************************************************

   Redefine CheckBox oCheck[nOption];
            Var      lCheck[nOption];
            ID       (100+nOption);
            Of       oDlg;
            Update

   oCheck[nOption]:bChange := {|| oFolder:aEnable[nOption] := lCheck[nOption]}

Return Nil

/*------------------------------------------------------------------------*/
 



When I change one checkbox I enable/disable the folder page, no need to create / destroy controls, but the folder don't turn gray when disabled, so I want to hide/show when disabled/enabled.
Email: SamirSSabreu@gmail.com
MSN: SamirAbreu@hotmail.com
Skype: SamirAbreu
xHarbour 1.1.0 + FwXh 8.02
xHarbour 1.2.1 + Fwhh 10.6
User avatar
sambomb
 
Posts: 385
Joined: Mon Oct 13, 2008 11:26 am
Location: Itaocara - RJ - Brasil

Re: Hide oFolder option

Postby ukoenig » Tue Aug 03, 2010 7:06 am

Another Solution instead showing disabled Tabs Grey.
Now You can select different Options inside the Tool :

Image

Code: Select all  Expand view

FUNCTION LOAD_FOLDER(oDlg1, lCheck) // lCheck Your Checkbox-Array !
LOCAL oDlg2, hDC, oFld, oBrush0

DEFINE BRUSH oBrush0

DEFINE DIALOG oDlg2 RESOURCE "Test1" OF oDlg1 BRUSH oBrush0 ;
TITLE  "Selected Folder-Pages" FONT oProgFont

// Test with 5 Pages
// ---------------------
REDEFINE FOLDER oFld ID 110 OF oDlg2 ;
DIALOGS "dlg1", "dlg2", "dlg3", "dlg4", "dlg5" PROMPTS "1", "2", "3", "4", "5"
...
...
ACTIVATE DIALOG oDlg2 CENTERED ;
ON INIT ( oDlg2:Move( 320, 50, NIL, NIL, .f. ), ;
   D_BRUSH( oDlg2, "MARBLE.BMP"), ;    // Dialog Background
   SetImages(oDlg2,oFld), ; // Tab-Symbols !!!!
   IIF( nStyle = 1, FoldCol( hDC, oFld ), NIL ), ;    // Folder-Background
   IIF( nStyle = 2, FoldGrad( hDC, oFld ), NIL ), ;
   IIF( nStyle = 3, FoldBrush( hDC, oFld ), NIL ), ;
   IIF( nStyle = 4, FoldImage( hDC, oFld ), NIL ) ) ;
ON PAINT oFld:SetOption(1)    // Set Focus to Page 1

RETURN NIL

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

function SetImages(oDlg, oFld)
local oImageList
   
DEFINE IMAGELIST oImageList SIZE 16, 16
 
oFld:aEnable = { lCheck[1], lCheck[2], lCheck[3], lCheck[4], lCheck[5], lCheck[6], ;
   lCheck[7], lCheck[8], lCheck[9], lCheck[10], lCheck[11], lCheck[12] }  

FOR I = 1 TO 12
   IF lCheck[I] = .T.
      oImageList:AddMasked( TBitmap():Define( "Colors",,   oDlg ), nRGB( 192, 192, 192 ) )    
   ELSE
      oImageList:AddMasked( TBitmap():Define( "Disable",,   oDlg ), nRGB( 192, 192, 192 ) )    
   ENDIF
NEXT
oFld:SetImageList( oImageList )

RETURN NIL
 


Best regards
Uwe :lol:
Since 1995 ( the first release of FW 1.9 )
i work with FW.
If you have any questions about special functions, maybe i can help.
User avatar
ukoenig
 
Posts: 4043
Joined: Wed Dec 19, 2007 6:40 pm
Location: Germany

Re: Hide oFolder option

Postby sambomb » Tue Aug 03, 2010 11:54 am

Uwe, thx for the reply, but I don't have call a other dialog with the folder, but the I'll try to implemente a solution with imagelist, each change in any checkbox change the imagelist of the folder...
Email: SamirSSabreu@gmail.com
MSN: SamirAbreu@hotmail.com
Skype: SamirAbreu
xHarbour 1.1.0 + FwXh 8.02
xHarbour 1.2.1 + Fwhh 10.6
User avatar
sambomb
 
Posts: 385
Joined: Mon Oct 13, 2008 11:26 am
Location: Itaocara - RJ - Brasil

Re: Hide oFolder option

Postby ukoenig » Tue Aug 03, 2010 4:33 pm

Tested at Runtime from inside a Dialog ( with Button-action ) :
( could be called on any checkbox-changes )

Image

Code: Select all  Expand view

FUNCTION TAB_IMAGE(oDlg, oFld)
local oImageList, cNewBmp
 
cBmp := "Calc"  
DEFINE IMAGELIST oImageList SIZE 16, 16
oFld:aEnable = { lCheck[1], lCheck[2], lCheck[3], lCheck[4], lCheck[5], lCheck[6], ;
     lCheck[7], lCheck[8], lCheck[9], lCheck[10], lCheck[11], lCheck[12] }  
FOR I = 1 TO 12
      IF lCheck[I] = .T.
            oImageList:AddMasked( TBitmap():Define( cBmp,, oDlg ), nRGB( 192, 192, 192 ) )    
      ELSE
            oImageList:AddMasked( TBitmap():Define( "Disable",,   oDlg ), nRGB( 192, 192, 192 ) )    
      ENDIF
NEXT
oFld:SetImageList( oImageList )

RETURN NIL
 


Best Regards
Uwe :lol:
Since 1995 ( the first release of FW 1.9 )
i work with FW.
If you have any questions about special functions, maybe i can help.
User avatar
ukoenig
 
Posts: 4043
Joined: Wed Dec 19, 2007 6:40 pm
Location: Germany

Re: Hide oFolder option

Postby sambomb » Tue Aug 03, 2010 5:06 pm

There is my final PRG, i'm having trouble with the objects inside the folder, they aren't showing properly, the objects appear only if I move the mouse over...

Code: Select all  Expand view

/***************************************************************************
* Sistema .....: Trade (ADS)
* Programa ....: ConfigArgox.prg
* Autor .......: Samir
* Data ........: 28/7/2010 às 17:30:20
* Revisado em .: 28/7/2010 às 17:30:20
***************************************************************************/


#include 'Fivewin.ch'
#include 'Slider.ch'
#include 'Folder.ch'
#include 'Argox.ch'

****************************************************************************
FUNCTION ConfigArgox(oDlgPai)
****************************************************************************

LOCAL aDBF := {}, i := 0

//-- Dialogo Principal
Private  oDlg, oFolder, oSlider, nSlider := 0
Private  oGet := Array(2), cGet := Array(2), oBtn := Array(2)
Private  oCheck := Array(12), lCheck := aFill(Array(12),.F.)
Private  oRadio, nRadio := 1, oGetCol := Array(6), cGetCol := Array(6)

//-- Abas
Private  oCheckAba := Array(12), lCheckAba := Array(12)
Private  oGetAba := Array(12), cGetAba := Array(12)
Private  oComboAba := Array(12), aComboAba := Array(12), cComboAba := Array(12)

//-- Auxiliar
Private  aTextoOrientacao  := {"DIREITA",  "BAIXO",  "ESQUERDA",  "CIMA"}
Private  aImagemOrientacao := {"DIREITA16","BAIXO16","ESQUERDA16","CIMA16"}
Private  aTipoCodigoBarras := {"EAN13","CODE39"}
Private  aRangeLargCodBar  := GetRange(0,24,,.T.)
Private  aMultiplicador    := GetRange(0,24,,.T.)
Private  aTipoFonte        := {"INTERNA","ASD","COURIER NEW"}
Private  aTipoFonteInterna := {}
Private  aTipoFonteASD     := {"ASD 04","ASD 06","ASD 08","ASD 10",;
                               "ASD 12","ASD 14","ASD 18","ASD 24"}
Private  aTipoFonteCourier := {"ROMAN 8",;
                               "ECMA 94",;
                               "PC SET",;
                               "PC SET A",;
                               "PC SET B",;
                               "LEGAL"}
Private  aMultiplicador := {  "0","1","2","3","4","5","6","7",;
                              "8","9","A","B","C","D","E","F",;
                              "G","H","I","J","K","L","M","N","O" }

   //-- Banco de dados a serem utilizados
   aAdd(aDBF,"CFGARGOX")
   
   aDbf := OpenDbfs(aDBF)
   
   if !aDbf[1]
      DbCloseAll()
      Return .F.
   end
   
   Select CFGARGOX
   
   //-- Só pode editar caso tenha registro
   Count to i
   If i <= 0
      Return .F.
   end

   For i := 1 to 9
      aAdd(aTipoFonteInterna, "INTERNA "+UT(i) )
   end
   
   IniciaVariaveis()

   //-- Dialogo
   Define   Dialog      oDlg;
            Resource    "TDLGCONFIGARGOX";
            Of          oDlgPai;
            Title       "Configuração de etiqueta para Argox"

   oDlg:bValid := {|| Sair() }

   Redefinir()

   ChangeFolder()

   ChangeSlider(.T.)
   oSlider:Refresh()

   Activate Dialog      oDlg;
            Center
           
   FreeAndNilDlg(oDlg)
   
   CloseDbfs(aDBF)

RETURN .T.
/*------------------------------------------------------------------------*/

****************************************************************************
static procedure IniciaVariaveis()
****************************************************************************
*
* Inicializar as variaveis a serem utilizadas na rotina
* Parametros:
* Retorno: Nenhum
*
* Autor: Samir
* 28/7/2010 - 17:59:34
*
****************************************************************************
Local i := 0

   Select CFGARGOX
   
   cGet[1]  := CODIGO
   cGet[2]  := DESCRICAO
   nSlider  := CFGHEAT
   
   nRadio   := QTDCOL

   For i := 1 to Len(cGetCol)

      cGetCol[i]  := &("MARGEMCOL"+UT(i))
     
   end

   //-- Nome da empresa
   IniciaVariaveisCampo(1)
   ObtemInfoCampo("ENOME",1)

   //-- Dados da empresa
   IniciaVariaveisCampo(2)
   ObtemInfoCampo("EDADO",2)

   //-- CNPJ da empresa
   IniciaVariaveisCampo(3)
   ObtemInfoCampo("ECNPJ",3)

   //-- Nome do Produto
   IniciaVariaveisCampo(4)
   ObtemInfoCampo("PNOME",4)

   //-- Marca do Produto
   IniciaVariaveisCampo(5)
   ObtemInfoCampo("PMARC",5)

   //-- Preço do Produto
   IniciaVariaveisCampo(6)
   ObtemInfoCampo("PPREC",6)

   //-- Linha Divisória 1
   IniciaVariaveisLinha(7)
   ObtemInfoLinha("LIN_1",7)

   //-- Linha Divisória 2
   IniciaVariaveisLinha(8)
   ObtemInfoLinha("LIN_2",8)
   
   //-- Linha Divisória 3
   IniciaVariaveisLinha(9)
   ObtemInfoLinha("LIN_3",9)
   
   //-- Mensagem 1
   IniciaVariaveisCampo(10)
   ObtemInfoCampo("MSG_1",10)

   //-- Mensagem 2
   IniciaVariaveisCampo(11)
   ObtemInfoCampo("MSG_2",11)

   //-- Barras
   IniciaVariaveisBarra(12)
   ObtemInfoBarra("BAR_1",12)

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static function IniciaVariaveisCampo(nObjeto)
****************************************************************************
*
* Iniciar as Variaveis de um campo
* Parametros: nObjeto
* Retorno:
*
* Autor: Samir
* 29/7/2010 - 14:39:21
*
****************************************************************************

   oGetAba[nObjeto]     := Array(4)
   cGetAba[nObjeto]     := Array(4)
   oComboAba[nObjeto]   := Array(5)
   aComboAba[nObjeto]   := Array(5)
   cComboAba[nObjeto]   := Array(5)
   oCheckAba[nObjeto]   := Array(0)
   lCheckAba[nObjeto]   := Array(0)

Return

/*------------------------------------------------------------------------*/

****************************************************************************
static function IniciaVariaveisLinha(nObjeto)
****************************************************************************
*
* Iniciar as Variaveis de uma linha
* Parametros: nObjeto
* Retorno:
*
* Autor: Samir
* 29/7/2010 - 14:39:21
*
****************************************************************************

   oGetAba[nObjeto]     := Array(4)
   cGetAba[nObjeto]     := Array(4)
   oComboAba[nObjeto]   := Array(0)
   aComboAba[nObjeto]   := Array(0)
   cComboAba[nObjeto]   := Array(0)
   oCheckAba[nObjeto]   := Array(0)
   lCheckAba[nObjeto]   := Array(0)

Return

/*------------------------------------------------------------------------*/

****************************************************************************
static function IniciaVariaveisBarra(nObjeto)
****************************************************************************
*
* Iniciar as Variaveis de um código de barras
* Parametros: nObjeto
* Retorno:
*
* Autor: Samir
* 29/7/2010 - 14:39:21
*
****************************************************************************

   oGetAba[nObjeto]    := Array(3)
   cGetAba[nObjeto]    := Array(3)
   oComboAba[nObjeto]  := Array(4)
   aComboAba[nObjeto]  := Array(4)
   cComboAba[nObjeto]  := Array(4)
   oCheckAba[nObjeto]  := Array(2)
   lCheckAba[nObjeto]  := aFill(Array(2),.F.)

Return

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure Redefinir()
****************************************************************************
*
* Redefinir os controles que serão utilizados no procedimento
* Parametros:
* Retorno: Nenhum
*
* Autor: Samir
* 29/7/2010 - 09:29:39
*
****************************************************************************
Local i := 0

   //-- Tempereratura
   nSlider := 10
   
   Redefine Slider      oSlider;
            Var         nSlider;
            ID          100;
            Of          oDlg;
            Horizontal;
            Range       1,20;
            Marks       20;
            Exact;
            RIGHT DIRECTION;
            Message     "Temperatua atual: 12";
            On Change   ChangeSlider();
            Update

   //-- Telas dos campos
   Redefine Folder      oFolder;
            ID          200;
            Prompt      "Nome da Empresa",;
                        "Dados da Empresa",;
                        "CNPJ da Empresa",;
                        "Nome do Produto",;
                        "Marca do Produto",;
                        "Preço do Produto",;
                        "Linha 1",;
                        "Linha 2",;
                        "Linha 3",;
                        "Mensagem 1",;
                        "Mensagem 2",;
                        "Código de Barras";
            Of          oDlg;
            Dialogs     "TDLGCONFIGARGOXCAMPO",;
                        "TDLGCONFIGARGOXCAMPO",;
                        "TDLGCONFIGARGOXCAMPO",;
                        "TDLGCONFIGARGOXCAMPO",;
                        "TDLGCONFIGARGOXCAMPO",;
                        "TDLGCONFIGARGOXCAMPO",;
                        "TDLGCONFIGARGOXLINHA",;
                        "TDLGCONFIGARGOXLINHA",;
                        "TDLGCONFIGARGOXLINHA",;
                        "TDLGCONFIGARGOXCAMPO",;
                        "TDLGCONFIGARGOXCAMPO",;
                        "TDLGCONFIGARGOXBARRAS"

   //-- Campos
   For i := 1 to 12

      RedefineCheckCampos(i)

   end

   //-- Código
   Redefine Get         oGet[1];
            Var         cGet[1];
            ID          301;
            Of          oDlg;
            Picture     "99999";
            When        .F.;
            Update

   //-- Descrição
   Redefine Get         oGet[2];
            Var         cGet[2];
            ID          302;
            Picture     "@!";
            Of          oDlg;
            Update

   //-- Colunas
   Redefine Radio       oRadio;
            Var         nRadio;
            ID          501,502,503,504,505,506;
            Of          oDlg;
            Update
           
   For i := 1 to Len(oGetCol)
      RedefineGetCol(i)
   end

   //-- Confirmar
   Redefine ButtonBmp   oBtn[1];
            ID          201;
            Of          oDlg;
            Action      Confirmar();
            Bitmap      "SALVA24";
            Prompt      "Confirmar  ";
            TEXTRIGHT;
            Update

   //-- Sair
   Redefine ButtonBmp   oBtn[2];
            ID          202;
            Of          oDlg;
            Action      oDlg:End();
            Bitmap      "SAIDA24";
            Prompt      "Sair  ";
            TEXTRIGHT;
            Update

   //-- Nome da Empresa
   RedefineCampo(1)

   //-- Dados da Empresa
   RedefineCampo(2)

   //-- CNPJ da Empresa
   RedefineCampo(3)

   //-- Nome do Produto
   RedefineCampo(4)

   //-- Marca do Produto
   RedefineCampo(5)

   //-- Preço do Produto
   RedefineCampo(6)

   //-- Linha 1
   RedefineLinha(7)

   //-- Linha 2
   RedefineLinha(8)

   //-- Linha 3
   RedefineLinha(9)

   //-- Mensagem 1
   RedefineCampo(10)

   //-- Mensagem 2
   RedefineCampo(11)

   //-- Código de barras
   RedefineBarra(12)

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure RedefineGetCol(nCol)
****************************************************************************
*
* Redefinir Get para armazenar as margens de cada coluna
* Parametros: nCol
* Retorno: Nenhum
*
* Autor: Samir
* 2/8/2010 - 10:40:34
*
****************************************************************************

   Redefine Get      oGetCol[nCol];
            Var      cGetCol[nCol];
            ID       510+nCol;
            of       oDlg;
            When     nRadio >= nCol;
            Picture  "99.99";
            Update

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure RedefineCampo(nFolder)
****************************************************************************
*
* Redefinir a tela no folder de campo
* Parametros:
* Retorno: Nenhum
*
* Autor: Samir
* 29/7/2010 - 09:30:39
*
****************************************************************************

   //-- Tipo
   aComboAba[nFolder,1] := aTipoFonte
   cComboAba[nFolder,1] := aTipoFonte[1]
   
   Redefine Combobox    oComboAba[nFolder,1];
            Var         cComboAba[nFolder,1];
            Items       aComboAba[nFolder,1];
            ID          101;
            Of          oFolder:aDialogs[nFolder];
            Update
           
   oComboAba[nFolder,1]:bChange := {|| ChangeTipoFonte(nFolder) }
   
   //-- Sub-Tipo
   Redefine Combobox    oComboAba[nFolder,2];
            Var         cComboAba[nFolder,2];
            Items       aComboAba[nFolder,2];
            ID          102;
            Of          oFolder:aDialogs[nFolder];
            Update
           
   //-- Método On Change do ComboBox de Tipo já trata o item
   Eval(oComboAba[nFolder,1]:bChange)

   //-- Eixo X
   Redefine Get         oGetAba[nFolder,1];
            Var         cGetAba[nFolder,1];
            ID          103;
            Picture     "99.99";
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Eixo Y
   Redefine Get         oGetAba[nFolder,2];
            Var         cGetAba[nFolder,2];
            ID          104;
            Picture     "99.99";
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Orientação
   aComboAba[nFolder,3] := aTextoOrientacao
   cComboAba[nFolder,3] := aTextoOrientacao[1]
   
   Redefine Combobox    oComboAba[nFolder,3];
            Var         cComboAba[nFolder,3];
            Items       aComboAba[nFolder,3];
            Bitmaps     aImagemOrientacao;
            ID          105;
            Of          oFolder:aDialogs[nFolder];
            Update
           
//   oComboAba[nFolder,3]:aBitmaps := aImagemOrientacao
//   oComboAba[nFolder,3]:SetBitmaps(aImagemOrientacao)
//   oComboAba[nFolder,3]:Refresh()

   //-- Largura
   Redefine Get         oGetAba[nFolder,3];
            Var         cGetAba[nFolder,3];
            ID          106;
            Picture     "99.99";
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Altura
   Redefine Get         oGetAba[nFolder,4];
            Var         cGetAba[nFolder,4];
            ID          107;
            Picture     "99.99";
            Of          oFolder:aDialogs[nFolder];
            Update
           
   //-- Multiplicador Horizontal
   aComboAba[nFolder,4] := aMultiplicador
   cComboAba[nFolder,4] := aMultiplicador[1]
   
   Redefine Combobox    oComboAba[nFolder,4];
            Var         cComboAba[nFolder,4];
            Items       aComboAba[nFolder,4];
            ID          108;
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Multiplicador Vertical
   aComboAba[nFolder,5] := aMultiplicador
   cComboAba[nFolder,5] := aMultiplicador[1]
   
   Redefine Combobox    oComboAba[nFolder,5];
            Var         cComboAba[nFolder,5];
            Items       aComboAba[nFolder,5];
            ID          109;
            Of          oFolder:aDialogs[nFolder];
            Update

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure RedefineLinha(nFolder)
****************************************************************************
*
* Redefinir a tela no folder de Linha
* Parametros:
* Retorno: Nenhum
*
* Autor: Samir
* 29/7/2010 - 09:30:39
*
****************************************************************************

   //-- Eixo X
   Redefine Get         oGetAba[nFolder,1];
            Var         cGetAba[nFolder,1];
            ID          101;
            Picture     "99.99";
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Eixo Y
   Redefine Get         oGetAba[nFolder,2];
            Var         cGetAba[nFolder,2];
            ID          102;
            Picture     "99.99";
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Largura
   Redefine Get         oGetAba[nFolder,3];
            Var         cGetAba[nFolder,3];
            ID          103;
            Picture     "99.99";
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Altura
   Redefine Get         oGetAba[nFolder,4];
            Var         cGetAba[nFolder,4];
            ID          104;
            Picture     "99.99";
            Of          oFolder:aDialogs[nFolder];
            Update

Return Nil

/*------------------------------------------------------------------------*/
 

Code: Select all  Expand view

****************************************************************************
static procedure RedefineBarra(nFolder)
****************************************************************************
*
* Redefinir a tela no folder de Código de Barras
* Parametros:
* Retorno: Nenhum
*
* Autor: Samir
* 29/7/2010 - 09:30:39
*
****************************************************************************

   //-- Utilizar código interno
   Redefine CheckBox    oCheckAba[nFolder,1];
            Var         lCheckAba[nFolder,1];
            ID          101;
            Of          oFolder:aDialogs[nFolder];
            Update
           
   oCheckAba[nFolder,1]:bChange := {|| ChangeUsaCodInterno(nFolder) }

   //-- Exibir número
   Redefine CheckBox    oCheckAba[nFolder,2];
            Var         lCheckAba[nFolder,2];
            ID          102;
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Tipo
   aComboAba[nFolder,1] := aTipoCodigoBarras
   cComboAba[nFolder,1] := aTipoCodigoBarras[1]
   
   Redefine Combobox    oComboAba[nFolder,1];
            Var         cComboAba[nFolder,1];
            Items       aComboAba[nFolder,1];
            ID          103;
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Eixo X
   Redefine Get         oGetAba[nFolder,1];
            Var         cGetAba[nFolder,1];
            ID          104;
            Picture     "99.99";
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Eixo Y
   Redefine Get         oGetAba[nFolder,2];
            Var         cGetAba[nFolder,2];
            ID          105;
            Picture     "99.99";
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Orientação
   aComboAba[nFolder,2] := aTextoOrientacao
   cComboAba[nFolder,2] := aTextoOrientacao[1]
   
   Redefine Combobox    oComboAba[nFolder,2];
            Var         cComboAba[nFolder,2];
            Items       aComboAba[nFolder,2];
            Bitmaps     aImagemOrientacao;
            ID          106;
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Largura
   aComboAba[nFolder,3] := aRangeLargCodBar
   cComboAba[nFolder,3] := aRangeLargCodBar[1]
   
   Redefine Combobox    oComboAba[nFolder,3];
            Var         cComboAba[nFolder,3];
            Items       aComboAba[nFolder,3];
            ID          107;
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Zoom
   aComboAba[nFolder,4] := aRangeLargCodBar
   cComboAba[nFolder,4] := aRangeLargCodBar[1]
   
   Redefine Combobox    oComboAba[nFolder,4];
            Var         cComboAba[nFolder,4];
            Items       aComboAba[nFolder,4];
            ID          108;
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Altura
   Redefine Get         oGetAba[nFolder,3];
            Var         cGetAba[nFolder,3];
            ID          109;
            Picture     "99.99";
            Of          oFolder:aDialogs[nFolder];
            Update

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure Confirmar()
****************************************************************************
*
* Confirmar gravação dos dados no banco de dados
* Parametros:
* Retorno: Nenhum
*
* Autor: Samir
* 29/7/2010 - 09:34:23
*
****************************************************************************
Local i := 0

   Select CFGARGOX

   While !Rec_Lock(); End

   //-- Geral
   Replace CODIGO    with  cGet[1]
   Replace DESCRICAO with  cGet[2]
   Replace CFGHEAT   with  nSlider
   Replace QTDCOL    with  nRadio
   
   For i := 1 to nRadio
      Replace &("MARGEMCOL"+UT(nRadio)) with cGetCol[i]
   end
   
   ReplaceCampo("ENOME",01)
   ReplaceCampo("EDADO",02)
   ReplaceCampo("ECNPJ",03)
   ReplaceCampo("PNOME",04)
   ReplaceCampo("PMARC",05)
   ReplaceCampo("PPREC",06)
   ReplaceLinha("LIN_1",07)
   ReplaceLinha("LIN_2",08)
   ReplaceLinha("LIN_3",09)
   ReplaceCampo("MSG_1",10)
   ReplaceCampo("MSG_2",11)
   ReplaceBarra("BAR_1",12)

   Unlock
   
   Commit

   Msg("Dados salvos com sucesso")

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure ReplaceCampo(cCampo, nFolder)
****************************************************************************
*
* Efetuar o replace do campo
* Parametros: cCampo, nFolder
* Retorno: Nenhum
*
* Autor: Samir
* 30/7/2010 - 10:20:33
*
****************************************************************************
Local cTipo := "", cSubTipo := ""

   cTipo := cComboAba[nFolder,1]
   cSubTipo := cComboAba[nFolder,2]
   
   //--Fonte Interna
   If cTipo = aTipoFonte[1]
   
      If cSubTipo = aTipoFonteInterna[1]
         cTipo := INTERNA1
      ElseIf cSubTipo = aTipoFonteInterna[2]
         cTipo := INTERNA2
      ElseIf cSubTipo = aTipoFonteInterna[3]
         cTipo := INTERNA3
      ElseIf cSubTipo = aTipoFonteInterna[4]
         cTipo := INTERNA4
      ElseIf cSubTipo = aTipoFonteInterna[5]
         cTipo := INTERNA5
      ElseIf cSubTipo = aTipoFonteInterna[6]
         cTipo := INTERNA6
      ElseIf cSubTipo = aTipoFonteInterna[7]
         cTipo := INTERNA7
      ElseIf cSubTipo = aTipoFonteInterna[8]
         cTipo := INTERNA8
      Else//If cTipo = aTipoFonteInterna[9]
         cTipo := INTERNA9
      End
     
      cSubTipo := INTERNAFIM

   //-- Fonte ASD
   ElseIf cTipo = aTipoFonte[2]

      If cSubTipo = aTipoFonteASD[1]
         cSubTipo := ASD04
      ElseIf cSubTipo = aTipoFonteASD[2]
         cSubTipo := ASD06
      ElseIf cSubTipo = aTipoFonteASD[3]
         cSubTipo := ASD08
      ElseIf cSubTipo = aTipoFonteASD[4]
         cSubTipo := ASD10
      ElseIf cSubTipo = aTipoFonteASD[5]
         cSubTipo := ASD12
      ElseIf cSubTipo = aTipoFonteASD[6]
         cSubTipo := ASD14
      ElseIf cSubTipo = aTipoFonteASD[7]
         cSubTipo := ASD18
      Else//If cSubTipo = aTipoFonteASD[8]
         cSubTipo := ASD24
      End

      cTipo := ASDINI
     
   //-- Fonter Courier New
   Else//If cTipo = aTipoFonte[3]

      If cSubTipo = aTipoFonteCourier[1]
         cSubTipo := ROMAN8
      ElseIf cSubTipo = aTipoFonteCourier[2]
         cSubTipo := ECMA94
      ElseIf cSubTipo = aTipoFonteCourier[3]
         cSubTipo := PCSET
      ElseIf cSubTipo = aTipoFonteCourier[4]
         cSubTipo := PCSETA
      ElseIf cSubTipo = aTipoFonteCourier[5]
         cSubTipo := PCSETB
      Else//If cSubTipo = aTipoFonteCourier[6]
         cSubTipo := LEGAL
      End

      cTipo := COURIERINI
     
   end

   Replace &(cCampo)          with  lCheck[nFolder]
   
   Replace &(cCampo+"TIPO")   with  cTipo
   Replace &(cCampo+"SUB")    with  cSubTipo
   Replace &(cCampo+"_X")     with  cGetAba[nFolder,1]
   Replace &(cCampo+"_Y")     with  cGetAba[nFolder,2]
   Replace &(cCampo+"ORI")    with  Val( cComboAba[nFolder,3] )
   Replace &(cCampo+"LARG")   with  cGetAba[nFolder,3]
   Replace &(cCampo+"ALT")    with  cGetAba[nFolder,4]
   Replace &(cCampo+"MULTH")  with  aMultiplicador[ Val( cComboAba[nFolder,4] ) + 1 ]
   Replace &(cCampo+"MULTV")  with  aMultiplicador[ Val( cComboAba[nFolder,5] ) + 1 ]

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure ObtemInfoCampo(cCampo, nFolder)
****************************************************************************
*
* Efetuar o replace do campo
* Parametros: cCampo, nFolder
* Retorno: Nenhum
*
* Autor: Samir
* 30/7/2010 - 10:20:33
*
****************************************************************************
Local cTipo := "", cSubTipo := ""

   Select CFGARGOX

   cTipo    := UT( &(cCampo+"TIPO") )
   cSubTipo := UT( &(cCampo+"SUB") )

   //--Fonte Interna
   If cSubTipo = INTERNAFIM

      cComboAba[nFolder,1] := aTipoFonte[1]

      If cSubTipo = INTERNA1
         cComboAba[nFolder,2] := aTipoFonteInterna[1]
      ElseIf cSubTipo = INTERNA2
         cComboAba[nFolder,2] := aTipoFonteInterna[2]
      ElseIf cSubTipo = INTERNA3
         cComboAba[nFolder,2] := aTipoFonteInterna[3]
      ElseIf cSubTipo = INTERNA4
         cComboAba[nFolder,2] := aTipoFonteInterna[4]
      ElseIf cSubTipo = INTERNA5
         cComboAba[nFolder,2] := aTipoFonteInterna[5]
      ElseIf cSubTipo = INTERNA6
         cComboAba[nFolder,2] := aTipoFonteInterna[6]
      ElseIf cSubTipo = INTERNA7
         cComboAba[nFolder,2] := aTipoFonteInterna[7]
      ElseIf cSubTipo = INTERNA8
         cComboAba[nFolder,2] := aTipoFonteInterna[8]
      Else//If cSubTipo = INTERNA9
         cComboAba[nFolder,2] := aTipoFonteInterna[9]
      End

   //-- Fonte ASD
   ElseIf cTipo = ASDINI
   
      cComboAba[nFolder,1] := aTipoFonte[2]

      If cSubTipo = ASD04
         cComboAba[nFolder,2] := aTipoFonteASD[1]
      ElseIf cSubTipo = ASD06
         cComboAba[nFolder,2] := aTipoFonteASD[1]
      ElseIf cSubTipo = ASD08
         cComboAba[nFolder,2] := aTipoFonteASD[1]
      ElseIf cSubTipo = ASD10
         cComboAba[nFolder,2] := aTipoFonteASD[1]
      ElseIf cSubTipo = ASD12
         cComboAba[nFolder,2] := aTipoFonteASD[1]
      ElseIf cSubTipo = ASD14
         cComboAba[nFolder,2] := aTipoFonteASD[1]
      ElseIf cSubTipo = ASD18
         cComboAba[nFolder,2] := aTipoFonteASD[1]
      Else//If cSubTipo = ASD24
         cComboAba[nFolder,2] := aTipoFonteASD[1]
      End

   //-- Fonter Courier New
   Else//If cTipo = COURIERINI
   
      cComboAba[nFolder,1] := aTipoFonte[3]

      If cSubTipo = ROMAN8
         cComboAba[nFolder,2] := aTipoFonteCourier[1]
      ElseIf cSubTipo = ECMA94
         cComboAba[nFolder,2] := aTipoFonteCourier[2]
      ElseIf cSubTipo = PCSET
         cComboAba[nFolder,2] := aTipoFonteCourier[3]
      ElseIf cSubTipo = PCSETA
         cComboAba[nFolder,2] := aTipoFonteCourier[4]
      ElseIf cSubTipo = PCSETB
         cComboAba[nFolder,2] := aTipoFonteCourier[5]
      Else//If cSubTipo = LEGAL
         cComboAba[nFolder,2] := aTipoFonteCourier[6]
      End

   end

   lCheck[nFolder]      := &(cCampo)
   
   cGetAba[nFolder,1]   := &(cCampo+"_X")
   cGetAba[nFolder,2]   := &(cCampo+"_Y")
   cComboAba[nFolder,3] := &(cCampo+"ORI")
   cGetAba[nFolder,3]   := &(cCampo+"LARG")
   cGetAba[nFolder,4]   := &(cCampo+"ALT")
   cComboAba[nFolder,4] := UT( aScan( aMultiplicador, &(cCampo+"MULTH") ) -1 )
   cComboAba[nFolder,5] := UT( aScan( aMultiplicador, &(cCampo+"MULTV") ) -1 )

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure ReplaceLinha(cCampo, nFolder)
****************************************************************************
*
* Efetuar o replace da linha
* Parametros: cCampo, nFolder
* Retorno: Nenhum
*
* Autor: Samir
* 30/7/2010 - 11:14:25
*
****************************************************************************

   Replace &(cCampo)          with  lCheck[nFolder]
   
   Replace &(cCampo+"_X")     with  cGetAba[nFolder,1]
   Replace &(cCampo+"_Y")     with  cGetAba[nFolder,2]
   Replace &(cCampo+"LARG")   with  cGetAba[nFolder,3]
   Replace &(cCampo+"ALT")    with  cGetAba[nFolder,4]

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure ObtemInfoLinha(cCampo, nFolder)
****************************************************************************
*
* Efetuar o replace da linha
* Parametros: cCampo, nFolder
* Retorno: Nenhum
*
* Autor: Samir
* 30/7/2010 - 11:14:25
*
****************************************************************************

   Select CFGARGOX

   lCheck[nFolder]      := &(cCampo)
   
   cGetAba[nFolder,1]   := &(cCampo+"_X")
   cGetAba[nFolder,2]   := &(cCampo+"_Y")
   cGetAba[nFolder,3]   := &(cCampo+"LARG")
   cGetAba[nFolder,4]   := &(cCampo+"ALT")

Return Nil

/*------------------------------------------------------------------------*/


****************************************************************************
static procedure ReplaceBarra(cCampo, nFolder)
****************************************************************************
*
* Efetuar o replace da barra
* Parametros: cCampo, nFolder
* Retorno: Nenhum
*
* Autor: Samir
* 30/7/2010 - 11:14:25
*
****************************************************************************
Local cTipo := ""

   cTipo := cComboAba[nFolder,1]
         
   If cTipo = aTipoCodigoBarras[1]
   
      cTipo := EAN13

   else//If cTipo = aTipoCodigoBarras[2]

      cTipo := CODE39

   end

   Replace &(cCampo)          with  lCheck[nFolder]

   Replace &(cCampo+"INT")    with  lCheckAba[nFolder,1]
   Replace &(cCampo+"NUM")    with  lCheckAba[nFolder,2]
   Replace &(cCampo+"TIPO")   with  cTipo
   Replace &(cCampo+"_X")     with  cGetAba[nFolder,1]
   Replace &(cCampo+"_Y")     with  cGetAba[nFolder,2]
   Replace &(cCampo+"ORI")    with  Val( cComboAba[nFolder,2] )
   Replace &(cCampo+"LARG")   with  aMultiplicador[ Val( cComboAba[nFolder,3] ) + 1 ]
   Replace &(cCampo+"ZOOM")   with  aMultiplicador[ Val( cComboAba[nFolder,4] ) + 1 ]
   Replace &(cCampo+"ALT")    with  cGetAba[nFolder,3]

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure ObtemInfoBarra(cCampo, nFolder)
****************************************************************************
*
* Efetuar o replace da barra
* Parametros: cCampo, nFolder
* Retorno: Nenhum
*
* Autor: Samir
* 30/7/2010 - 11:14:25
*
****************************************************************************

   Select CFGARGOX

   cTipo := &(cCampo+"TIPO")

   If cTipo = EAN13

      cComboAba[nFolder,1] := aTipoCodigoBarras[1]

   else//If cTipo = CODE39

      cComboAba[nFolder,1] := aTipoCodigoBarras[2]

   end

   lCheck[nFolder]      := &(cCampo)

   lCheckAba[nFolder,1] := &(cCampo+"INT")
   lCheckAba[nFolder,2] := &(cCampo+"NUM")

   cGetAba[nFolder,1]   := &(cCampo+"_X")
   cGetAba[nFolder,2]   := &(cCampo+"_Y")
   cComboAba[nFolder,2] := &(cCampo+"ORI")
   cComboAba[nFolder,3] := ( aScan( aMultiplicador, &(cCampo+"LARG") ) -1 )
   cComboAba[nFolder,4] := ( aScan( aMultiplicador, &(cCampo+"ZOOM") ) -1 )
   cGetAba[nFolder,3]   := &(cCampo+"ALT")

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static Function Sair()
****************************************************************************
*
* Sair da tela
* Parametros:
* Retorno: Nenhum
*
* Autor: Samir
* 29/7/2010 - 09:34:47
*
****************************************************************************

Return Sn("Deseja realmente sair")

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure ChangeUsaCodInterno(nFolder)
****************************************************************************
*
* Definir método a ser executado ao alterar a opção Usar Código Interno
* na tela de código de barras
* Parametros:
* Retorno: Nenhum
*
* Autor: Samir
* 29/7/2010 - 10:14:06
*
****************************************************************************

   //-- Código interno = CODE39
   If lCheckAba[nFolder,1]

      cComboAba[nFolder,1] := aComboAba[nFolder,1][2]

   //-- Código de barras = EAN13
   else

      cComboAba[nFolder,1] := aComboAba[nFolder,1][1]

   end

   oComboAba[nFolder,1]:Refresh()

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure ChangeTipoFonte(nFolder)
****************************************************************************
*
* Definir método a ser executado ao alterar o tipo da fonte na tela de campos
* Parametros:
* Retorno: Nenhum
*
* Autor: Samir
* 29/7/2010 - 10:14:06
*
****************************************************************************
Local nScan := 0

   //-- INTERNA
   If cComboAba[nFolder,1] = aTipoFonte[1]

      aComboAba[nFolder,2] := aTipoFonteInterna

   //-- ASD
   elseIf cComboAba[nFolder,1] = aTipoFonte[2]

      aComboAba[nFolder,2] := aTipoFonteASD

   //-- COURIER NEW
   else//If cComboAba[nFolder,1] = aTipoFonte[3]

      aComboAba[nFolder,2] := aTipoFonteCourier

   end

   //-- Trocar os itens
   oComboAba[nFolder,2]:SetItems(aComboAba[nFolder,2])

   //-- Trocar a opção atual
   cComboAba[nFolder,2] := aComboAba[nFolder,2][1]

   //-- Atualizar objeto
   oComboAba[nFolder,2]:Refresh()

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure RedefineCheckCampos(nOption)
****************************************************************************
*
* Definir método a ser executado ao alterar um dos checkbox dos campos
* Parametros: nOption
* Retorno: Nenhum
*
* Autor: Samir
* 29/7/2010 - 14:20:19
*
****************************************************************************

   Redefine CheckBox oCheck[nOption];
            Var      lCheck[nOption];
            ID       (100+nOption);
            Of       oDlg;
            Update

   oCheck[nOption]:bChange := {|| ChangeFolder() }

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure ChangeSlider(lIgnoraMsg)
****************************************************************************
*
* Definir método a ser executado ao alterar o slider
* Parametros:
* Retorno: Nenhum
*
* Autor: Samir
* 29/7/2010 - 17:03:15
*
****************************************************************************

   Default lIgnoraMsg := .F.

   If nSlider > 16

      If lIgnoraMsg

         oSlider:cMsg := "("+UT(nSlider)+") ACIMA DO LIMITE RECOMENDADO"

         Return nil
         
      end
     
      If Sn("Cuidado temperatura acima do limite recomendado; corrigir")

         nSlider := 16

         oSlider:Set(nSlider)
         oSlider:Refresh()

      else

         oSlider:cMsg := "("+UT(nSlider)+") ACIMA DO LIMITE RECOMENDADO"

         Return nil

      end

   end

   oSlider:cMsg := "Temperatura atual: "+UT(nSlider)

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure ChangeFolder()
****************************************************************************
*
* Setar os bitmaps indicativos nos folders
* Parametros:
* Retorno: Nenhum
*
* Autor: Samir
* 3/8/2010 - 09:15:04
*
****************************************************************************

local oImageList, i := 0

   DEFINE IMAGELIST oImageList SIZE 16, 16

   For I := 1 to Len(lCheck)
      If lCheck[I]
         oImageList:AddMasked( TBitmap():Define("ON16",,  oDlg ),;
                                                Rgb(255,0,255) )
      Else
         oImageList:AddMasked( TBitmap():Define("OFF16",, oDlg ),;
                                                Rgb(255,0,255) )
      End
   End
   
   oFolder:SetImageList( oImageList )
   
   For i := 1 to Len(lCheck)

      If lCheck[i]
         oFolder:aEnable[i] := lCheck[i]
      end

      oFolder:aDialogs[i]:Refresh()
     
   end
   
   oFolder:Refresh()
   
   oDlg:Refresh()

Return nil
/*------------------------------------------------------------------------*/

 
Email: SamirSSabreu@gmail.com
MSN: SamirAbreu@hotmail.com
Skype: SamirAbreu
xHarbour 1.1.0 + FwXh 8.02
xHarbour 1.2.1 + Fwhh 10.6
User avatar
sambomb
 
Posts: 385
Joined: Mon Oct 13, 2008 11:26 am
Location: Itaocara - RJ - Brasil

Re: Hide oFolder option

Postby sambomb » Tue Aug 03, 2010 7:37 pm

After change some details:
Code: Select all  Expand view

/***************************************************************************
* Sistema .....: Trade (ADS)
* Programa ....: ConfigArgox.prg
* Autor .......: Samir
* Data ........: 28/7/2010 às 17:30:20
* Revisado em .: 28/7/2010 às 17:30:20
***************************************************************************/


#include 'Fivewin.ch'
#include 'Slider.ch'
#include 'Folder.ch'
#include 'Argox.ch'

****************************************************************************
FUNCTION ConfigArgox(oDlgPai)
****************************************************************************

LOCAL aDBF := {}, i := 0, nRec := 0

Private Contador := 0

//-- Dialogo Principal
Private  oDlg, oFolder, oSlider, nSlider := 0
Private  oGet := Array(2), cGet := Array(2), oBtn := Array(2)
Private  oCheck := Array(12), lCheck := aFill(Array(12),.F.)
Private  oRadio, nRadio := 1, oGetCol := Array(6), cGetCol := Array(6)

//-- Abas
Private  oCheckAba := Array(12), lCheckAba := Array(12)
Private  oGetAba := Array(12), cGetAba := Array(12)
Private  oComboAba := Array(12), aComboAba := Array(12), cComboAba := Array(12)

//-- Auxiliar
Private  aTextoOrientacao  := {"DIREITA",  "BAIXO",  "ESQUERDA",  "CIMA"}
Private  aImagemOrientacao := {"DIREITA16","BAIXO16","ESQUERDA16","CIMA16"}
Private  aTipoCodigoBarras := {"EAN13","CODE39"}
Private  aRangeLargCodBar  := GetRange(0,24,,.T.)
Private  aMultiplicador    := GetRange(0,24,,.T.)
Private  aTipoFonte        := {"INTERNA","ASD","COURIER NEW"}
Private  aTipoFonteInterna := {}
Private  aTipoFonteASD     := {"ASD 04","ASD 06","ASD 08","ASD 10",;
                               "ASD 12","ASD 14","ASD 18","ASD 24"}
Private  aTipoFonteCourier := {"ROMAN 8",;
                               "ECMA 94",;
                               "PC SET",;
                               "PC SET A",;
                               "PC SET B",;
                               "LEGAL"}
Private  aMultiplicador := {  "0","1","2","3","4","5","6","7",;
                              "8","9","A","B","C","D","E","F",;
                              "G","H","I","J","K","L","M","N","O" }
                             
                             

   //-- Banco de dados a serem utilizados
   aAdd(aDBF,"CFGARGOX")

   aDbf := OpenDbfs(aDBF)

   if !aDbf[1]
      DbCloseAll()
      Return .F.
   end

   Select CFGARGOX
   
   nRec := RecNo()

   //-- Só pode editar caso tenha registro
   Count to i
   If i <= 0
      Return .F.
   end
   
   DbGoTo(nRec)

   For i := 1 to 9
      aAdd(aTipoFonteInterna, "INTERNA "+UT(i) )
   end

   IniciaVariaveis()

   //-- Dialogo
   Define   Dialog      oDlg;
            Resource    "TDLGCONFIGARGOX";
            Of          oDlgPai;
            Title       "Configuração de etiqueta para Argox"

   oDlg:bValid := {|| Sair() }

   Redefinir()

   ChangeSlider(.T.)
   oSlider:Refresh()

   oDlg:bStart := {|| ChangeFolder() }

   Activate Dialog      oDlg;
            Center

   FreeAndNilDlg(oDlg)

   CloseDbfs(aDBF)

RETURN .T.
/*------------------------------------------------------------------------*/

****************************************************************************
static procedure IniciaVariaveis()
****************************************************************************
*
* Inicializar as variaveis a serem utilizadas na rotina
* Parametros:
* Retorno: Nenhum
*
* Autor: Samir
* 28/7/2010 - 17:59:34
*
****************************************************************************
Local i := 0

   Select CFGARGOX

   cGet[1]  := CODIGO
   cGet[2]  := DESCRICAO
   nSlider  := CFGHEAT

   nRadio   := QTDCOL

   For i := 1 to Len(cGetCol)

      cGetCol[i]  := &("MARGEMCOL"+UT(i))

   end

   //-- Nome da empresa
   IniciaVariaveisCampo(1)
   ObtemInfoCampo("ENOME",1)

   //-- Dados da empresa
   IniciaVariaveisCampo(2)
   ObtemInfoCampo("EDADO",2)

   //-- CNPJ da empresa
   IniciaVariaveisCampo(3)
   ObtemInfoCampo("ECNPJ",3)

   //-- Nome do Produto
   IniciaVariaveisCampo(4)
   ObtemInfoCampo("PNOME",4)

   //-- Marca do Produto
   IniciaVariaveisCampo(5)
   ObtemInfoCampo("PMARC",5)

   //-- Preço do Produto
   IniciaVariaveisCampo(6)
   ObtemInfoCampo("PPREC",6)

   //-- Linha Divisória 1
   IniciaVariaveisLinha(7)
   ObtemInfoLinha("LIN_1",7)

   //-- Linha Divisória 2
   IniciaVariaveisLinha(8)
   ObtemInfoLinha("LIN_2",8)

   //-- Linha Divisória 3
   IniciaVariaveisLinha(9)
   ObtemInfoLinha("LIN_3",9)

   //-- Mensagem 1
   IniciaVariaveisCampo(10)
   ObtemInfoCampo("MSG_1",10)

   //-- Mensagem 2
   IniciaVariaveisCampo(11)
   ObtemInfoCampo("MSG_2",11)

   //-- Barras
   IniciaVariaveisBarra(12)
   ObtemInfoBarra("BAR_1",12)

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static function IniciaVariaveisCampo(nObjeto)
****************************************************************************
*
* Iniciar as Variaveis de um campo
* Parametros: nObjeto
* Retorno:
*
* Autor: Samir
* 29/7/2010 - 14:39:21
*
****************************************************************************

   oGetAba[nObjeto]     := Array(4)
   cGetAba[nObjeto]     := Array(4)
   oComboAba[nObjeto]   := Array(5)
   aComboAba[nObjeto]   := Array(5)
   cComboAba[nObjeto]   := Array(5)
   oCheckAba[nObjeto]   := Array(0)
   lCheckAba[nObjeto]   := Array(0)

Return

/*------------------------------------------------------------------------*/

****************************************************************************
static function IniciaVariaveisLinha(nObjeto)
****************************************************************************
*
* Iniciar as Variaveis de uma linha
* Parametros: nObjeto
* Retorno:
*
* Autor: Samir
* 29/7/2010 - 14:39:21
*
****************************************************************************

   oGetAba[nObjeto]     := Array(4)
   cGetAba[nObjeto]     := Array(4)
   oComboAba[nObjeto]   := Array(0)
   aComboAba[nObjeto]   := Array(0)
   cComboAba[nObjeto]   := Array(0)
   oCheckAba[nObjeto]   := Array(0)
   lCheckAba[nObjeto]   := Array(0)

Return

/*------------------------------------------------------------------------*/

****************************************************************************
static function IniciaVariaveisBarra(nObjeto)
****************************************************************************
*
* Iniciar as Variaveis de um código de barras
* Parametros: nObjeto
* Retorno:
*
* Autor: Samir
* 29/7/2010 - 14:39:21
*
****************************************************************************

   oGetAba[nObjeto]    := Array(3)
   cGetAba[nObjeto]    := Array(3)
   oComboAba[nObjeto]  := Array(4)
   aComboAba[nObjeto]  := Array(4)
   cComboAba[nObjeto]  := Array(4)
   oCheckAba[nObjeto]  := Array(2)
   lCheckAba[nObjeto]  := aFill(Array(2),.F.)

Return

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure Redefinir()
****************************************************************************
*
* Redefinir os controles que serão utilizados no procedimento
* Parametros:
* Retorno: Nenhum
*
* Autor: Samir
* 29/7/2010 - 09:29:39
*
****************************************************************************
Local i := 0

   //-- Tempereratura
   nSlider := 10

   Redefine Slider      oSlider;
            Var         nSlider;
            ID          100;
            Of          oDlg;
            Horizontal;
            Range       1,20;
            Marks       20;
            Exact;
            RIGHT DIRECTION;
            Message     "Temperatua atual: 12";
            On Change   ChangeSlider();
            Update

   //-- Telas dos campos
   Redefine Folder      oFolder;
            ID          200;
            Prompt      "Nome Emp",;
                        "Dados Emp",;
                        "CNPJ Emp",;
                        "Nome Prod",;
                        "Marca Prod",;
                        "Preço Prod",;
                        "Linha 1",;
                        "Linha 2",;
                        "Linha 3",;
                        "Msg 1",;
                        "Msg 2",;
                        "Cód Barras";
            Of          oDlg;
            Dialogs     "TDLGCONFIGARGOXCAMPO",;
                        "TDLGCONFIGARGOXCAMPO",;
                        "TDLGCONFIGARGOXCAMPO",;
                        "TDLGCONFIGARGOXCAMPO",;
                        "TDLGCONFIGARGOXCAMPO",;
                        "TDLGCONFIGARGOXCAMPO",;
                        "TDLGCONFIGARGOXLINHA",;
                        "TDLGCONFIGARGOXLINHA",;
                        "TDLGCONFIGARGOXLINHA",;
                        "TDLGCONFIGARGOXCAMPO",;
                        "TDLGCONFIGARGOXCAMPO",;
                        "TDLGCONFIGARGOXBARRAS";
            Update
           
   oFolder:bWhen := {|| oFolder:nOption > 0 }

   //-- Campos
   For i := 1 to 12

      RedefineCheckCampos(i)

   end

   //-- Código
   Redefine Get         oGet[1];
            Var         cGet[1];
            ID          301;
            Of          oDlg;
            Picture     "99999";
            When        .F.;
            Update

   //-- Descrição
   Redefine Get         oGet[2];
            Var         cGet[2];
            ID          302;
            Picture     "@!";
            Of          oDlg;
            Update

   //-- Colunas
   Redefine Radio       oRadio;
            Var         nRadio;
            ID          501,502,503,504,505,506;
            Of          oDlg;
            Update

   For i := 1 to Len(oGetCol)
      RedefineGetCol(i)
   end

   //-- Confirmar
   Redefine ButtonBmp   oBtn[1];
            ID          201;
            Of          oDlg;
            Action      Confirmar();
            Bitmap      "SALVA24";
            Prompt      "Confirmar  ";
            TEXTRIGHT;
            Update

   //-- Sair
   Redefine ButtonBmp   oBtn[2];
            ID          202;
            Of          oDlg;
            Action      oDlg:End();
            Bitmap      "SAIDA24";
            Prompt      "Sair  ";
            TEXTRIGHT;
            Update

   //-- Nome da Empresa
   RedefineCampo(1)

   //-- Dados da Empresa
   RedefineCampo(2)

   //-- CNPJ da Empresa
   RedefineCampo(3)

   //-- Nome do Produto
   RedefineCampo(4)

   //-- Marca do Produto
   RedefineCampo(5)

   //-- Preço do Produto
   RedefineCampo(6)

   //-- Linha 1
   RedefineLinha(7)

   //-- Linha 2
   RedefineLinha(8)

   //-- Linha 3
   RedefineLinha(9)

   //-- Mensagem 1
   RedefineCampo(10)

   //-- Mensagem 2
   RedefineCampo(11)

   //-- Código de barras
   RedefineBarra(12)

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure RedefineGetCol(nCol)
****************************************************************************
*
* Redefinir Get para armazenar as margens de cada coluna
* Parametros: nCol
* Retorno: Nenhum
*
* Autor: Samir
* 2/8/2010 - 10:40:34
*
****************************************************************************

   Redefine Get      oGetCol[nCol];
            Var      cGetCol[nCol];
            ID       510+nCol;
            of       oDlg;
            When     nRadio >= nCol;
            Picture  "99.99";
            Update

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure RedefineCampo(nFolder)
****************************************************************************
*
* Redefinir a tela no folder de campo
* Parametros:
* Retorno: Nenhum
*
* Autor: Samir
* 29/7/2010 - 09:30:39
*
****************************************************************************

   //-- Tipo
   aComboAba[nFolder,1] := aTipoFonte
   cComboAba[nFolder,1] := aTipoFonte[1]

   Redefine Combobox    oComboAba[nFolder,1];
            Var         cComboAba[nFolder,1];
            Items       aComboAba[nFolder,1];
            ID          101;
            Of          oFolder:aDialogs[nFolder];
            Update

   oComboAba[nFolder,1]:bChange := {|| ChangeTipoFonte(nFolder) }

   //-- Sub-Tipo
   Redefine Combobox    oComboAba[nFolder,2];
            Var         cComboAba[nFolder,2];
            Items       aComboAba[nFolder,2];
            ID          102;
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Método On Change do ComboBox de Tipo já trata o item
   Eval(oComboAba[nFolder,1]:bChange)

   //-- Eixo X
   Redefine Get         oGetAba[nFolder,1];
            Var         cGetAba[nFolder,1];
            ID          103;
            Picture     "99.99";
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Eixo Y
   Redefine Get         oGetAba[nFolder,2];
            Var         cGetAba[nFolder,2];
            ID          104;
            Picture     "99.99";
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Orientação
   aComboAba[nFolder,3] := aTextoOrientacao
   cComboAba[nFolder,3] := aTextoOrientacao[1]

   Redefine Combobox    oComboAba[nFolder,3];
            Var         cComboAba[nFolder,3];
            Items       aComboAba[nFolder,3];
            Bitmaps     aImagemOrientacao;
            ID          105;
            Of          oFolder:aDialogs[nFolder];
            Update

//   oComboAba[nFolder,3]:aBitmaps := aImagemOrientacao
//   oComboAba[nFolder,3]:SetBitmaps(aImagemOrientacao)
//   oComboAba[nFolder,3]:Refresh()

   //-- Largura
   Redefine Get         oGetAba[nFolder,3];
            Var         cGetAba[nFolder,3];
            ID          106;
            Picture     "99.99";
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Altura
   Redefine Get         oGetAba[nFolder,4];
            Var         cGetAba[nFolder,4];
            ID          107;
            Picture     "99.99";
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Multiplicador Horizontal
   aComboAba[nFolder,4] := aMultiplicador
   cComboAba[nFolder,4] := aMultiplicador[1]

   Redefine Combobox    oComboAba[nFolder,4];
            Var         cComboAba[nFolder,4];
            Items       aComboAba[nFolder,4];
            ID          108;
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Multiplicador Vertical
   aComboAba[nFolder,5] := aMultiplicador
   cComboAba[nFolder,5] := aMultiplicador[1]

   Redefine Combobox    oComboAba[nFolder,5];
            Var         cComboAba[nFolder,5];
            Items       aComboAba[nFolder,5];
            ID          109;
            Of          oFolder:aDialogs[nFolder];
            Update

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure RedefineLinha(nFolder)
****************************************************************************
*
* Redefinir a tela no folder de Linha
* Parametros:
* Retorno: Nenhum
*
* Autor: Samir
* 29/7/2010 - 09:30:39
*
****************************************************************************

   //-- Eixo X
   Redefine Get         oGetAba[nFolder,1];
            Var         cGetAba[nFolder,1];
            ID          101;
            Picture     "99.99";
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Eixo Y
   Redefine Get         oGetAba[nFolder,2];
            Var         cGetAba[nFolder,2];
            ID          102;
            Picture     "99.99";
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Largura
   Redefine Get         oGetAba[nFolder,3];
            Var         cGetAba[nFolder,3];
            ID          103;
            Picture     "99.99";
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Altura
   Redefine Get         oGetAba[nFolder,4];
            Var         cGetAba[nFolder,4];
            ID          104;
            Picture     "99.99";
            Of          oFolder:aDialogs[nFolder];
            Update

Return Nil

/*------------------------------------------------------------------------*/
 

Code: Select all  Expand view

****************************************************************************
static procedure RedefineBarra(nFolder)
****************************************************************************
*
* Redefinir a tela no folder de Código de Barras
* Parametros:
* Retorno: Nenhum
*
* Autor: Samir
* 29/7/2010 - 09:30:39
*
****************************************************************************

   //-- Utilizar código interno
   Redefine CheckBox    oCheckAba[nFolder,1];
            Var         lCheckAba[nFolder,1];
            ID          101;
            Of          oFolder:aDialogs[nFolder];
            Update

   oCheckAba[nFolder,1]:bChange := {|| ChangeUsaCodInterno(nFolder) }

   //-- Exibir número
   Redefine CheckBox    oCheckAba[nFolder,2];
            Var         lCheckAba[nFolder,2];
            ID          102;
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Tipo
   aComboAba[nFolder,1] := aTipoCodigoBarras
   cComboAba[nFolder,1] := aTipoCodigoBarras[1]

   Redefine Combobox    oComboAba[nFolder,1];
            Var         cComboAba[nFolder,1];
            Items       aComboAba[nFolder,1];
            ID          103;
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Eixo X
   Redefine Get         oGetAba[nFolder,1];
            Var         cGetAba[nFolder,1];
            ID          104;
            Picture     "99.99";
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Eixo Y
   Redefine Get         oGetAba[nFolder,2];
            Var         cGetAba[nFolder,2];
            ID          105;
            Picture     "99.99";
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Orientação
   aComboAba[nFolder,2] := aTextoOrientacao
   cComboAba[nFolder,2] := aTextoOrientacao[1]

   Redefine Combobox    oComboAba[nFolder,2];
            Var         cComboAba[nFolder,2];
            Items       aComboAba[nFolder,2];
            Bitmaps     aImagemOrientacao;
            ID          106;
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Largura
   aComboAba[nFolder,3] := aRangeLargCodBar
   cComboAba[nFolder,3] := aRangeLargCodBar[1]

   Redefine Combobox    oComboAba[nFolder,3];
            Var         cComboAba[nFolder,3];
            Items       aComboAba[nFolder,3];
            ID          107;
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Zoom
   aComboAba[nFolder,4] := aRangeLargCodBar
   cComboAba[nFolder,4] := aRangeLargCodBar[1]

   Redefine Combobox    oComboAba[nFolder,4];
            Var         cComboAba[nFolder,4];
            Items       aComboAba[nFolder,4];
            ID          108;
            Of          oFolder:aDialogs[nFolder];
            Update

   //-- Altura
   Redefine Get         oGetAba[nFolder,3];
            Var         cGetAba[nFolder,3];
            ID          109;
            Picture     "99.99";
            Of          oFolder:aDialogs[nFolder];
            Update

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure Confirmar()
****************************************************************************
*
* Confirmar gravação dos dados no banco de dados
* Parametros:
* Retorno: Nenhum
*
* Autor: Samir
* 29/7/2010 - 09:34:23
*
****************************************************************************
Local i := 0

   Select CFGARGOX

   While !Rec_Lock(); End

   //-- Geral
   Replace CODIGO    with  cGet[1]
   Replace DESCRICAO with  cGet[2]
   Replace CFGHEAT   with  nSlider
   Replace QTDCOL    with  nRadio

   For i := 1 to nRadio
      Replace &("MARGEMCOL"+UT(nRadio)) with cGetCol[i]
   end

   ReplaceCampo("ENOME",01)
   ReplaceCampo("EDADO",02)
   ReplaceCampo("ECNPJ",03)
   ReplaceCampo("PNOME",04)
   ReplaceCampo("PMARC",05)
   ReplaceCampo("PPREC",06)
   ReplaceLinha("LIN_1",07)
   ReplaceLinha("LIN_2",08)
   ReplaceLinha("LIN_3",09)
   ReplaceCampo("MSG_1",10)
   ReplaceCampo("MSG_2",11)
   ReplaceBarra("BAR_1",12)

   Unlock

   Commit

   Msg("Dados salvos com sucesso")

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure ReplaceCampo(cCampoDBF, nFolder)
****************************************************************************
*
* Efetuar o replace do campo
* Parametros: cCampoDBF, nFolder
* Retorno: Nenhum
*
* Autor: Samir
* 30/7/2010 - 10:20:33
*
****************************************************************************
Local cTipo := "", cSubTipo := ""

   cTipo := cComboAba[nFolder,1]
   cSubTipo := cComboAba[nFolder,2]

   //--Fonte Interna
   If cTipo = aTipoFonte[1]

      If cSubTipo = aTipoFonteInterna[1]
         cTipo := INTERNA1
      ElseIf cSubTipo = aTipoFonteInterna[2]
         cTipo := INTERNA2
      ElseIf cSubTipo = aTipoFonteInterna[3]
         cTipo := INTERNA3
      ElseIf cSubTipo = aTipoFonteInterna[4]
         cTipo := INTERNA4
      ElseIf cSubTipo = aTipoFonteInterna[5]
         cTipo := INTERNA5
      ElseIf cSubTipo = aTipoFonteInterna[6]
         cTipo := INTERNA6
      ElseIf cSubTipo = aTipoFonteInterna[7]
         cTipo := INTERNA7
      ElseIf cSubTipo = aTipoFonteInterna[8]
         cTipo := INTERNA8
      Else//If cTipo = aTipoFonteInterna[9]
         cTipo := INTERNA9
      End

      cSubTipo := INTERNAFIM

   //-- Fonte ASD
   ElseIf cTipo = aTipoFonte[2]

      If cSubTipo = aTipoFonteASD[1]
         cSubTipo := ASD04
      ElseIf cSubTipo = aTipoFonteASD[2]
         cSubTipo := ASD06
      ElseIf cSubTipo = aTipoFonteASD[3]
         cSubTipo := ASD08
      ElseIf cSubTipo = aTipoFonteASD[4]
         cSubTipo := ASD10
      ElseIf cSubTipo = aTipoFonteASD[5]
         cSubTipo := ASD12
      ElseIf cSubTipo = aTipoFonteASD[6]
         cSubTipo := ASD14
      ElseIf cSubTipo = aTipoFonteASD[7]
         cSubTipo := ASD18
      Else//If cSubTipo = aTipoFonteASD[8]
         cSubTipo := ASD24
      End

      cTipo := ASDINI

   //-- Fonter Courier New
   Else//If cTipo = aTipoFonte[3]

      If cSubTipo = aTipoFonteCourier[1]
         cSubTipo := ROMAN8
      ElseIf cSubTipo = aTipoFonteCourier[2]
         cSubTipo := ECMA94
      ElseIf cSubTipo = aTipoFonteCourier[3]
         cSubTipo := PCSET
      ElseIf cSubTipo = aTipoFonteCourier[4]
         cSubTipo := PCSETA
      ElseIf cSubTipo = aTipoFonteCourier[5]
         cSubTipo := PCSETB
      Else//If cSubTipo = aTipoFonteCourier[6]
         cSubTipo := LEGAL
      End

      cTipo := COURIERINI

   end

   Replace &(cCampoDBF)          with  lCheck[nFolder]

   Replace &(cCampoDBF+"TIPO")   with  cTipo
   Replace &(cCampoDBF+"SUB")    with  cSubTipo
   Replace &(cCampoDBF+"_X")     with  cGetAba[nFolder,1]
   Replace &(cCampoDBF+"_Y")     with  cGetAba[nFolder,2]
   Replace &(cCampoDBF+"ORI")    with  Val( cComboAba[nFolder,3] )
   Replace &(cCampoDBF+"LARG")   with  cGetAba[nFolder,3]
   Replace &(cCampoDBF+"ALT")    with  cGetAba[nFolder,4]
   Replace &(cCampoDBF+"MULTH")  with  aMultiplicador[ Val( cComboAba[nFolder,4] ) + 1 ]
   Replace &(cCampoDBF+"MULTV")  with  aMultiplicador[ Val( cComboAba[nFolder,5] ) + 1 ]

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure ObtemInfoCampo(cCampoDBF, nFolder)
****************************************************************************
*
* Efetuar o replace do campo
* Parametros: cCampoDBF, nFolder
* Retorno: Nenhum
*
* Autor: Samir
* 30/7/2010 - 10:20:33
*
****************************************************************************
Local cTipo := "", cSubTipo := ""

   Select CFGARGOX

   cTipo    := UT( &(cCampoDBF+"TIPO") )
   cSubTipo := UT( &(cCampoDBF+"SUB") )

   //--Fonte Interna
   If cSubTipo = INTERNAFIM

      cComboAba[nFolder,1] := aTipoFonte[1]

      If cSubTipo = INTERNA1
         cComboAba[nFolder,2] := aTipoFonteInterna[1]
      ElseIf cSubTipo = INTERNA2
         cComboAba[nFolder,2] := aTipoFonteInterna[2]
      ElseIf cSubTipo = INTERNA3
         cComboAba[nFolder,2] := aTipoFonteInterna[3]
      ElseIf cSubTipo = INTERNA4
         cComboAba[nFolder,2] := aTipoFonteInterna[4]
      ElseIf cSubTipo = INTERNA5
         cComboAba[nFolder,2] := aTipoFonteInterna[5]
      ElseIf cSubTipo = INTERNA6
         cComboAba[nFolder,2] := aTipoFonteInterna[6]
      ElseIf cSubTipo = INTERNA7
         cComboAba[nFolder,2] := aTipoFonteInterna[7]
      ElseIf cSubTipo = INTERNA8
         cComboAba[nFolder,2] := aTipoFonteInterna[8]
      Else//If cSubTipo = INTERNA9
         cComboAba[nFolder,2] := aTipoFonteInterna[9]
      End

   //-- Fonte ASD
   ElseIf cTipo = ASDINI

      cComboAba[nFolder,1] := aTipoFonte[2]

      If cSubTipo = ASD04
         cComboAba[nFolder,2] := aTipoFonteASD[1]
      ElseIf cSubTipo = ASD06
         cComboAba[nFolder,2] := aTipoFonteASD[1]
      ElseIf cSubTipo = ASD08
         cComboAba[nFolder,2] := aTipoFonteASD[1]
      ElseIf cSubTipo = ASD10
         cComboAba[nFolder,2] := aTipoFonteASD[1]
      ElseIf cSubTipo = ASD12
         cComboAba[nFolder,2] := aTipoFonteASD[1]
      ElseIf cSubTipo = ASD14
         cComboAba[nFolder,2] := aTipoFonteASD[1]
      ElseIf cSubTipo = ASD18
         cComboAba[nFolder,2] := aTipoFonteASD[1]
      Else//If cSubTipo = ASD24
         cComboAba[nFolder,2] := aTipoFonteASD[1]
      End

   //-- Fonter Courier New
   Else//If cTipo = COURIERINI

      cComboAba[nFolder,1] := aTipoFonte[3]

      If cSubTipo = ROMAN8
         cComboAba[nFolder,2] := aTipoFonteCourier[1]
      ElseIf cSubTipo = ECMA94
         cComboAba[nFolder,2] := aTipoFonteCourier[2]
      ElseIf cSubTipo = PCSET
         cComboAba[nFolder,2] := aTipoFonteCourier[3]
      ElseIf cSubTipo = PCSETA
         cComboAba[nFolder,2] := aTipoFonteCourier[4]
      ElseIf cSubTipo = PCSETB
         cComboAba[nFolder,2] := aTipoFonteCourier[5]
      Else//If cSubTipo = LEGAL
         cComboAba[nFolder,2] := aTipoFonteCourier[6]
      End

   end

   lCheck[nFolder]      := &(cCampoDBF)

   cGetAba[nFolder,1]   := &(cCampoDBF+"_X")
   cGetAba[nFolder,2]   := &(cCampoDBF+"_Y")
   cComboAba[nFolder,3] := &(cCampoDBF+"ORI")
   cGetAba[nFolder,3]   := &(cCampoDBF+"LARG")
   cGetAba[nFolder,4]   := &(cCampoDBF+"ALT")
   cComboAba[nFolder,4] := UT( aScan( aMultiplicador, &(cCampoDBF+"MULTH") ) -1 )
   cComboAba[nFolder,5] := UT( aScan( aMultiplicador, &(cCampoDBF+"MULTV") ) -1 )

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure ReplaceLinha(cCampoDBF, nFolder)
****************************************************************************
*
* Efetuar o replace da linha
* Parametros: cCampoDBF, nFolder
* Retorno: Nenhum
*
* Autor: Samir
* 30/7/2010 - 11:14:25
*
****************************************************************************

   Replace &(cCampoDBF)          with  lCheck[nFolder]

   Replace &(cCampoDBF+"_X")     with  cGetAba[nFolder,1]
   Replace &(cCampoDBF+"_Y")     with  cGetAba[nFolder,2]
   Replace &(cCampoDBF+"LARG")   with  cGetAba[nFolder,3]
   Replace &(cCampoDBF+"ALT")    with  cGetAba[nFolder,4]

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure ObtemInfoLinha(cCampoDBF, nFolder)
****************************************************************************
*
* Efetuar o replace da linha
* Parametros: cCampoDBF, nFolder
* Retorno: Nenhum
*
* Autor: Samir
* 30/7/2010 - 11:14:25
*
****************************************************************************

   Select CFGARGOX

   lCheck[nFolder]      := &(cCampoDBF)

   cGetAba[nFolder,1]   := &(cCampoDBF+"_X")
   cGetAba[nFolder,2]   := &(cCampoDBF+"_Y")
   cGetAba[nFolder,3]   := &(cCampoDBF+"LARG")
   cGetAba[nFolder,4]   := &(cCampoDBF+"ALT")

Return Nil

/*------------------------------------------------------------------------*/


****************************************************************************
static procedure ReplaceBarra(cCampoDBF, nFolder)
****************************************************************************
*
* Efetuar o replace da barra
* Parametros: cCampoDBF, nFolder
* Retorno: Nenhum
*
* Autor: Samir
* 30/7/2010 - 11:14:25
*
****************************************************************************
Local cTipo := ""

   cTipo := cComboAba[nFolder,1]

   If cTipo = aTipoCodigoBarras[1]

      cTipo := EAN13

   else//If cTipo = aTipoCodigoBarras[2]

      cTipo := CODE39

   end

   Replace &(cCampoDBF)          with  lCheck[nFolder]

   Replace &(cCampoDBF+"INT")    with  lCheckAba[nFolder,1]
   Replace &(cCampoDBF+"NUM")    with  lCheckAba[nFolder,2]
   Replace &(cCampoDBF+"TIPO")   with  cTipo
   Replace &(cCampoDBF+"_X")     with  cGetAba[nFolder,1]
   Replace &(cCampoDBF+"_Y")     with  cGetAba[nFolder,2]
   Replace &(cCampoDBF+"ORI")    with  Val( cComboAba[nFolder,2] )
   Replace &(cCampoDBF+"LARG")   with  aMultiplicador[ Val( cComboAba[nFolder,3] ) + 1 ]
   Replace &(cCampoDBF+"ZOOM")   with  aMultiplicador[ Val( cComboAba[nFolder,4] ) + 1 ]
   Replace &(cCampoDBF+"ALT")    with  cGetAba[nFolder,3]

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure ObtemInfoBarra(cCampoDBF, nFolder)
****************************************************************************
*
* Efetuar o replace da barra
* Parametros: cCampoDBF, nFolder
* Retorno: Nenhum
*
* Autor: Samir
* 30/7/2010 - 11:14:25
*
****************************************************************************

   Select CFGARGOX

   cTipo := &(cCampoDBF+"TIPO")

   If cTipo = EAN13

      cComboAba[nFolder,1] := aTipoCodigoBarras[1]

   else//If cTipo = CODE39

      cComboAba[nFolder,1] := aTipoCodigoBarras[2]

   end

   lCheck[nFolder]      := &(cCampoDBF)

   lCheckAba[nFolder,1] := &(cCampoDBF+"INT")
   lCheckAba[nFolder,2] := &(cCampoDBF+"NUM")

   cGetAba[nFolder,1]   := &(cCampoDBF+"_X")
   cGetAba[nFolder,2]   := &(cCampoDBF+"_Y")
   cComboAba[nFolder,2] := &(cCampoDBF+"ORI")
   cComboAba[nFolder,3] := ( aScan( aMultiplicador, &(cCampoDBF+"LARG") ) -1 )
   cComboAba[nFolder,4] := ( aScan( aMultiplicador, &(cCampoDBF+"ZOOM") ) -1 )
   cGetAba[nFolder,3]   := &(cCampoDBF+"ALT")

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static Function Sair()
****************************************************************************
*
* Sair da tela
* Parametros:
* Retorno: Nenhum
*
* Autor: Samir
* 29/7/2010 - 09:34:47
*
****************************************************************************

Return Sn("Deseja realmente sair")

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure ChangeUsaCodInterno(nFolder)
****************************************************************************
*
* Definir método a ser executado ao alterar a opção Usar Código Interno
* na tela de código de barras
* Parametros:
* Retorno: Nenhum
*
* Autor: Samir
* 29/7/2010 - 10:14:06
*
****************************************************************************

   //-- Código interno = CODE39
   If lCheckAba[nFolder,1]

      cComboAba[nFolder,1] := aComboAba[nFolder,1][2]

   //-- Código de barras = EAN13
   else

      cComboAba[nFolder,1] := aComboAba[nFolder,1][1]

   end

   oComboAba[nFolder,1]:Refresh()

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure ChangeTipoFonte(nFolder)
****************************************************************************
*
* Definir método a ser executado ao alterar o tipo da fonte na tela de campos
* Parametros:
* Retorno: Nenhum
*
* Autor: Samir
* 29/7/2010 - 10:14:06
*
****************************************************************************
Local nScan := 0

   //-- INTERNA
   If cComboAba[nFolder,1] = aTipoFonte[1]

      aComboAba[nFolder,2] := aTipoFonteInterna

   //-- ASD
   elseIf cComboAba[nFolder,1] = aTipoFonte[2]

      aComboAba[nFolder,2] := aTipoFonteASD

   //-- COURIER NEW
   else//If cComboAba[nFolder,1] = aTipoFonte[3]

      aComboAba[nFolder,2] := aTipoFonteCourier

   end

   //-- Trocar os itens
   oComboAba[nFolder,2]:SetItems(aComboAba[nFolder,2])

   //-- Trocar a opção atual
   cComboAba[nFolder,2] := aComboAba[nFolder,2][1]

   //-- Atualizar objeto
   oComboAba[nFolder,2]:Refresh()

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure RedefineCheckCampos(nOption)
****************************************************************************
*
* Definir método a ser executado ao alterar um dos checkbox dos campos
* Parametros: nOption
* Retorno: Nenhum
*
* Autor: Samir
* 29/7/2010 - 14:20:19
*
****************************************************************************

   Redefine CheckBox oCheck[nOption];
            Var      lCheck[nOption];
            ID       (100+nOption);
            Of       oDlg;
            Update

   oCheck[nOption]:bChange := {|| ChangeFolder() }

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure ChangeSlider(lIgnoraMsg)
****************************************************************************
*
* Definir método a ser executado ao alterar o slider
* Parametros:
* Retorno: Nenhum
*
* Autor: Samir
* 29/7/2010 - 17:03:15
*
****************************************************************************

   Default lIgnoraMsg := .F.

   If nSlider > 16

      If lIgnoraMsg

         oSlider:cMsg := "("+UT(nSlider)+") ACIMA DO LIMITE RECOMENDADO"

         Return nil

      end

      If Sn("Cuidado temperatura acima do limite recomendado; corrigir")

         nSlider := 16

         oSlider:Set(nSlider)
         oSlider:Refresh()

      else

         oSlider:cMsg := "("+UT(nSlider)+") ACIMA DO LIMITE RECOMENDADO"

         Return nil

      end

   end

   oSlider:cMsg := "Temperatura atual: "+UT(nSlider)

Return Nil

/*------------------------------------------------------------------------*/

****************************************************************************
static procedure ChangeFolder()
****************************************************************************
*
* Setar os bitmaps indicativos nos folders
* Parametros:
* Retorno: Nenhum
*
* Autor: Samir
* 3/8/2010 - 09:15:04
*
****************************************************************************

local oImageList, i := 0, nOption := 0

   If ValType(oImageList) = "O"
      oImageList:End()
   end

   DEFINE IMAGELIST oImageList SIZE 16, 16
   
   nOption := oFolder:nOption

   For I := 1 to Len(lCheck)

      If lCheck[I]

         oImageList:AddMasked( TBitmap():Define("ON16",,  oDlg ),;
                                                Rgb(255,0,255) )

      Else

         oImageList:AddMasked( TBitmap():Define("OFF16",, oDlg ),;
                                                Rgb(255,0,255) )

      End
     
   End

   oFolder:SetImageList( oImageList )

   pause(0.01)

   For i := 1 to Len(lCheck)

      oFolder:aEnable[i] := lCheck[i]

      oFolder:aDialogs[i]:Update()
      oFolder:aDialogs[i]:Refresh()

      SysRefresh()

   end
   
   If !oFolder:aEnable[nOption]
   
      nOption := 0

      For i := 1 to Len(lCheck)

         If oFolder:aEnable[i]

            nOption := i
            exit

         end
         
      end

   end

   If nOption > 0
      oFolder:SetOption(nOption)
   else
      oFolder:SetOption(12)
      oCheck[12]:SetFocus()
   end


Return nil
/*------------------------------------------------------------------------*/

 
Last edited by sambomb on Wed Aug 04, 2010 12:13 pm, edited 1 time in total.
Email: SamirSSabreu@gmail.com
MSN: SamirAbreu@hotmail.com
Skype: SamirAbreu
xHarbour 1.1.0 + FwXh 8.02
xHarbour 1.2.1 + Fwhh 10.6
User avatar
sambomb
 
Posts: 385
Joined: Mon Oct 13, 2008 11:26 am
Location: Itaocara - RJ - Brasil

Re: Hide oFolder option

Postby Horizon » Wed Aug 04, 2010 6:01 am

Hi,

Can you please post your final prg screenshoot?

Thanks,
Regards,

Hakan ONEMLI

Harbour & MSVC 2022 & FWH 23.04
Horizon
 
Posts: 1297
Joined: Fri May 23, 2008 1:33 pm

Re: Hide oFolder option

Postby sambomb » Wed Aug 04, 2010 12:11 pm

Image
Email: SamirSSabreu@gmail.com
MSN: SamirAbreu@hotmail.com
Skype: SamirAbreu
xHarbour 1.1.0 + FwXh 8.02
xHarbour 1.2.1 + Fwhh 10.6
User avatar
sambomb
 
Posts: 385
Joined: Mon Oct 13, 2008 11:26 am
Location: Itaocara - RJ - Brasil

Re: Hide oFolder option

Postby ukoenig » Wed Aug 04, 2010 3:59 pm

Maybe You still want to show no Text for disabled Folder-Pages ?
( Better visible, to select enabled Pages )

Your Screenshot would look like :
Image

oFld:aEnable = { lCheck[1], lCheck[2], lCheck[3], lCheck[4], lCheck[5], lCheck[6], ;
lCheck[7], lCheck[8], lCheck[9], lCheck[10], lCheck[11], lCheck[12] }

FOR I = 1 TO 12
IF lCheck[I] = .T.
oImageList:AddMasked( TBitmap():Define( "Colors",, oDlg ), nRGB( 192, 192, 192 ) )
ELSE
oImageList:AddMasked( TBitmap():Define( "Disable",, oDlg ), nRGB( 192, 192, 192 ) )
oFld:SetItemText( I, "" )
ENDIF
NEXT
ENDIF
oFld:SetImageList( oImageList )

Best Regards
Uwe :lol:
Since 1995 ( the first release of FW 1.9 )
i work with FW.
If you have any questions about special functions, maybe i can help.
User avatar
ukoenig
 
Posts: 4043
Joined: Wed Dec 19, 2007 6:40 pm
Location: Germany


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 90 guests