Antonio, es posible VScroll a un dialogo desde recursos ?

Antonio, es posible VScroll a un dialogo desde recursos ?

Postby Raymundo Islas M. » Sat Feb 17, 2007 3:01 am

Hola Antonio

- Se podra aplicar el TESTWSCR.PRG de la carpeta samples a un dialogo/folder con controles creados desde recursos ??

Motivo : Por X razon a veces me falta 1 o 2 datos y el espacio se me acabo, y tengo que crear otra pestaña de un folder, si se le pusiera el scroll vertical, seria simplemente fabuloso !!!!



- Y ya que ando con solicitudes alucinantes :wink: , sera posible incrustar un PreView dentro de un control en vez de una ventana ??

Motivo : En un modulo de configuracion de impresiones, si deseo ajustar las coordenadas de algun reporte, tengo que seleccionar el boton [Probar] para que me aparezca el PreView, si se pudiera llamar desde X funcion, se actualizaria al momento los ajustes en dicho control.


No se, quizas tome mucha Coca-Cola el dia de hoy 8)


Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Postby Rochinha » Sat Feb 17, 2007 6:43 am

Hi

This is a code for scroll in dialogs modified for a Brazilian friend:

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
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
Rochinha
 
Posts: 309
Joined: Sun Jan 08, 2006 10:09 pm
Location: Brasil - Sao Paulo

Postby Taiwan » Sat Feb 17, 2007 10:07 am

Hello Rochinha,

Thanks your sample code.
It's working.

Regards,

Richard
User avatar
Taiwan
 
Posts: 218
Joined: Fri Oct 07, 2005 1:55 am
Location: Taipei, Taiwan

Postby Raymundo Islas M. » Sat Feb 17, 2007 4:34 pm

Hola Rochinha

Muchas Gracias por tu pronta respuesta !! :D


Muito obrigado :!:

Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Postby Raymundo Islas M. » Sat Feb 17, 2007 5:28 pm

Rochinha

Termine mis pruebas y...... funciono perfecto !!!!!

Muchas Gracias


Saludos
FWH 10.6 + xHarbour + Borland 582
User avatar
Raymundo Islas M.
 
Posts: 592
Joined: Tue Mar 14, 2006 11:34 pm
Location: Acapulco, Gro. MEXICO

Postby Rochinha » Sat Feb 17, 2007 5:44 pm

Gracias

E gracias en nombre de mi amigo!
Rochinha
 
Posts: 309
Joined: Sun Jan 08, 2006 10:09 pm
Location: Brasil - Sao Paulo

Postby JmGarcia » Fri Dec 12, 2008 11:49 pm

He probado con un dialogo desde recursos y no me funciona... no hace nada :roll:
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
JmGarcia
 
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 133 guests