FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Limite de Caracteres en GET MULTILINE en FOLDEREX *SOLU. OK
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Limite de Caracteres en GET MULTILINE en FOLDEREX *SOLU. OK
Posted: Thu Aug 18, 2022 04: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 (fw): Select all Collapse
聽 聽 聽@ 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)
FWH 22.10 - HARBOUR - PELLES C
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Limite de Caracteres en GET MULTILINE en FOLDEREX *URGENTE}
Posted: Thu Aug 18, 2022 01:16 PM
Simples,

Code (fw): Select all Collapse
// FWH...\SAMPLES\REMTEC3.PRG - <!-- e --><a href="mailto:kapiabafwh@gmail.com">kapiabafwh@gmail.com</a><!-- e --> - 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
Posts: 719
Joined: Fri May 12, 2017 02:50 PM
Re: Limite de Caracteres en GET MULTILINE en FOLDEREX *URGENTE}
Posted: Thu Aug 18, 2022 02:16 PM
karinha wrote:Simples,

Code (fw): Select all Collapse
// FWH...\SAMPLES\REMTEC3.PRG - <!-- e --><a href="mailto:kapiabafwh@gmail.com">kapiabafwh@gmail.com</a><!-- e --> - 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
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Limite de Caracteres en GET MULTILINE en FOLDEREX *SOLU. OK
Posted: Fri Aug 19, 2022 12:32 PM
Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341

Continue the discussion