Color de fondo y texto a los campos TEXTO (MEMO)

Post Reply
User avatar
Armando
Posts: 3271
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Been thanked: 2 times
Contact:

Color de fondo y texto a los campos TEXTO (MEMO)

Post by Armando »

Foreros:

Con el siguiente código en el MAIN, se define el color de los GET al tomar el foco y al perderlo

Code: Select all | Expand

   TGet():lClrFocus := (.T.)
   TGet():nClrFocus := nRGB( 213, 219, 255 )
Pero para los campos TEXT (MEMO) no funciona, hay forma?

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
karinha
Posts: 7940
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Re: Color de fondo y texto a los campos TEXTO (MEMO)

Post by karinha »

Code: Select all | Expand

// C:\FWH..\SAMPLES\CORGET2.PRG
// http://forums.fivetechsupport.com/viewtopic.php?f=3&t=42551&sid=3bfb222ce4809ed3dd5509ea234429ea

#include "fivewin.ch"

#Define CLR_SOFTYELLOW nRGB( 255, 251, 225 ) //-> Amerelo Soft.

FUNCTION Main()

   LOCAL aColors := { CLR_WHITE, CLR_YELLOW, CLR_HGREEN }
   LOCAL oDlg, oFont, oGet, oMemo, n, oBtnCal, oBtnCan
   LOCAL nColor   := 1
   LOCAL CText    := "This is some" + CRLF + "text"

   SetGetColorFocus()

   tGet():lDisColors  := .F.
   tGet():nClrTextDis := CLR_HBLUE
   tGet():nClrPaneDis := CLR_WHITE

   DEFINE FONT oFont  NAME "Ms Sans Serif"  SIZE 00, -18 BOLD

   DEFINE DIALOG oDlg SIZE 300,350 PIXEL TRUEPIXEL FONT oFont ;
      COLORS CLR_BLACK, CLR_WHITE TRANSPARENT

   oDlg:lHelpIcon := .F.

   /*
   @ 20,20 SAY "Color Code : " GET nColor SIZE 200,24 PIXEL PICTURE "9" ;
      OF oDlg VALID ( ;
            n  := aColors[ ( ( nColor - 1 ) % 3 ) + 1 ], ;
            oMemo:SetColor( CLR_BLACK, n ), ;
            .t. )
   */

   @ 20, 20 SAY "Cambiar Color: " SIZE 200,24 PIXEL OF oDlg UPDATE TRANSPARENT

   @ 60, 20 GET oMemo VAR cText MEMO SIZE 260,220 PIXEL OF oDlg  /* ;
      COLORS CLR_BLACK, aColors[ nColor ] */

   @ 300, 100  BTNBMP oBtnCal FILENAME "..\bitmaps\16x16\floppy.bmp" ;
       FLAT SIZE 20, 14 PIXEL OF oDlg NOBORDER                     ;
       ACTION SET_COLOR( oMemo, nColor )

   @ 300, 150  BTNBMP oBtnCan FILENAME "..\bitmaps\16x16\Exit.bmp" ;
       FLAT SIZE 20, 14 PIXEL OF oDlg NOBORDER                     ;
       ACTION( oDlg:End() )

   oBtnCan:lCancel := .T.

   ACTIVATE DIALOG oDlg CENTERED ON INIT oMemo:SetFocus()

   oFont:End()

RETURN NIL

FUNCTION SET_COLOR( oMemo, nColor )

   LOCAL oIni, oBrush, oBmp
   LOCAL nTipo, cStyle, cFile, cLogo, nRow, nCol, lSelect

   nColor := ChooseColor()

   oMemo:SetColor( nColor, CLR_WHITE )
   oMemo:Refresh()

RETURN( nColor )

// FIN / END
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
Posts: 7940
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Re: Color de fondo y texto a los campos TEXTO (MEMO)

Post by karinha »

Code: Select all | Expand

// C:\FWH..\SAMPLES\CORMEMO.PRG

***************************************************
* Multi SAY/GET testing in 32 bit Xbase++ mode....*
* Jon Berg 10-8-99                                *
***************************************************
#include "FiveWin.ch"
*********************

#Define CLR_ORANGE     nRGB( 255, 165, 000 ) //-> Orange - Laranja

static oWnd, lCambiaColor := .T.

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

function Main()

   DEFINE WINDOW oWnd FROM 1, 1 TO 30, 70 ;
      TITLE "Testing Says/Gets and Get Pictures and Foreground/Background Colors" ;
      MENU BuildMenu()

   SET MESSAGE OF oWnd TO "FiveWin++"

   ACTIVATE WINDOW oWnd MAXIMIZED

return nil

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

function BuildMenu()

   local oMenu

   MENU oMenu
      MENUITEM "&Say/Get Testing"
      MENU
         MENUITEM "&Build Multi GET Dialog1 with PICTs "  ACTION (BldDlg1())
         MENUITEM "Item &2"  ACTION MsgInfo("Test Menu Item2")
         MENUITEM "Item &3"  ACTION MsgInfo("Test Menu Item3")
         SEPARATOR
         MENUITEM "Exit" ACTION oWnd:End()
      ENDMENU
  ENDMENU
