se puede poner un scroll a un dialogo?
se puede poner un scroll a un dialogo?
se puede poner un scroll a un dialogo u obligatoriamente tiene que ser un window, he probado con oDlg:oVScroll := .T. y nada
gracias de antemano
gracias de antemano
Software especializado para oficinas contables con grandes volumenes de Informacion
Impresion de todos los formularios del Seniat, Dian
alex_patino74@hotmail.com
whatsapp 57+3214777217
Impresion de todos los formularios del Seniat, Dian
alex_patino74@hotmail.com
whatsapp 57+3214777217
- Antonio Linares
- Site Admin
- Posts: 42553
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 80 times
- Contact:
Buenas tardes,
Tengo en mi pc una clase TScrDlg de Eric Yang que, la verdad, no recuerdo de donde bajé. pero funciona bién
Espero sea lo que buscan.
Saludos.
Rolando
Tengo en mi pc una clase TScrDlg de Eric Yang que, la verdad, no recuerdo de donde bajé. pero funciona bién
Code: Select all | Expand
// 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
Espero sea lo que buscan.
Saludos.
Rolando

JM,
Funciona bien desde recursos (lo uso con DLL)
Primero debes crear la dll con el dialog y los controles a usar dentro.
Luego prueba reformar el código que mandé antes.
Esto, que lo básico, funciona correctamente.
Obviamente que deberás incluirles los VScroll y HScroll al Dialog en la DLL.
Saludos.
Rolando
Funciona bien desde recursos (lo uso con DLL)
Primero debes crear la dll con el dialog y los controles a usar dentro.
Luego prueba reformar el código que mandé antes.
Code: Select all | Expand
// Testing how to scroll a dialog with its contents
#include "FiveWin.ch"
#define D_WIDTH 4
#define D_HEIGHT 13
FUNCTION Main()
LOCAL oDlg
set resources to 'scroll.dll'
define dialog oDlg resource "scroll"
* AQUÍ DEBES UBICAR LOS CONTROLES DEL DIALOG
ACTIVATE dialog oDlg ;
ON INIT ( TScrDlg():New(oDlg,1,40,1,70) )
RETURN( NIL )
Esto, que lo básico, funciona correctamente.
Obviamente que deberás incluirles los VScroll y HScroll al Dialog en la DLL.
Saludos.
Rolando

Quiero entender que el dialogo en el recurso (DLL o RC) solo ha de ser la "caja" y los VScroll y HScroll.
Los controles se han de poner en el código fuente del programa.
¿Es así?
Los controles se han de poner en el código fuente del programa.
¿Es así?
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
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
Buen día,
Yo lo uso así:
Creo el dialog del tamaño máximo que quiero tenga (ej. 500 x 500) y le pongo los controles en los lugares que necesite.
Luego de hecho esto, en el dialogo de PROPIEDADES (uso PELLES-C), achico el tamaño del dialog poniendole los valores 200 x 200.
Estos valores 200 x 200 son las dimensiones que realmente quiero visualizar de mi dialog. Como le definí VSCROll y HSCROLL, al usar el dialog desde mi aplicación, cuando uso los hscroll y/o vscroll, desplazo hasta que aparecen los controles.
Espero haberme explicado. Si no, puedo enviarte algún ejemplo.
Saludos.
Rolando
Yo lo uso así:
Creo el dialog del tamaño máximo que quiero tenga (ej. 500 x 500) y le pongo los controles en los lugares que necesite.
Luego de hecho esto, en el dialogo de PROPIEDADES (uso PELLES-C), achico el tamaño del dialog poniendole los valores 200 x 200.
Estos valores 200 x 200 son las dimensiones que realmente quiero visualizar de mi dialog. Como le definí VSCROll y HSCROLL, al usar el dialog desde mi aplicación, cuando uso los hscroll y/o vscroll, desplazo hasta que aparecen los controles.
Espero haberme explicado. Si no, puedo enviarte algún ejemplo.
Saludos.
Rolando

¡¡¡ Ya me funciona !!!
En el RC acortado el tamaño al deseado, ponerle Vscroll y Hscroll, rellenarlo de los controles apropiados y en el ON INIT del Dialogo lo explicado, el tamaño máximo deseado de desplazamiento.
Ahora me encuentro con un problema:
Cuando "cojo" el cursos para deslizar la ventana (arriba/abajo y/o izquierda/derecha) se me detiene la ejecución del programa.
El programa tiene que estar constantemente "inyectando" tramas de datos al lan y no se puede parar...
¿Alguna idea?
Y como me esta gustando la idea desearía poner un botón para expandir al máximo ese dialogo o contraer.
Es decir ¿Como cambio el tamaño de un dialogo en tiempo de ejecución?
En el RC acortado el tamaño al deseado, ponerle Vscroll y Hscroll, rellenarlo de los controles apropiados y en el ON INIT del Dialogo lo explicado, el tamaño máximo deseado de desplazamiento.
Ahora me encuentro con un problema:
Cuando "cojo" el cursos para deslizar la ventana (arriba/abajo y/o izquierda/derecha) se me detiene la ejecución del programa.
El programa tiene que estar constantemente "inyectando" tramas de datos al lan y no se puede parar...
¿Alguna idea?
Y como me esta gustando la idea desearía poner un botón para expandir al máximo ese dialogo o contraer.
Es decir ¿Como cambio el tamaño de un dialogo en tiempo de ejecución?
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
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
- Antonio Linares
- Site Admin
- Posts: 42553
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 80 times
- Contact:
Y algún remedio para esto...JmGarcia wrote:Ahora me encuentro con un problema:
Cuando "cojo" el cursor para deslizar la ventana (arriba/abajo y/o izquierda/derecha) se me detiene la ejecución del programa.
El programa tiene que estar constantemente "inyectando" tramas de datos al lan y no se puede parar...
¿Alguna idea?
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
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
- Antonio Linares
- Site Admin
- Posts: 42553
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 31 times
- Been thanked: 80 times
- Contact:
Nada, por mas SysRefresh() que pongo siempre que pincho en los deslizadores de los scrolls se detiene.Antonio Linares wrote:Prueba a llamar a SysRefresh() para que Windows procese los mensajes pendientes.
En el código fuente expuesto:
Code: Select all | Expand
define dialog oDlg from 0, 0 TO 25, 70 ;
title "Scroll dialog" ;
Style nor( WS_VSCROLL, WS_HSCROLL )
Y una mas: ¿ Puede un dialogo tener SYSMENU (como la window) ?
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
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013