VASCON Posted August 28, 2011 Report Share Posted August 28, 2011 PESSOAL, BOM DIA! COMO FAÇO PARA CRIAR UMA CAIXA DE DIALOGO, COM ROLAGEM DE CURSOR NA VERTICAL. NÃO SERIA LISTBOX NEM TBROUSE, APENAS UMA CAIXA ONDE MOSTRARIA INFORMAÇÕES NECESSÃRIAS, MAS QUE PERMITISSE UMA ROLAGEM VERTICAL, OU SEJA, A INFORMAÇÕES ROLARIAM DENTRO DESSA CAIXA. GRATO PELA ATENÇÃO NILSON Quote Link to comment Share on other sites More sharing options...
VASCON Posted August 28, 2011 Author Report Share Posted August 28, 2011 PESSOAL, BOM DIA! COMO FAÇO PARA CRIAR UMA CAIXA DE DIALOGO, COM ROLAGEM DE CURSOR NA VERTICAL. NÃO SERIA LISTBOX NEM TBROUSE, APENAS UMA CAIXA ONDE MOSTRARIA INFORMAÇÕES NECESSÃRIAS, MAS QUE PERMITISSE UMA ROLAGEM VERTICAL, OU SEJA, A INFORMAÇÕES ROLARIAM DENTRO DESSA CAIXA. GRATO PELA ATENÇÃO NILSON Quote Link to comment Share on other sites More sharing options...
gunafe Posted August 28, 2011 Report Share Posted August 28, 2011 Bom dia, Procure na pasta samples que tem o que voce procura(five\samples\testdscr.prg), mas de qualquer forma, segue o que voce precisa abaixo: // Testing how to scroll a dialog with its contents #include "FiveWin.ch" #define D_WIDTH 4 #define D_HEIGHT 13 FUNCTION Main() LOCAL oDlg LOCAL cGet0101 := space(10), ; //Row 1 cGet0102 := space(10), ; cGet0103 := space(10), ; cGet0104 := space(10), ; cGet0105 := space(10), ; cGet0201 := space(10), ; //Row 2 cGet0202 := space(10), ; cGet0203 := space(10), ; cGet0204 := space(10), ; cGet0205 := space(10), ; cGet0301 := space(10), ; //Row 3 cGet0302 := space(10), ; cGet0303 := space(10), ; cGet0304 := space(10), ; cGet0305 := space(10), ; cGet0401 := space(10), ; //Row 4 cGet0402 := space(10), ; cGet0403 := space(10), ; cGet0404 := space(10), ; cGet0405 := space(10), ; cGet0501 := space(10), ; //Row 5 cGet0502 := space(10), ; cGet0503 := space(10), ; cGet0504 := space(10), ; cGet0505 := space(10), ; cGet0601 := space(10), ; //Row 6 cGet0602 := space(10), ; cGet0603 := space(10), ; cGet0604 := space(10), ; cGet0605 := space(10), ; cGet0701 := space(10), ; //Row 7 cGet0702 := space(10), ; cGet0703 := space(10), ; cGet0704 := space(10), ; cGet0705 := space(10), ; cGet0801 := space(10), ; //Row 8 cGet0802 := space(10), ; cGet0803 := space(10), ; cGet0804 := space(10), ; cGet0805 := space(10), ; cGet0901 := space(10), ; //Row 9 cGet0902 := space(10), ; cGet0903 := space(10), ; cGet0904 := space(10), ; cGet0905 := space(10), ; cGet1001 := space(10), ; //Row 10 cGet1002 := space(10), ; cGet1003 := space(10), ; cGet1004 := space(10), ; cGet1005 := space(10), ; cGet1101 := space(10), ; //Row 11 cGet1102 := space(10), ; cGet1103 := space(10), ; cGet1104 := space(10), ; cGet1105 := space(10) define dialog oDlg from 0, 0 TO 25, 70 ; title "Scroll dialog" ; Style nor( WS_VSCROLL, WS_HSCROLL ) @ 9,17 bitmap file "..\bitmaps\pic1.bmp" of oDlg size 120,148 adjust @ 9,32 bitmap file "..\bitmaps\pic2.bmp" of oDlg size 120,148 adjust @ 9,47 bitmap file "..\bitmaps\pic3.bmp" of oDlg size 120,148 adjust @ 9,62 bitmap file "..\bitmaps\pic4.bmp" of oDlg size 120,148 adjust @ 9,77 bitmap file "..\bitmaps\pic5.bmp" of oDlg size 120,148 adjust @ 21*13,02*8 say "Customer " of oDlg update color CLR_BLACK,CLR_WHITE size 120,26 border pixel @ 23*13,02*8 say "P.O. # " of oDlg update color CLR_BLACK,CLR_WHITE size 120,26 border pixel @ 25*13,02*8 say "Style No." of oDlg update color CLR_BLACK,CLR_WHITE size 120,26 border pixel @ 27*13,02*8 say "Fabrics " of oDlg update color CLR_BLACK,CLR_WHITE size 120,26 border pixel @ 29*13,02*8 say "Fob " of oDlg update color CLR_BLACK,CLR_WHITE size 120,26 border pixel @ 31*13,02*8 say "Q'TY " of oDlg update color CLR_BLACK,CLR_WHITE size 120,26 border pixel @ 33*13,02*8 say "DEL. " of oDlg update color CLR_BLACK,CLR_WHITE size 120,26 border pixel @ 35*13,02*8 say "MAKER " of oDlg update color CLR_BLACK,CLR_WHITE size 120,26 border pixel @ 37*13,02*8 say "QTA " of oDlg update color CLR_BLACK,CLR_WHITE size 120,26 border pixel @ 39*13,02*8 say "SIZE " of oDlg update color CLR_BLACK,CLR_WHITE size 120,26 border pixel @ 41*13,02*8 say "Size B/D " of oDlg update color CLR_BLACK,CLR_WHITE size 120,26 border pixel @ 43*13,02*8 say "REMARKS " of oDlg update color CLR_BLACK,CLR_WHITE size 120,26 border pixel @ 21*13,17*8 say "Venture " of oDlg update color CLR_BLACK,CLR_WHITE size 120,26 border pixel @ 21*13,32*8 say "Sears " of oDlg update color CLR_BLACK,CLR_WHITE size 120,26 border pixel @ 21*13,47*8 say "Kohl's " of oDlg update color CLR_BLACK,CLR_WHITE size 120,26 border pixel @ 21*13,62*8 say "Kiss " of oDlg update color CLR_BLACK,CLR_WHITE size 120,26 border pixel @ 21*13,77*8 say "K-MART " of oDlg update color CLR_BLACK,CLR_WHITE size 120,26 border pixel //-* Row 1 @ 23*13,17*8 get cGet0101 size 120,26 of oDlg update pixel @ 23*13,32*8 get cGet0102 size 120,26 of oDlg update pixel @ 23*13,47*8 get cGet0103 size 120,26 of oDlg update pixel @ 23*13,62*8 get cGet0104 size 120,26 of oDlg update pixel @ 23*13,77*8 get cGet0105 size 120,26 of oDlg update pixel //-* Row 2 @ 25*13,17*8 get cGet0201 size 120,26 of oDlg update pixel @ 25*13,32*8 get cGet0202 size 120,26 of oDlg update pixel @ 25*13,47*8 get cGet0203 size 120,26 of oDlg update pixel @ 25*13,62*8 get cGet0204 size 120,26 of oDlg update pixel @ 25*13,77*8 get cGet0205 size 120,26 of oDlg update pixel //-* Row 3 @ 27*13,17*8 get cGet0301 size 120,26 of oDlg update pixel @ 27*13,32*8 get cGet0302 size 120,26 of oDlg update pixel @ 27*13,47*8 get cGet0303 size 120,26 of oDlg update pixel @ 27*13,62*8 get cGet0304 size 120,26 of oDlg update pixel @ 27*13,77*8 get cGet0305 size 120,26 of oDlg update pixel //-* Row 4 @ 29*13,17*8 get cGet0401 size 120,26 of oDlg update pixel @ 29*13,32*8 get cGet0402 size 120,26 of oDlg update pixel @ 29*13,47*8 get cGet0403 size 120,26 of oDlg update pixel @ 29*13,62*8 get cGet0404 size 120,26 of oDlg update pixel @ 29*13,77*8 get cGet0405 size 120,26 of oDlg update pixel //-* Row 5 @ 31*13,17*8 get cGet0501 size 120,26 of oDlg update pixel @ 31*13,32*8 get cGet0502 size 120,26 of oDlg update pixel @ 31*13,47*8 get cGet0503 size 120,26 of oDlg update pixel @ 31*13,62*8 get cGet0504 size 120,26 of oDlg update pixel @ 31*13,77*8 get cGet0505 size 120,26 of oDlg update pixel //-* Row 6 @ 33*13,17*8 get cGet0601 size 120,26 of oDlg update pixel @ 33*13,32*8 get cGet0602 size 120,26 of oDlg update pixel @ 33*13,47*8 get cGet0603 size 120,26 of oDlg update pixel @ 33*13,62*8 get cGet0604 size 120,26 of oDlg update pixel @ 33*13,77*8 get cGet0605 size 120,26 of oDlg update pixel //-* Row 7 @ 35*13,17*8 get cGet0701 size 120,26 of oDlg update pixel @ 35*13,32*8 get cGet0702 size 120,26 of oDlg update pixel @ 35*13,47*8 get cGet0703 size 120,26 of oDlg update pixel @ 35*13,62*8 get cGet0704 size 120,26 of oDlg update pixel @ 35*13,77*8 get cGet0705 size 120,26 of oDlg update pixel //-* Row 8 @ 37*13,17*8 get cGet0801 size 120,26 of oDlg update pixel @ 37*13,32*8 get cGet0802 size 120,26 of oDlg update pixel @ 37*13,47*8 get cGet0803 size 120,26 of oDlg update pixel @ 37*13,62*8 get cGet0804 size 120,26 of oDlg update pixel @ 37*13,77*8 get cGet0805 size 120,26 of oDlg update pixel //-* Row 9 @ 39*13,17*8 get cGet0901 size 120,26 of oDlg update pixel @ 39*13,32*8 get cGet0902 size 120,26 of oDlg update pixel @ 39*13,47*8 get cGet0903 size 120,26 of oDlg update pixel @ 39*13,62*8 get cGet0904 size 120,26 of oDlg update pixel @ 39*13,77*8 get cGet0905 size 120,26 of oDlg update pixel //-* Row 10 @ 41*13,17*8 get cGet1001 size 120,26 of oDlg update pixel @ 41*13,32*8 get cGet1002 size 120,26 of oDlg update pixel @ 41*13,47*8 get cGet1003 size 120,26 of oDlg update pixel @ 41*13,62*8 get cGet1004 size 120,26 of oDlg update pixel @ 41*13,77*8 get cGet1005 size 120,26 of oDlg update pixel //-* Row 11 @ 43*13,17*8 get cGet1101 size 120,26 of oDlg update pixel @ 43*13,32*8 get cGet1102 size 120,26 of oDlg update pixel @ 43*13,47*8 get cGet1103 size 120,26 of oDlg update pixel @ 43*13,62*8 get cGet1104 size 120,26 of oDlg update pixel @ 43*13,77*8 get cGet1105 size 120,26 of oDlg update pixel @ 50,20 button "&Ok" size 80,20 of oDlg ; action (MsgInfo("You click OK button!"),oDlg:End()) @ 50,40 button "&Cancel" size 80,20 of oDlg ; action (MsgInfo("You click Cancel button!"),oDlg:End()) ACTIVATE dialog oDlg ; ON INIT ( TScrDlg():New(oDlg,1,40,1,70) ) RETURN( NIL ) //============================================================================ // FileName : SCROLL.PRG // Purpose : dialog Scroll Class // Author : Eric Yang // Update History : // Date Contents // ---------- --------------------------------------------------------------- // 1997.02.01 // //============================================================================ #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 // ? ::oDlg:oVSCroll=NIL if ::oDlg:oVScroll != NIL // ? nV1,nV2 ::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 ================================================= procedure AppSys // Xbase++ requirement return id=code>id=code>[]´s Luiz Augusto São José dos Pinhais - PR xHarbour + Fivewin + Workshop + Sql via Odbc Vamos Aderir:"Retorne avisando se a dica funcionou" Quote Link to comment Share on other sites More sharing options...
VASCON Posted August 28, 2011 Author Report Share Posted August 28, 2011 Luiz Augusto: Muito obrigado. Funcionou! Ficou 10 Grato NILSON Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.