return oMenu

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

function BldDlg1()

   local oDlg, oArial, oFont, oMemo, oGroup
   local cName1    := "ONE          "
   local cName2    := "two        "
   local cName3    := "3        "
   local cName4    := "4       "
   local cName5    := "5        "
   local cName6    := "54321        "
   local cName7    := "567890                  "
   local lRESERVE  := .F.
   local cPROV_TYPE:= SPACE(20)
   local cPHONE    := SPACE(18)
   local dCERT_DATE:= CTOD('  /  /  ')
   local nPROC_DAYS:= 9876
   local cTEXT     := "Use Tab or Shift Tab to move to next get."+SPACE(256)
   LOCAL aGet      := ARRAY(5)

   SET EPOCH TO 1920
   SET CENTURY ON

   DEFINE DIALOG oDlg FROM 1, 1 TO 600, 800 ;
          TITLE "Hello Gets!"               ;
          STYLE  nOr(WS_POPUP,              ;
                     WS_VISIBLE,            ;
                     WS_CAPTION,            ;
                     WS_THICKFRAME,         ;
                     WS_SYSMENU,            ;
                     WS_MINIMIZEBOX,        ;
                     WS_MAXIMIZEBOX)        ;
          PIXEL OF oWnd                            && Defined by Pixels


   DEFINE FONT oFont NAME "FIXEDSYS" SIZE 10, -10    && Use a Nonproportional font
   SET FONT OF oDlg TO oFont                         && so characters line up in Says

   @  00, 03 SAY "Showing how to do SAY/GETs from source code.  No DLLs or RC files. " OF oDlg COLORS CLR_BLACK,CLR_YELLOW BORDER SIZE 300,10
   @  01, 03 SAY "Navigation Keys to traverse gets are Ret, Arrows, Tab and Shift Tab....ESC to close this Dialog" OF oDlg COLORS CLR_WHITE,CLR_BLUE   BORDER SIZE 380,10
   @  02, 03 SAY "Testing Say with different colors and a border. "  OF oDlg COLORS CLR_HRED   ,CLR_WHITE  BORDER SIZE 200,10
   //@  03, 03 SAY "Testing Say with different colors and no border."  OF oDlg COLORS CLR_HBLUE  ,CLR_WHITE         SIZE 200,10

   // COLOR IN GROUP BOX.

   @ 3.95, 2.96 SAY "" OF oDlg COLORS CLR_BLACK, CLR_YELLOW BORDER ;
      SIZE 192, 45 UPDATE

   @ 04, 2.50 GROUP oGroup TO 7.50, 30  LABEL "GROUP BOX COLOR" OF oDlg ;
      TRANSPARENT COLOR CLR_ORANGE, CLR_WHITE

   // @ 163, 2 GROUP oGroup TO 192, 200 LABEL "RECOMENDACIONES" OF oDlg  pixel TRANSPARENT

   @  05, 19 SAY "Field length" OF oDlg SIZE 65,10  && Use normal colors
   @  06, 19 SAY "      |     " OF oDlg SIZE 65,10

   @  07, 03 SAY "1  Chr No PICT                       13" OF oDlg COLORS CLR_BLACK ,CLR_HCYAN BORDER SIZE 195,10
   @  08, 03 SAY "2  Chr No PICT                       11" OF oDlg COLORS CLR_BLUE  ,CLR_HCYAN BORDER SIZE 195,10
   @  09, 03 SAY "3  Chr No PICT                        9" OF oDlg COLORS CLR_RED   ,CLR_HCYAN BORDER SIZE 195,10
   @  10, 03 SAY "4  Chr    PICT 'NNNNNNNN'             8" OF oDlg COLORS CLR_HRED  ,CLR_HCYAN BORDER SIZE 195,10
   @  11, 03 SAY "5  Chr    PICT 'AAAAAAAAA'            9" OF oDlg COLORS CLR_HGREEN,CLR_HCYAN BORDER SIZE 195,10
   @  12, 03 SAY "6  Chr    PICT '9999999999'          13" OF oDlg COLORS CLR_BLACK ,CLR_HCYAN BORDER SIZE 195,10
   @  13, 03 SAY "7  Chr    PICT '@K@!@S10'            24" OF oDlg COLORS CLR_BLACK ,CLR_HCYAN BORDER SIZE 195,10
   @  14, 03 SAY "   Logic 'T/F or Y/N'                 1" OF oDlg COLORS CLR_BLACK ,CLR_HCYAN BORDER SIZE 195,10
   @  15, 03 SAY "   Chr    PICT '@S5'and !EMPTY()     20" OF oDlg COLORS CLR_BLACK ,CLR_HCYAN BORDER SIZE 195,10
   @  16, 03 SAY "   Chr    PICT '(999)A99-9!99-9999'  18" OF oDlg COLORS CLR_BLACK ,CLR_HCYAN BORDER SIZE 195,10
   @  17, 03 SAY "   Date   !> comp date or empty       8" OF oDlg COLORS CLR_BLACK ,CLR_HCYAN BORDER SIZE 195,10
   @  16.8,   35 SAY "Set Century is on."                  OF oDlg SIZE 195,10
   @  17.3,   35 SAY "Set Epoch is set to 1919."           OF oDlg SIZE 195,10
   @  18, 03 SAY "   Num    PICT '99' !>10             10" OF oDlg COLORS CLR_BLACK ,CLR_HCYAN BORDER SIZE 195,10
   @  19, 03 SAY "   Memo No PICT                     256" OF oDlg COLORS CLR_BLACK ,CLR_HCYAN BORDER SIZE 195,10

   @  07, 28 GET cName1     OF oDlg COLORS "B/BG" SIZE 20,10
   @  08, 28 GET cName2     OF oDlg COLORS CLR_BLACK,CLR_HCYAN
   @  09, 28 GET cName3     OF oDlg COLORS CLR_BLACK,CLR_YELLOW
   @  10, 28 GET cName4     OF oDlg PICTURE "NNNNNNNN"
   @  11, 28 GET cName5     OF oDlg PICTURE "AAAAAAAAA"
   @  12, 28 GET cName6     OF oDlg PICTURE "9999999999"

   @  13, 28 GET cName7     OF oDlg PICTURE "@K@!@S10"
   @  14, 28 GET lRESERVE   OF oDlg PICTURE  "Y"  MESSAGE "Please type in a Y or N "
   @  15, 28 GET cPROV_TYPE OF oDlg PICTURE  "@S5" VALID IF(EMPTY(cPROV_TYPE),(MSGINFO("You have to enter at least 1 Character"),.F.),.T.)
   @  16, 28 GET cPHONE     OF oDlg PICTURE  "(999)A99-9!99-9999"

   @  17, 28 GET dCERT_DATE OF oDlg SIZE 50,10 VALID (IF(dCERT_DATE>DATE(),(MSGINFO("Certification Date must not be greater than Computer Date or blank!"),.F.),.T.)) MESSAGE "Please type in the Certification Date"

   @  18, 28 GET nPROC_DAYS OF oDlg PICTURE "99" VALID (IF(nPROC_DAYS>10,(MSGINFO("Processing Days Must be less that 11 or Empty"),.F.),.T.)) MESSAGE "Please type in the Number of days it took to process"

   //@  19, 28 GET cText MEMO  OF oDlg SIZE 140,46
   @  19, 28 GET aGet[1] VAR cText MEMO  OF oDlg SIZE 140,46 ;
             ON CHANGE( SET_COLOR( aGet ) )

   aGet[1]:bGotFocus  := {|| aGet[1]:SetColor(RGB(0,0,0),RGB(197,205,255)),aGet[1]:Refresh()}
   aGet[1]:bLostFocus := {|| aGet[1]:SetColor(RGB(0,0,0),RGB(255,255,255)),aGet[1]:Refresh()}

   ACTIVATE DIALOG oDlg CENTERED ;
      ON LEFT CLICK nMsgBox( "Incredible!" )

   lCambiaColor := .T.
   
