How to create a scrollable dialogue box?

How to create a scrollable dialogue box?

Postby hua » Tue Dec 08, 2009 7:42 am

I'm wondering whether anyone have any code sample that shows how to create a very long dialogue box which is scrollable and was created using a resource editor?

TIA
FWH 11.08/FWH 19.12
BCC5.82/BCC7.3
xHarbour/Harbour
hua
 
Posts: 1072
Joined: Fri Oct 28, 2005 2:27 am

Re: How to create a scrollable dialogue box?

Postby hua » Wed Dec 09, 2009 1:19 am

This post seems relevant to what I want. Any more ideas, suggestions?

TIA
FWH 11.08/FWH 19.12
BCC5.82/BCC7.3
xHarbour/Harbour
hua
 
Posts: 1072
Joined: Fri Oct 28, 2005 2:27 am

Re: How to create a scrollable dialogue box?

Postby RAMESHBABU » Wed Dec 09, 2009 6:15 am

Hello Hua,

The following is a working sample from Eric Yang:

This is what you might be looking for:

- Ramesh Babu P

Code: Select all  Expand view


// Testing how to scroll a dialog with its contents

#include "FiveWin.ch"

#define D_WIDTH           4
#define D_HEIGHT          13

FUNCTION Main()
   LOCAL oDlg
   DEFINE DIALOG oDlg RESOURCE "dlgComScroll" ;  
         TITLE "Scroll dialog"            ;
         STYLE nOR( WS_VSCROLL, WS_HSCROLL )

   ACTIVATE DIALOG oDlg ;
      ON INIT ( TScrDlg():New(oDlg,1,65,1,70), oDlg:SetSize( 560, 550 ) )

RETURN( NIL )

//============================================================================
// FileName : SCROLL.PRG
// Purpose  :  dialog Scroll Class
// Author   : Eric Yang
// Update History :
//      Date     Contents
//    ---------- ---------------------------------------------------------------
//    1997.02.01
//    2006.29.12 By Rossini - Brasil
//============================================================================
#include "FiveWin.ch"

#ifndef TRUE
   #define TRUE              .T.
   #define FALSE             .F.
#endif

CLASS TScrDlg

   DATA oDlg
   DATA nVPos, nHPos

   METHOD New( oDlg,nV1,nV2,nH1,nH2 ) CONSTRUCTOR
   METHOD SetScroll( nV1,nV2,nH1,nH2 )

   //-*------------------------------------------------------------
   METHOD VScroll()
   METHOD VScrollThumb()
   METHOD VScrollTrack()
   METHOD VScrollPgDown()
   METHOD VScrollPgUp()

   //-*-----------------------------
   METHOD HScroll()
   METHOD HScrollThumb()
   METHOD HScrollTrack()
   METHOD HScrollPgDown()
   METHOD HScrollPgUp()

ENDCLASS

METHOD New( oDlg,nV1,nV2,nH1,nH2 ) CLASS TScrDlg
   ::nVPos := 0
   ::nHPos := 0
   ::oDlg  := oDlg
   ::SetScroll( nV1,nV2,nH1,nH2 )
RETURN Self

