How to count input word in TGet?

How to count input word in TGet?

Postby richard-service » Fri Dec 21, 2007 3:41 am

Hi

this function like Web site Send SMS input UI.

Redefine GET ... ON CHNAGE....

I need show how many space can input in GET Object.

The problem is ON CHANGE can't Refresh other Object of FWH.

Source code:
***********************************
nLEFT1:=LEN(PAY->RMK1)-LEN(TRIM(PAY->RMK1))
nLEFT2:=LEN(PAY->RMK2)-LEN(TRIM(PAY->RMK2))

REDEFINE GET PAY->RMK1 ID 21 OF oDlg ;
ON CHANGE LEFT_SHOW(1) ;
UPDATE

REDEFINE GET PAY->RMK2 ID 23 OF oDlg ;
ON CHANGE LEFT_SHOW(2) ;
UPDATE

REDEFINE SAY oLEFT1 PROMPT nLEFT1 PICTURE "99" ID 12 OF oDlg ;
UPDATE

REDEFINE SAY oLEFT2 PROMPT nLEFT2 PICTURE "99" ID 14 OF oDlg ;
UPDATE
....
************************
STATIC FUNCTION LEFT_SHOW(nLINE)

DO CASE
CASE nLINE=1
nLEFT1:=LEN(PAY->RMK1)-LEN(TRIM(PAY->RMK1))

oLEFT1:REFRESH() ==> NOT WORK

CASE nLINE=2
nLEFT2:=LEN(PAY->RMK2)-LEN(TRIM(PAY->RMK2))

oLEFT2:REFRESH() ==> NOT WORK

ENDCASE

RETURN NIL
**************************************
User avatar
richard-service
 
Posts: 803
Joined: Tue Oct 16, 2007 8:57 am
Location: New Taipei City, Taiwan

Postby Antonio Linares » Fri Dec 21, 2007 9:56 am

Richard,

>
nLEFT1:=LEN(PAY->RMK1)-LEN(TRIM(PAY->RMK1))
oLEFT1:REFRESH() ==> NOT WORK
>

oLeft1:SetText( Str( nLeft1 ) )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42079
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby richard-service » Fri Dec 21, 2007 1:27 pm

Antonio Linares wrote:Richard,

>
nLEFT1:=LEN(PAY->RMK1)-LEN(TRIM(PAY->RMK1))
oLEFT1:REFRESH() ==> NOT WORK
>

oLeft1:SetText( Str( nLeft1 ) )


Hi Antonio,

I try it but not work. TSay object not Refresh.
oLEFT1:REFRESH() not work.

Have you any idea for it?

Regards,

Richard
User avatar
richard-service
 
Posts: 803
Joined: Tue Oct 16, 2007 8:57 am
Location: New Taipei City, Taiwan

Postby kokookao2007 » Mon Dec 24, 2007 3:57 am

Antonio :

nLEFT1:=LEN(PAY->RMK1)-LEN(TRIM(PAY->RMK1))
oLeft1:SetText( Str( nLeft1 ) )
oLeft1:REFRESH()



hi Antonio:

Get ...On Change => can't refresh other objects .

Same problem to me , look like a bug .

Best Regards
kokoo
User avatar
kokookao2007
 
Posts: 59
Joined: Thu May 17, 2007 8:27 am

Postby nageswaragunupudi » Mon Dec 24, 2007 5:08 am

Please try this code. You can use the same logic to achieve what you want.
Code: Select all  Expand view
FUNCTION Main()

   LOCAL oDlg,oFont
   LOCAL nLen := 20
   LOCAL nRem := 20
   LOCAL cVar := SPACE(20)
   LOCAL oSay, oGet


   DEFINE FONT oFont NAME 'TAHOMA' SIZE 0,-12
   DEFINE DIALOG oDlg SIZE 300,200 PIXEL

   @ 10,10 GET oGet VAR cVar SIZE 100,12 PIXEL OF oDlg ON CHANGE oSay:Refresh()
   @ 10,120 SAY oSay PROMPT STR( 20 - LEN(TRIM(oGet:cText)), 3, 0 ) SIZE 20,10 PIXEL OF oDlg COLOR CLR_BLACK,CLR_WHITE

   ACTIVATE DIALOG oDlg CENTERED

   RELEASE FONT oFont

RETURN NIL

Whenever the user enters a character in the get, the say displays the remaining number of characters he can enter.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10623
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Postby nageswaragunupudi » Mon Dec 24, 2007 5:11 am

Get ...On Change => can't refresh other objects .

Same problem to me , look like a bug .


From my above example you see that get on change can refresh other objects. There is no bug anywhere. It is just the way you use.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10623
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Postby kokookao2007 » Mon Dec 24, 2007 6:02 am

nageswaragunupudi , Thank YOU.


Define Get ...On Change oSAY1:REFRESH() ==> WORK

Define Get ...On Change OBJECT_REFRESH() ==> NOT WORK
..
FUNTION OBJECT_REFRESH()
..
..
oBJECT1():REFRESH()
oBJECT2():REFRESH()
oBJECT3():REFRESH()

RETURN NIL




Best Regards
kokoo
User avatar
kokookao2007
 
Posts: 59
Joined: Thu May 17, 2007 8:27 am

Postby nageswaragunupudi » Mon Dec 24, 2007 6:12 am

Objects do refresh. You should ensure correct values to be reassigned to the object variables.
for example you wrote
nLEFT1:=LEN(PAY->RMK1)-LEN(TRIM(PAY->RMK1))
not correct
it should be
nLEFT1:=LEN(PAY->RMK1)-LEN(TRIM(oGet:cText))
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10623
Joined: Sun Nov 19, 2006 5:22 am
Location: India


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: nageswaragunupudi, Willi Quintana and 114 guests