FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour TXBrowse():Refresh() will Scroll Up 1 line
Posts: 1598
Joined: Fri Oct 07, 2005 05:56 PM
TXBrowse():Refresh() will Scroll Up 1 line
Posted: Tue Apr 29, 2008 03:22 AM

Dear Antonio,

I use xHB.com Nov '07 with FWH 8.03.

When I put method TXBrowse():Refresh() the screnn will scroll up 1 line!. I feel every update data TXBrowse() will automatic :Refresh() even do not call :Refresh().

Do I understand correctly? If so, I have to remove very in the program ::Refresh()? Because when I call it TXBrowse() will alway scroll up 1 line.

Regards,
Dutch

Regards,

Dutch



FWH 2304 / xHarbour Simplex 1.2.3 / BCC73 / Pelles C / UEStudio

FWPPC 10.02 / Harbour for PPC (FTDN)

ADS V.9 / MySql / MariaDB

R&R 12 Infinity / Crystal Report XI R2

(Thailand)
Posts: 4840
Joined: Fri Nov 18, 2005 04:52 PM
TXBrowse():Refresh() will Scroll Up 1 line
Posted: Tue Apr 29, 2008 04:26 AM

Dutch,

Can we see how you have defined the browse?

James

FWH 18.05/xHarbour 1.2.3/BCC7/Windows 10
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
TXBrowse():Refresh() will Scroll Up 1 line
Posted: Tue Apr 29, 2008 05:20 AM

>
I feel every update data TXBrowse() will automatic :Refresh() even do not call :Refresh().
>
No. It does not. If a cell is edited through xBrowse's methods, then that row only is refreshed automatically using the method DrawLine( .t. ). Also if we use xBrowse's inbuilt feature to sort columns and the edited column is a sorted column, then the browse calls Refresh() automatically instead of DrawLine( .t. ).

If we update the data directly then we need to refresh() or drawline(.t.) ourselves.
( Note: To refesh a single row, we can either use DrawLine( .t. ) or DrawSelect() or RefreshCurrent() in the latest version of xBrowse )
>
When I put method TXBrowse():Refresh() the screnn will scroll up 1 line!
>
This is surprising. I never noticed it so far. I am very much interesed in knowing under what circumstances this happens.

Regards



G. N. Rao.

Hyderabad, India
Posts: 1598
Joined: Fri Oct 07, 2005 05:56 PM
TXBrowse():Refresh() will Scroll Up 1 line
Posted: Tue Apr 29, 2008 05:33 AM
Dear James,