METHOD SetScroll( nV1,nV2,nH1,nH2 ) CLASS TScrDlg
LOCAL aCoors1:={},aCoors2:={}
   //--------------------------------------------------
   //-* Vertical Scroll Bar
   if ::oDlg:oVScroll != NIL
      ::oDlg:oVScroll:SetRange( nV1,nV2 )
      ::nVPos := ::oDlg:oVScroll:GetPos()
      ::oDlg:oVScroll:bGoDown   := {|| ::VScroll() }
      ::oDlg:oVScroll:bGoUp     := {|| ::VScroll() }
      ::oDlg:oVScroll:bPageUp   := {|| ::VScrollPgUp() }
      ::oDlg:oVScroll:bPageDown := {|| ::VScrollPgDown() }
      ::oDlg:oVScroll:bGoTop    := {|| ::VScroll() }
      ::oDlg:oVScroll:bGoBottom := {|| ::VScroll() }
      ::oDlg:oVScroll:nPgStep   := 10
      //::oDlg:oVScroll:lReDraw := TRUE
      ::oDlg:oVScroll:bPos      := {|nPos| ::VScrollThumb(nPos) }
      ::oDlg:oVScroll:bTrack    := {|nPos| ::VScrollTrack(nPos) }
   endif
   //--------------------------------------------------
   //-* Horizontal Scroll Bar
   if ::oDlg:oHScroll != NIL
      ::oDlg:oHScroll:SetRange( nH1,nH2 )
      ::nHPos := ::oDlg:oHScroll:GetPos()
      ::oDlg:oHScroll:bGoDown   := {|| ::HScroll() }
      ::oDlg:oHScroll:bGoUp     := {|| ::HScroll() }
      ::oDlg:oHScroll:bPageUp   := {|| ::HScrollPgUp() }
      ::oDlg:oHScroll:bPageDown := {|| ::HScrollPgDown() }
      ::oDlg:oHScroll:bGoTop    := {|| ::HScroll() }
      ::oDlg:oHScroll:bGoBottom := {|| ::HScroll() }
      ::oDlg:oHScroll:nPgStep   := 10
    //::oDlg:oHScroll:lReDraw   := TRUE
      ::oDlg:oHScroll:bPos      := {|nPos| ::HScrollThumb(nPos) }
      ::oDlg:oHScroll:bTrack    := {|nPos| ::HScrollTrack(nPos) }
   endif
*   ::oDlg:bKeyChar := {|nKey,nFlags| ScrollKey(nKey) }
   //--------------------------------------------------
RETURN( NIL )
/*
STATIC FUNCTION ScrollKey(nKey)

   MsgInfo( "Key : "+str(nKey,10) )

   //if nKey == K_ENTER
   //   goMainDlg:End()
   //   lRetVal := TRUE
   //endif
RETURN( NIL )
*/


//=================================================================
//-* Vertical Scroll Bar
METHOD VScroll() CLASS TScrDlg
LOCAL nNewPos

   if ::nVPos >= ::oDlg:oVScroll:nMin   ;
      .and. ::nVPos <= ::oDlg:oVScroll:nMax
      nNewPos := ::oDlg:oVScroll:GetPos()
      SysRefresh()

      ScrollWindow( ::oDlg:hWnd, 0,  ;
         (  ::nVPos-nNewPos )*D_HEIGHT,    ;
         0 , GetClientRect(::oDlg:hWnd) )
      ::nVPos := nNewPos
   endif
RETURN( NIL )

METHOD VScrollThumb(nNewPos) CLASS TScrDlg
   if ::nVPos >= ::oDlg:oVScroll:nMin   ;
      .and. ::nVPos <= ::oDlg:oVScroll:nMax
      ::oDlg:oVScroll:SetPos(nNewPos)
      SysRefresh()
      ScrollWindow( ::oDlg:hWnd, 0,  ;
         (::nVPos - nNewPos )*D_HEIGHT,    ;
         0 , GetClientRect(::oDlg:hWnd) )
      ::nVPos := nNewPos
   endif
RETURN( NIL )

METHOD VScrollTrack(nNewPos) CLASS TScrDlg
   if ::nVPos >= ::oDlg:oVScroll:nMin   ;
      .and. ::nVPos <= ::oDlg:oVScroll:nMax
      ::oDlg:oVScroll:SetPos(nNewPos)
      SysRefresh()
      ScrollWindow( ::oDlg:hWnd, 0,  ;
         (::nVPos - nNewPos )*D_HEIGHT,    ;
         0 , GetClientRect(::oDlg:hWnd) )
      ::nVPos := nNewPos
   endif
RETURN( NIL )

METHOD VScrollPgDown() CLASS TScrDlg
LOCAL nNewPos
   if ::nVPos < ::oDlg:oVScroll:nMax
      nNewPos := ::nVPos + ::oDlg:oVScroll:nPgStep
      nNewPos := iif(nNewPos > ::oDlg:oVScroll:nMax, ::oDlg:oVScroll:nMax, nNewPos)
      SysRefresh()
      ScrollWindow( ::oDlg:hWnd, 0,  ;
         ( ::nVPos - nNewPos )*D_HEIGHT,    ;
         0 , GetClientRect(::oDlg:hWnd) )
      ::nVPos := nNewPos
   endif
