Limite de Caracteres en GET MULTILINE en FOLDEREX *SOLU. OK

Limite de Caracteres en GET MULTILINE en FOLDEREX *SOLU. OK

Postby remtec » Thu Aug 18, 2022 4:11 am

Hola Amigos.

Estoy aplicando FOLDEREX para dar solución a un requerimiento donde sus Get son de 100 caracteres cada uno y encontré la publicado el GET MULTILINE.

El problema que no doy con la solución de poder limitar la digitación de caracteres a la cantidad definida, pero asi como lo tengo en mi código, puedo estar todo el día digitando sobre el get y aplica el limite. Pienso que debiera poder digitarse usando 2 líneas máximo 3.

Donde esta el error o que le falta para que funcione.

Muchos saludos.

Antonio


Codigo:
Code: Select all  Expand view

     @ 050,315 SAY "Cicatriz hipertrófica o queloides :" SIZE 100,10 PIXEL OF oFld:aDialogs[2]  RIGHT      FONT oFont2    COLORS RGB(80, 28, 14)       TRANSPARENT
     cMulti:=Spac(100)
   @ 050,420 GET oGet[14]    Var cMulti     SIZE 180,30 MULTILINE  PIXEL OF oFld:aDialogs[2]     FONT oFont2  COLOR RGB(0,0,128), RGB(159,233,255)       UPDATE
        oGet[14]:LimitText(100)



 
Last edited by remtec on Thu Aug 18, 2022 2:17 pm, edited 1 time in total.
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 717
Joined: Fri May 12, 2017 2:50 pm

Re: Limite de Caracteres en GET MULTILINE en FOLDEREX *URGENTE}

Postby karinha » Thu Aug 18, 2022 1:16 pm

Simples,

Code: Select all  Expand view

// FWH...\SAMPLES\REMTEC3.PRG - kapiabafwh@gmail.com - 18/08/2022 - Joao.

#Include "FiveWin.ch"

REQUEST HB_LANG_ESWIN
REQUEST HB_CODEPAGE_ESWIN // Para establecer código de página a Español (Ordenación, etc..)

FUNCTION Limite_Texto()

   LOCAL oDlg, oBrw, oFont, oFont1, oFont2, oFont7, oTitu1, oTitu2, oFont3, ;
         oBrw1, aStruc, oSay1, oSay2, oGet1, oFont4, oFont5, oTitu3, oBtn
   LOCAL nPro := 2,  aEstado := {}, Estado1 := ""
   LOCAL cMulti, oGet := ARRAY(20)

   cMulti := SPACE(100)

   DEFINE FONT oFont  NAME "TAHOMA" SIZE 0, -14
   DEFINE FONT oFont1 NAME 'TAHOMA' SIZE 0,  24 BOLD
   DEFINE FONT oFont2 NAME "TAHOMA" SIZE 0, -12 BOLD
   DEFINE FONT oFont3 NAME 'TAHOMA' SIZE 0,  18 BOLD
   DEFINE FONT oFont7 NAME "TAHOMA" SIZE 0, -14 BOLD

   DEFINE DIALOG oDlg SIZE 580, 570 PIXEL FONT oFont3                        ;
      STYLE nOr( WS_POPUP, WS_VISIBLE, WS_DLGFRAME ) TRANSPARENT

   @ 00, 35 SAY otitu1 PROMPT " MAESTRO DE PROFESIONALES " PIXEL OF oDlg     ;
      COLORS RGB( 12, 135, 27 ) FONT oFont1 UPDATE

   @ 018, 050 SAY "kapiabafwh@gmail.com" SIZE 140, 14 PIXEL OF oDlg RIGHT     ;
      FONT oFont1 UPDATE

   @ 050, 40 SAY "Cicatriz hipertrófica o queloides :" SIZE 100, 10 PIXEL    ;
      OF oDlg RIGHT FONT oFont2 COLORS RGB(80, 28, 14) TRANSPARENT UPDATE

   @ 050, 40 GET oGet[14] VAR cMulti SIZE 180,30 MULTILINE PIXEL             ;
      OF oDlg FONT oFont2 COLOR RGB(0,0,128), RGB(159,233,255) UPDATE        ;
      ON CHANGE( SB_LimitText( oGet[14] ) ) // By AleSB

   // Limpia GET Multiline.
   oGet[14]:bGotFocus = { || oGet[14]:SetSel( 0, 0 ),;
                             oGet[14]:Goto( oGet[14]:GetLineCount() ),;
                             __Keyboard( Chr( VK_HOME ) ) }

   @ 253, 90 BTNBMP oBtn SIZE 30, 30 PROMPT "Salir" OF oDlg PIXEL 2007 ;
      Resource "#8002"  FONT oFont7 ToolTip "VOLVER AL MENU"            ;
      ACTION( oDlg:End() )

   oBtn:lCancel := .T.

   ACTIVATE DIALOG oDlg CENTERED

   RELEASE FONT oFont, oFont1, oFont7, oFont3, oFont2

RETURN nil
//FUNCTION SB_LimitText( oGet, oSay, nSize )
FUNCTION SB_LimitText( oGet )

   ///////////////////////////////////////////////////////////////////////////
   // Autor..........: Peguei no Forum FiveWin Brasil                       //
   // Modificaçoes...: Ale SB - Soft Camus                                  //
   // Descricao......: Restringe o Tamanho de um Texto.                     //
   // Parametros ==>                                                        //
   //  - oGet  : oBjeto Get.                                                //
   //  - nSize : Tamanho que deve ter o Texto.                              //
   // Dependencias ==>                                                      //
   // Retorno ==> nil                                                       //
   ///////////////////////////////////////////////////////////////////////////

   LOCAL nTam, nSize
 
   DEFAULT nSize := 99   // maximo e 100 caracteres

   nTam := LEN( ALLTRIM( oGet:cText ) )

   IF nTam > nSize

      Msginfo( "Lo siento usuario, no puedo continuar, el tamaño máximo " + ;
               "ha excedido el límite permitido.", "Atención por favor." )

      oGet:cText := Substr(oGet:cText, 1, nTam-1)

      RETURN( .F. )

   ENDIF