This is my REDEFINE command. I try many time with :Refresh() at ON DBLCLICK, after edit the record and save the record will scroll up 1 line. If I remove :Refresh() and save. The record is refreshing and still the current line.
   REDEFINE XBROWSE oTbw FIELDS    TBL->TBL_RMNO, ;
                                   TBL->TBL_RMTY, ;
                                   strim(TBL->TBL_NUMRM,3), ;
                                   strim(TBL->TBL_COVER,3),;
                                   iif(!empty(MSS->MSG_INTNO),hMsgBmp,''), ;
                                 TBL->(RsGstName(TBL->TBL_NAT,25)), ;
                                 GST->GST_GSTYPE,;
                                 dtoc(TBL->TBL_ARR),;
                                 dtoc(TBL->TBL_DEP),;
                                 left(TBL->TBL_GROUP,10),;
                                 left(TBL->TBL_COM,14), ;
                                 iif(val(TBL->TBL_SHRNO)>0,hShrBmp,''), ;
                                 iif(TBL->TBL_WAIT='W',hWaiBmp,''), ;
                                 TBL->TBL_RMK, ;
                                 TBL->TBL_ARFLT, ;
                                 TBL->TBL_ARTIME, ;
                                 TBL->TBL_DPFLT, ;
                                 TBL->TBL_DPTIME ;
            ALIAS 'TBL' ;                                 
            FIELDSIZES 50, 40, 33, 33, 30, 150, 35, 65, 65, 85, 85, 35, 35, 250, 70, 55, 70, 55 ;
            JUSTIFY     0,2,2,2,2,0,2,0,0,0,0,2,2,0,2,2,2,2 ;
            HEADERS    TE('àÅ¢Ëéͧ','Room#'), TE('»À.Ëéͧ','RmTy'), TE('Ëéͧ','Rms'), ;
                       TE('ᢡ','Gst'), TE('¨´ËÁÒÂ','Msg'), TE('ª×èÍᢡ','Guest name'), TE('ᢡ','Type'), ;
                       TE('Çѹà¢éÒ','Arrival'), TE('ÇѹÍÍ¡','Departure'), ;
                       TE('¡ÃØê»','Group'), TE('ºÃÔÉÑ·','Company'), TE('¾Ñ¡ÃèÇÁ#','Share#'), TE('ÃÍ','Wait'), TE('ËÁÒÂà˵Ø','Remarks'), ;
                       TE('à·ÕèÂÇà¢éÒ','Arr.Flight'), TE('àÇÅÒà¢éÒ','Arr.Time'), ;
                       TE('à·ÕèÂÇÍÍ¡','Dep.Flight'), TE('àÇÅÒÍÍ¡','Dep.Time') ;
              ID 130 ;
              OF rDlg ;
              ON DBLCLICK (RsvnScr(.F.,,oDbf),oTbw:Refresh(), oTbw:SetFocus())  

   oTbw:nMarqueeStyle   := MARQSTYLE_HIGHLROW
   oTbw:nRowDividerStyle:= LINESTYLE_LIGHTGRAY
   oTbw:nColDividerStyle:= LINESTYLE_LIGHTGRAY
   oTbw:nHeaderHeight   := 24
   oTbw:nRowHeight      := 20
  
   // oTbw:lRecordSelector := .F.
   // oTbw:l2007 := .T.
   
   oTbw:bClrStd  := {|| { iif( GST->GST_GSTYPE='V' , CLR_HRED , CLR_BLACK ), GetSysColor( 5 )  } }  
   oTbw:lFooter  := .T.
   
   oTbw:aCols[3]:bFooter     := { || nTlRms }
   oTbw:aCols[3]:lTotal      := .t.
    
   oTbw:aCols[4]:bFooter     := { || nTlGst }
   oTbw:aCols[4]:lTotal      := .t.
   

   oTbw:bChange  := { || rDlg:aEvalWhen(), rDlg:Update(), ReBtn1(lMainMenu,oBtn) }

   oTbw:bKeyChar := { | nKey | ( IIF(nKey = VK_RETURN, RsvnScr(.F.,,oDbf) , )) }
   
   oTbw:bKeyDown := { | nKey | ( IIF(nKey = VK_INSERT, RsvnScr(.T.,,oDbf) , ;
                                 IIF(nKey = VK_DELETE, (CancelRs( oTbw, oDbf ), oTbw:GoTop()) , ) ) , ;
                                                       oTbw:SetFocus() ) }  // oTbw:Refresh(), 
                                                         
   oTbw:bLClicked := { | nRow, nCol, nFlags | if(oTbw:nAt()=12 .and. !empty( TBL->TBL_SHRNO ), ShowShare(), ;
                                              if(oTbw:nAt()=13 .and. TBL->TBL_STATUS='R' .and. UserRights(37,.F.), ( WaitList() ) , ;  // , oTbw:Refresh()
                                                ) ) }
   
   oTbw:bRClicked := { | nRow, nCol, nFlags | ( oTbw:SetFocus(), oTbw:lButtonDown(nRow,nCol), RsvnMenu( nRow, nCol, rDlg, oTbw, oBtn, oDbf, oComDbf, lGrpOpt ) ) }

   oTbw:aCols[5]:AddResource("MSG")
   oTbw:aCols[5]:bBmpData   := { || iif(!empty(MSS->MSG_INTNO) , 1, 0) }
   oTbw:aCols[5]:nDataBmpAlign := AL_CENTER
   
   oTbw:aCols[12]:AddResource("SHARE")
   oTbw:aCols[12]:bBmpData   := { || iif(val(TBL->TBL_SHRNO)>0 , 1, 0) }
   oTbw:aCols[12]:nDataBmpAlign := AL_CENTER
   
   oTbw:aCols[13]:AddResource("WAIT")
   oTbw:aCols[13]:bBmpData   := { || iif( TBL->TBL_WAIT='W' , 1, 0) }
   oTbw:aCols[13]:nDataBmpAlign := AL_CENTER


Regards,
Dutch
Regards,

Dutch



FWH 2304 / xHarbour Simplex 1.2.3 / BCC73 / Pelles C / UEStudio

FWPPC 10.02 / Harbour for PPC (FTDN)

ADS V.9 / MySql / MariaDB

R&R 12 Infinity / Crystal Report XI R2

(Thailand)
Posts: 4840
Joined: Fri Nov 18, 2005 04:52 PM
TXBrowse():Refresh() will Scroll Up 1 line
Posted: Tue Apr 29, 2008 07:37 AM

Dutch,

I am wondering if something in this function is causing the problem:

RsvnScr(.F.,,oDbf)

If you remove the call to that function does the browse still move up one record?

James

FWH 18.05/xHarbour 1.2.3/BCC7/Windows 10

Continue the discussion