RETURN( NIL )

METHOD VScrollPgUp() CLASS TScrDlg
LOCAL nNewPos
   if ::nVPos > ::oDlg:oVScroll:nMin
      nNewPos := ::nVPos - ::oDlg:oVScroll:nPgStep
      nNewPos := iif(nNewPos < ::oDlg:oVScroll:nMin,::oDlg:oVScroll:nMin,nNewPos)
      SysRefresh()
      ScrollWindow( ::oDlg:hWnd, 0,  ;
         ( ::nVPos - nNewPos )*D_HEIGHT,    ;
         0 , GetClientRect(::oDlg:hWnd) )
      ::nVPos := nNewPos
   endif
RETURN( NIL )

//=================================================================
//-* Horizontal Scroll Bar
METHOD HScroll() CLASS TScrDlg
LOCAL nNewPos

   if ::nHPos >= ::oDlg:oHScroll:nMin   ;
      .and. ::nHPos <= ::oDlg:oHScroll:nMax
      nNewPos := ::oDlg:oHScroll:GetPos()
      SysRefresh()
      ScrollWindow( ::oDlg:hWnd,           ;
         (::nHPos - nNewPos )*D_WIDTH,0,   ;
         0 , GetClientRect(::oDlg:hWnd) )
      ::nHPos := nNewPos
   endif
RETURN( NIL )

METHOD HScrollThumb(nNewPos) CLASS TScrDlg
   if ::nHPos >= ::oDlg:oHScroll:nMin   ;
      .and. ::nHPos <= ::oDlg:oHScroll:nMax
      ::oDlg:oHScroll:SetPos(nNewPos)
      SysRefresh()
      ScrollWindow( ::oDlg:hWnd,           ;
         (::nHPos - nNewPos )*D_WIDTH,0,   ;
         0 , GetClientRect(::oDlg:hWnd) )
      ::nHPos := nNewPos
   endif
RETURN( NIL )

METHOD HScrollTrack(nNewPos) CLASS TScrDlg
   if ::nHPos >= ::oDlg:oHScroll:nMin   ;
      .and. ::nHPos <= ::oDlg:oHScroll:nMax
      ::oDlg:oHScroll:SetPos(nNewPos)
      SysRefresh()
      ScrollWindow( ::oDlg:hWnd,           ;
         (::nHPos - nNewPos )*D_WIDTH,0,   ;
         0 , GetClientRect(::oDlg:hWnd) )
      ::nHPos := nNewPos
   endif
RETURN( NIL )

METHOD HScrollPgDown() CLASS TScrDlg

LOCAL nNewPos
   if ::nHPos < ::oDlg:oHScroll:nMax
      nNewPos := ::nHPos + ::oDlg:oHScroll:nPgStep
      nNewPos := iif(nNewPos > ::oDlg:oHScroll:nMax, ::oDlg:oHScroll:nMax, nNewPos)
      SysRefresh()
      ScrollWindow( ::oDlg:hWnd,           ;
         ( ::nHPos - nNewPos )*D_WIDTH,0,  ;
         0 , GetClientRect(::oDlg:hWnd) )
      ::nHPos := nNewPos
   endif
RETURN( NIL )

METHOD HScrollPgUp() CLASS TScrDlg
LOCAL nNewPos
   if ::nHPos > ::oDlg:oHScroll:nMin
      nNewPos := ::nHPos - ::oDlg:oHScroll:nPgStep
      nNewPos := iif(nNewPos < ::oDlg:oHScroll:nMin,::oDlg:oHScroll:nMin,nNewPos)
      SysRefresh()
      ScrollWindow( ::oDlg:hWnd,           ;
         ( ::nHPos - nNewPos )*D_WIDTH,0,  ;
         0 , GetClientRect(::oDlg:hWnd) )
      ::nHPos := nNewPos
   endif
RETURN( NIL )

//=* End of File =================================================

//#include "wndscrol.c"

 


This is RC File

Code: Select all  Expand view