RETURN( .T. )

// FIN
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Limite de Caracteres en GET MULTILINE en FOLDEREX *URGENTE}

Postby remtec » Thu Aug 18, 2022 2:16 pm

karinha wrote:Simples,

Code: Select all  Expand view

// FWH...\SAMPLES\REMTEC3.PRG - kapiabafwh@gmail.com - 18/08/2022 - Joao.

#Include "FiveWin.ch"

REQUEST HB_LANG_ESWIN
REQUEST HB_CODEPAGE_ESWIN // Para establecer código de página a Español (Ordenación, etc..)

FUNCTION Limite_Texto()

   LOCAL oDlg, oBrw, oFont, oFont1, oFont2, oFont7, oTitu1, oTitu2, oFont3, ;
         oBrw1, aStruc, oSay1, oSay2, oGet1, oFont4, oFont5, oTitu3, oBtn
   LOCAL nPro := 2,  aEstado := {}, Estado1 := ""
   LOCAL cMulti, oGet := ARRAY(20)

   cMulti := SPACE(100)

   DEFINE FONT oFont  NAME "TAHOMA" SIZE 0, -14
   DEFINE FONT oFont1 NAME 'TAHOMA' SIZE 0,  24 BOLD
   DEFINE FONT oFont2 NAME "TAHOMA" SIZE 0, -12 BOLD
   DEFINE FONT oFont3 NAME 'TAHOMA' SIZE 0,  18 BOLD
   DEFINE FONT oFont7 NAME "TAHOMA" SIZE 0, -14 BOLD

   DEFINE DIALOG oDlg SIZE 580, 570 PIXEL FONT oFont3                        ;
      STYLE nOr( WS_POPUP, WS_VISIBLE, WS_DLGFRAME ) TRANSPARENT

   @ 00, 35 SAY otitu1 PROMPT " MAESTRO DE PROFESIONALES " PIXEL OF oDlg     ;
      COLORS RGB( 12, 135, 27 ) FONT oFont1 UPDATE

   @ 018, 050 SAY "kapiabafwh@gmail.com" SIZE 140, 14 PIXEL OF oDlg RIGHT     ;
      FONT oFont1 UPDATE

   @ 050, 40 SAY "Cicatriz hipertrófica o queloides :" SIZE 100, 10 PIXEL    ;
      OF oDlg RIGHT FONT oFont2 COLORS RGB(80, 28, 14) TRANSPARENT UPDATE

   @ 050, 40 GET oGet[14] VAR cMulti SIZE 180,30 MULTILINE PIXEL             ;
      OF oDlg FONT oFont2 COLOR RGB(0,0,128), RGB(159,233,255) UPDATE        ;
      ON CHANGE( SB_LimitText( oGet[14] ) ) // By AleSB

   // Limpia GET Multiline.
   oGet[14]:bGotFocus = { || oGet[14]:SetSel( 0, 0 ),;
                             oGet[14]:Goto( oGet[14]:GetLineCount() ),;
                             __Keyboard( Chr( VK_HOME ) ) }

   @ 253, 90 BTNBMP oBtn SIZE 30, 30 PROMPT "Salir" OF oDlg PIXEL 2007 ;
      Resource "#8002"  FONT oFont7 ToolTip "VOLVER AL MENU"            ;
      ACTION( oDlg:End() )

   oBtn:lCancel := .T.

   ACTIVATE DIALOG oDlg CENTERED

   RELEASE FONT oFont, oFont1, oFont7, oFont3, oFont2

RETURN nil
//FUNCTION SB_LimitText( oGet, oSay, nSize )
FUNCTION SB_LimitText( oGet )

   ///////////////////////////////////////////////////////////////////////////
   // Autor..........: Peguei no Forum FiveWin Brasil                       //
   // Modificaçoes...: Ale SB - Soft Camus                                  //
   // Descricao......: Restringe o Tamanho de um Texto.                     //
   // Parametros ==>                                                        //
   //  - oGet  : oBjeto Get.                                                //
   //  - nSize : Tamanho que deve ter o Texto.                              //
   // Dependencias ==>                                                      //
   // Retorno ==> nil                                                       //
   ///////////////////////////////////////////////////////////////////////////

   LOCAL nTam, nSize
 
   DEFAULT nSize := 99   // maximo e 100 caracteres

   nTam := LEN( ALLTRIM( oGet:cText ) )

   IF nTam > nSize

      Msginfo( "Lo siento usuario, no puedo continuar, el tamaño máximo " + ;
               "ha excedido el límite permitido.", "Atención por favor." )

      oGet:cText := Substr(oGet:cText, 1, nTam-1)

      RETURN( .F. )

   ENDIF

RETURN( .T. )

// FIN
 


Regards, saludos.


Hola João

Que tengas un buen dia.

Muchas gracias por tu ayuda y tiempo dedicado.

Funciono perfecto!!!

Una curiosidad: Este codigo en que condiciones se puede aplicar.
oGet[14]:LimitText(100) <--------


Muchas gracias

Muchos Saludos.

Antonio
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 717
Joined: Fri May 12, 2017 2:50 pm

Re: Limite de Caracteres en GET MULTILINE en FOLDEREX *SOLU. OK

Postby karinha » Fri Aug 19, 2022 12:32 pm

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 92 guests