return nil

FUNCTION SET_COLOR( aGet )  // mas o menos esto, cambia a tu gosto.

  LOCAL nCor

  IF lCambiaColor // cambia color solo una viez

      aGet[1]:SetColor( aGet[1]:nClrText, nCor := ChooseColor( aGet[1]:nClrPane ) )

      aGet[1]:Refresh()
      aGet[1]:SetFocus()

   ENDIF

   lCambiaColor := .F.

RETURN NIL
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
Posts: 7940
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Re: Color de fondo y texto a los campos TEXTO (MEMO)

Post by karinha »

Armando, mira que show():

viewtopic.php?p=269384&hilit=color+in+memo#p269384

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
Armando
Posts: 3271
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Been thanked: 2 times
Contact:

Re: Color de fondo y texto a los campos TEXTO (MEMO)

Post by Armando »

Joao, Master Antonio:

Ya está integrada a FW?, a partir de que versión?, o debo compilarla en mi aplicación?

Con estas líneas de código me tira error

Code: Select all | Expand

   TMultiGet():bColorBlock := { |oGet| If( oGet:lFocused, { CLR_WHITE, CLR_GREEN },;
                                        If( ! oGet:lActive, { CLR_RED, CLR_YELLOW }, { CLR_BLACK, CLR_WHITE } ) ) }
Error description: Error BASE/1005 Message not found: TMULTIGET:_BCOLORBLOCK

Tengo FWH2307

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
Posts: 3271
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Been thanked: 2 times
Contact:

Re: Color de fondo y texto a los campos TEXTO (MEMO)

Post by Armando »

Amigos:

Solucionado, agregué MGET.PRG a mi compilación.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Post Reply