dlgComScroll DIALOG 50, 23, 365, 823
STYLE DS_MODALFRAME | 0x4L | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_VSCROLL | WS_HSCROLL | WS_SYSMENU
CAPTION "Ficha Cadastral"
FONT 7, "MS Sans Serif"
{
 LTEXT "Dados Pessoais", -1, 4, 4, 348, 165, WS_BORDER | WS_GROUP
 LTEXT "Dados do Conjuge", -1, 4, 171, 348, 89, WS_BORDER | WS_GROUP
 LTEXT "Dados do Avalista", -1, 4, 263, 348, 113, WS_BORDER | WS_GROUP
 LTEXT "Dados Profissionais do Financiado", 247, 4, 379, 348, 164, WS_BORDER | WS_GROUP
 LTEXT "Referencias Pessoais e Bancarias", -1, 4, 546, 348, 87, WS_BORDER | WS_GROUP
 LTEXT "Dados da Operação", 282, 4, 702, 348, 89, WS_BORDER | WS_GROUP
 LTEXT "Veiculo", -1, 4, 635, 348, 64, WS_BORDER | WS_GROUP
 CONTROL "101", 101, "EDIT", WS_BORDER | WS_TABSTOP, 10, 23, 196, 12
 CONTROL "102", 102, "EDIT", WS_BORDER | WS_TABSTOP, 210, 23, 66, 12
 CONTROL "103", 103, "EDIT", WS_BORDER | WS_TABSTOP, 280, 23, 66, 12
 CONTROL "104", 104, "EDIT", WS_BORDER | WS_TABSTOP, 10, 49, 66, 12
 CONTROL "105", 105, "EDIT", WS_BORDER | WS_TABSTOP, 81, 49, 66, 12
 CONTROL "106", 106, "EDIT", WS_BORDER | WS_TABSTOP, 151, 49, 56, 12
 CONTROL "107", 107, "EDIT", WS_BORDER | WS_TABSTOP, 210, 49, 66, 12
 CHECKBOX "Fem", 108, 282, 48, 30, 12, BS_AUTOCHECKBOX | WS_TABSTOP
 CHECKBOX "Mas", 109, 315, 48, 30, 12, BS_AUTOCHECKBOX | WS_TABSTOP
 CONTROL "110", 110, "EDIT", WS_BORDER | WS_TABSTOP, 11, 75, 66, 12
 CONTROL "111", 111, "EDIT", WS_BORDER | WS_TABSTOP, 81, 75, 126, 12
 CONTROL "112", 112, "EDIT", WS_BORDER | WS_TABSTOP, 210, 75, 136, 12
 CONTROL "113", 113, "EDIT", WS_BORDER | WS_TABSTOP, 11, 100, 241, 12
 CONTROL "114", 114, "EDIT", WS_BORDER | WS_TABSTOP, 254, 100, 92, 12
 CONTROL "115", 115, "EDIT", WS_BORDER | WS_TABSTOP, 11, 126, 184, 12
 CONTROL "116", 116, "EDIT", WS_BORDER | WS_TABSTOP, 197, 126, 55, 12
 CONTROL "117", 117, "EDIT", WS_BORDER | WS_TABSTOP, 254, 126, 92, 12
 CONTROL "118", 118, "EDIT", WS_BORDER | WS_TABSTOP, 11, 151, 111, 12
 CONTROL "119", 119, "EDIT", WS_BORDER | WS_TABSTOP, 125, 151, 113, 12
 CONTROL "120", 120, "EDIT", WS_BORDER | WS_TABSTOP, 241, 151, 66, 12
 CHECKBOX "Propria", 121, 309, 141, 39, 12, BS_AUTOCHECKBOX | WS_TABSTOP
 CHECKBOX "Alugada", 122, 309, 152, 40, 12, BS_AUTOCHECKBOX | WS_TABSTOP
 CONTROL "123", 123, "EDIT", WS_BORDER | WS_TABSTOP, 11, 192, 194, 12
 CONTROL "124", 124, "EDIT", WS_BORDER | WS_TABSTOP, 208, 192, 138, 12
 CONTROL "125", 125, "EDIT", WS_BORDER | WS_TABSTOP, 11, 217, 131, 12
 CONTROL "126", 126, "EDIT", WS_BORDER | WS_TABSTOP, 145, 217, 101, 12
 CONTROL "127", 127, "EDIT", WS_BORDER | WS_TABSTOP, 249, 217, 97, 12
 CONTROL "128", 128, "EDIT", WS_BORDER | WS_TABSTOP, 11, 242, 184, 12
 CONTROL "129", 129, "EDIT", WS_BORDER | WS_TABSTOP, 197, 242, 55, 12
 CONTROL "130", 130, "EDIT", WS_BORDER | WS_TABSTOP, 254, 242, 92, 12
 CONTROL "131", 131, "EDIT", WS_BORDER | WS_TABSTOP, 10, 282, 197, 12
 CONTROL "132", 132, "EDIT", WS_BORDER | WS_TABSTOP, 210, 282, 66, 12
 CONTROL "133", 133, "EDIT", WS_BORDER | WS_TABSTOP, 280, 282, 66, 12
 CONTROL "134", 134, "EDIT", WS_BORDER | WS_TABSTOP, 11, 307, 173, 12
 CONTROL "135", 135, "EDIT", WS_BORDER | WS_TABSTOP, 187, 307, 65, 12
 CONTROL "136", 136, "EDIT", WS_BORDER | WS_TABSTOP, 254, 307, 92, 12
 CONTROL "137", 137, "EDIT", WS_BORDER | WS_TABSTOP, 11, 332, 134, 12
 CONTROL "138", 138, "EDIT", WS_BORDER | WS_TABSTOP, 148, 332, 36, 12
 CONTROL "139", 139, "EDIT", WS_BORDER | WS_TABSTOP, 187, 332, 65, 12
 CONTROL "140", 140, "EDIT", WS_BORDER | WS_TABSTOP, 254, 332, 92, 12
 CONTROL "141", 141, "EDIT", WS_BORDER | WS_TABSTOP, 11, 358, 184, 12
 CONTROL "142", 142, "EDIT", WS_BORDER | WS_TABSTOP, 197, 358, 55, 12
 CONTROL "143", 143, "EDIT", WS_BORDER | WS_TABSTOP, 254, 358, 92, 12
 CONTROL "144", 144, "EDIT", WS_BORDER | WS_TABSTOP, 11, 400, 194, 12
 CONTROL "145", 145, "EDIT", WS_BORDER | WS_TABSTOP, 208, 400, 138, 12
 CONTROL "146", 146, "EDIT", WS_BORDER | WS_TABSTOP, 11, 425, 112, 12
 CONTROL "147", 147, "EDIT", WS_BORDER | WS_TABSTOP, 125, 425, 59, 12
 CONTROL "148", 148, "EDIT", WS_BORDER | WS_TABSTOP, 187, 425, 65, 12
 CONTROL "149", 149, "EDIT", WS_BORDER | WS_TABSTOP, 254, 425, 92, 12
 CONTROL "150", 150, "EDIT", WS_BORDER | WS_TABSTOP, 11, 450, 241, 12
 CONTROL "151", 151, "EDIT", WS_BORDER | WS_TABSTOP, 254, 450, 92, 12
 CONTROL "152", 152, "EDIT", WS_BORDER | WS_TABSTOP, 11, 475, 184, 12
 CONTROL "153", 153, "EDIT", WS_BORDER | WS_TABSTOP, 197, 475, 55, 12
 CONTROL "154", 154, "EDIT", WS_BORDER | WS_TABSTOP, 254, 475, 92, 12
 CONTROL "155", 155, "EDIT", WS_BORDER | WS_TABSTOP, 11, 500, 194, 12
 CONTROL "156", 156, "EDIT", WS_BORDER | WS_TABSTOP, 208, 500, 138, 12
 CONTROL "157", 157, "EDIT", WS_BORDER | WS_TABSTOP, 11, 525, 111, 12
 CONTROL "158", 158, "EDIT", WS_BORDER | WS_TABSTOP, 125, 525, 113, 12
 CHECKBOX "Residencial", 159, 289, 515, 54, 12, BS_AUTOCHECKBOX | WS_TABSTOP
 CHECKBOX "Comercial", 160, 289, 526, 51, 12, BS_AUTOCHECKBOX | WS_TABSTOP
 CONTROL "161", 161, "EDIT", WS_BORDER | WS_TABSTOP, 10, 565, 197, 12
 CONTROL "162", 162, "EDIT", WS_BORDER | WS_TABSTOP, 210, 565, 66, 12
 CONTROL "163", 163, "EDIT", WS_BORDER | WS_TABSTOP, 280, 565, 66, 12
 CONTROL "164", 164, "EDIT", WS_BORDER | WS_TABSTOP, 10, 590, 241, 12
 CONTROL "165", 165, "EDIT", WS_BORDER | WS_TABSTOP, 253, 590, 93, 12
 CONTROL "166", 166, "EDIT", WS_BORDER | WS_TABSTOP, 11, 615, 112, 12
 CONTROL "167", 167, "EDIT", WS_BORDER | WS_TABSTOP, 125, 615, 59, 12
 CONTROL "168", 168, "EDIT", WS_BORDER | WS_TABSTOP, 187, 615, 65, 12
 CONTROL "169", 169, "EDIT", WS_BORDER | WS_TABSTOP, 254, 615, 92, 12
 CONTROL "170", 170, "EDIT", WS_BORDER | WS_TABSTOP, 10, 655, 96, 12
 CONTROL "171", 171, "EDIT", WS_BORDER | WS_TABSTOP, 109, 655, 39, 12
 CONTROL "172", 172, "EDIT", WS_BORDER | WS_TABSTOP, 151, 655, 56, 12
 CONTROL "173", 173, "EDIT", WS_BORDER | WS_TABSTOP, 210, 655, 66, 12
 CONTROL "174", 174, "EDIT", WS_BORDER | WS_TABSTOP, 279, 655, 68, 12
 CONTROL "175", 175, "EDIT", WS_BORDER | WS_TABSTOP, 11, 681, 184, 12
 CONTROL "176", 176, "EDIT", WS_BORDER | WS_TABSTOP, 197, 681, 55, 12
 CONTROL "177", 177, "EDIT", WS_BORDER | WS_TABSTOP, 254, 681, 92, 12
 CONTROL "178", 178, "EDIT", WS_BORDER | WS_TABSTOP, 11, 723, 131, 12
 CONTROL "179", 179, "EDIT", WS_BORDER | WS_TABSTOP, 145, 723, 101, 12
 CONTROL "180", 180, "EDIT", WS_BORDER | WS_TABSTOP, 249, 723, 97, 12
 CONTROL "181", 181, "EDIT", WS_BORDER | WS_TABSTOP, 10, 748, 78, 12
 CONTROL "182", 182, "EDIT", WS_BORDER | WS_TABSTOP, 90, 748, 53, 12
 CONTROL "183", 183, "EDIT", WS_BORDER | WS_TABSTOP, 145, 748, 63, 12
 CONTROL "184", 184, "EDIT", WS_BORDER | WS_TABSTOP, 210, 748, 66, 12
 CONTROL "185", 185, "EDIT", WS_BORDER | WS_TABSTOP, 279, 748, 68, 12
 CONTROL "186", 186, "EDIT", WS_BORDER | WS_TABSTOP, 10, 773, 158, 12
 CONTROL "187", 187, "EDIT", WS_BORDER | WS_TABSTOP, 170, 773, 176, 12
 LTEXT "Nome", -1, 9, 13, 197, 10
 LTEXT "Data Nasc.", -1, 209, 13, 68, 9
 LTEXT "Estado Civil", -1, 279, 13, 68, 10
 LTEXT "CPF", -1, 9, 39, 68, 9
 LTEXT "RG", -1, 80, 39, 68, 10
 LTEXT "Orgao Expeditor", -1, 150, 39, 56, 9
 LTEXT "Emissão", -1, 209, 39, 68, 10
 LTEXT "_", -1, 279, 39, 68, 10
 LTEXT "Naturalidade", -1, 10, 65, 45, 10
 LTEXT "Pai", -1, 80, 65, 32, 10
 LTEXT "Mae", -1, 209, 65, 32, 10
 LTEXT "Endereco Residencial", -1, 10, 90, 78, 9
 LTEXT "Bairro", -1, 253, 90, 32, 10
 LTEXT "Cidade", -1, 10, 116, 32, 9
 LTEXT "UF", -1, 196, 116, 32, 10
 LTEXT "CEP", -1, 253, 116, 32, 10
 LTEXT "Telefone", -1, 10, 141, 32, 10
 LTEXT "Celular", -1, 124, 141, 32, 10
 LTEXT "Tempo Resid.", -1, 240, 141, 49, 10
 LTEXT "Nome", -1, 10, 182, 32, 10
 LTEXT "CPF", -1, 207, 182, 32, 10
 LTEXT "RG", -1, 10, 207, 32, 10
 LTEXT "Emissao", -1, 144, 207, 32, 10
 LTEXT "Data Nasc.", -1, 248, 207, 57, 10
 LTEXT "Empresa onde trabalha", -1, 10, 232, 32, 9
 LTEXT "Telefone", -1, 196, 232, 32, 10
 LTEXT "Salario", -1, 253, 232, 32, 10
 LTEXT "Nome", -1, 9, 272, 197, 10
 LTEXT "Data Nasc.", -1, 209, 272, 68, 9
 LTEXT "CPF", -1, 279, 272, 68, 10
 LTEXT "Endereco", -1, 10, 297, 32, 9
 LTEXT "Bairro", -1, 186, 297, 32, 10
 LTEXT "Telefone", -1, 253, 297, 32, 10
 LTEXT "Cidade", -1, 10, 322, 32, 9
 LTEXT "CEP", -1, 186, 322, 32, 10
 LTEXT "RG", -1, 253, 322, 32, 10
 LTEXT "UF", -1, 147, 322, 32, 10
 LTEXT "Empresa onde trabalha", -1, 10, 348, 32, 9
 LTEXT "Telefone", -1, 196, 348, 32, 10
 LTEXT "Renda avalista", -1, 253, 348, 55, 10
 LTEXT "Empresa onde trabalha", -1, 10, 390, 32, 10
 LTEXT "CNPJ", -1, 207, 390, 32, 10
 LTEXT "Cargo", -1, 10, 415, 32, 9
 LTEXT "Renda", -1, 186, 415, 32, 10
 LTEXT "Telefone", -1, 253, 415, 32, 10
 LTEXT "Admissão", -1, 124, 415, 32, 10
 LTEXT "Endereco ", -1, 10, 440, 78, 9
 LTEXT "Bairro", -1, 253, 440, 32, 10
 LTEXT "Cidade", -1, 10, 465, 32, 9
 LTEXT "UF", -1, 196, 465, 32, 10
 LTEXT "CEP", -1, 253, 465, 32, 10
 LTEXT "Empresa Anterior", -1, 10, 490, 71, 10
 LTEXT "CNPJ", -1, 207, 490, 32, 10
 LTEXT "Telefone", -1, 10, 515, 32, 10
 LTEXT "Celular", -1, 124, 515, 32, 10
 LTEXT "End.Cobrança", -1, 240, 515, 49, 10
 LTEXT "Banco", -1, 9, 555, 197, 10
 LTEXT "Agencia", -1, 209, 555, 68, 9
 LTEXT "Conta Corrente", -1, 279, 555, 68, 10
 LTEXT "Endereco ", -1, 9, 580, 78, 9
 LTEXT "Telefone", -1, 252, 580, 32, 10
 LTEXT "Nome(Pessoais)", -1, 10, 605, 64, 9
 LTEXT "Comercial/Pessoal", -1, 186, 605, 66, 10
 LTEXT "Telefone", -1, 253, 605, 32, 10
 LTEXT "Telefone", -1, 124, 605, 32, 10
 LTEXT "Marca", -1, 9, 645, 68, 9
 LTEXT "Ano", -1, 109, 645, 24, 10
 LTEXT "Modelo", -1, 150, 645, 56, 9
 LTEXT "Placa", -1, 209, 645, 68, 10
 LTEXT "Renavam", -1, 279, 645, 68, 10
 LTEXT "Chassi", -1, 10, 671, 32, 9
 LTEXT "Cor", -1, 196, 671, 32, 10
 LTEXT "Combustivel", -1, 253, 671, 48, 10
 LTEXT "Valor", -1, 10, 713, 32, 10
 LTEXT "Entrada", -1, 144, 713, 32, 10
 LTEXT "Valor do Credito Financiado", -1, 248, 713, 96, 10
 LTEXT "Valor da TAC", -1, 9, 738, 68, 9
 LTEXT "Tabela", -1, 90, 738, 24, 10
 LTEXT "Coeficiente", -1, 144, 738, 56, 9
 LTEXT "Prazo", -1, 209, 738, 68, 10
 LTEXT "Carencia", -1, 279, 738, 68, 10
 LTEXT "Valor da Parcela", -1, 9, 763, 71, 10
 LTEXT "Primeiro Vencimento", -1, 169, 763, 73, 10
 PUSHBUTTON "Confirma Operação", 88, 192, 796, 76, 14
 PUSHBUTTON "Cancela Operação", 89, 270, 796, 82, 14
}


 
User avatar
RAMESHBABU
 
Posts: 624
Joined: Fri Oct 21, 2005 5:54 am
Location: Secunderabad (T.S), India

Re: How to create a scrollable dialogue box?

Postby hua » Wed Dec 09, 2009 6:36 am

Thank you Ramesh.

I got it working. I started lengthening the dialogue box and to my surprise, in BC5++ workshop, there's actually a limit to how long can I lengthen it. So now for that particular dialogue, I've to edit it using PellesC :lol:
FWH 11.08/FWH 19.12
BCC5.82/BCC7.3
xHarbour/Harbour
hua
 
Posts: 1072
Joined: Fri Oct 28, 2005 2:27 am

Re: How to create a scrollable dialogue box?

Postby hua » Wed Dec 09, 2009 9:23 am

Hmmm..anyone knows how to make this work with the mouse wheel?
FWH 11.08/FWH 19.12
BCC5.82/BCC7.3
xHarbour/Harbour
hua
 
Posts: 1072
Joined: Fri Oct 28, 2005 2:27 am

Re: How to create a scrollable dialogue box?

Postby Antonio Linares » Thu Dec 10, 2009 2:53 pm

Hua,

Just implement these changes :-)
Code: Select all  Expand view

#include "FiveWin.ch"

#define D_WIDTH           4
#define D_HEIGHT          13

FUNCTION Main()

   LOCAL oDlg, oScrDlg

   DEFINE DIALOG oDlg RESOURCE "dlgComScroll" ;  
         TITLE "Scroll dialog"            ;
         STYLE nOR( WS_VSCROLL, WS_HSCROLL )

   oDlg:bMouseWheel = { | nKey, nDelta, nXPos, nYPos | MouseWheel( nKey, nDelta, nXPos, nYPos, oScrDlg ) }

   ACTIVATE DIALOG oDlg ;
      ON INIT ( oScrDlg := TScrDlg():New( oDlg, 1, 65, 1, 70), oDlg:SetSize( 560, 550 ), oDlg:Center() )

RETURN( NIL )

function MouseWheel( nKey, nDelta, nXPos, nYPos, oScrDlg )

   local oVScroll := oScrDlg:oDlg:oVScroll

   if nDelta < 0
      oVScroll:GoDown()
   else
      oVScroll:GoUp()
   endif      

   oScrDlg:VScroll()

return nil

...
 
regards, saludos

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

Re: How to create a scrollable dialogue box?

Postby hua » Mon Dec 14, 2009 1:50 am

Thanks Antonio! It works perfectly :D
FWH 11.08/FWH 19.12
BCC5.82/BCC7.3
xHarbour/Harbour
hua
 
Posts: 1072
Joined: Fri Oct 28, 2005 2:27 am

Re: How to create a scrollable dialogue box?

Postby hua » Mon Dec 28, 2009 6:18 am

Would it be possible to support PageUp and PageDown keys to scroll the dialogue? If so how?

TIA
FWH 11.08/FWH 19.12
BCC5.82/BCC7.3
xHarbour/Harbour
hua
 
Posts: 1072
Joined: Fri Oct 28, 2005 2:27 am


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 22 guests