Page 1 of 1
Rebar y Page en una dialog no parecen llevarse bien
Posted: Sun Aug 05, 2007 9:48 pm
by jose_murugosa
Intento manejar una dialog con una rebar, la dialog es de recursos y en ella hay una page, al intentar hacer funcionar el programa me da un error de creación de dialogo, sin embargo si retiro la page del recurso, anda perfectamente.
La falla se produce aún si la page no se declara en el código.
Esta dialog con botones y page anda bien, en cambio con rebar no funcionó.
Como si Rebar + Page no se lleven bien
.
Alguien del foro podrá ayudarme con este asunto?, apreciaré cualquier guía, el tema es que verdaderamente necesito la page y la rebar allí.
encontrarán el código, el recurso y los exes con y sin dialog en un ejemplo bien pequeño en:
http://www.box.net/shared/hmh9urusi6
Gracias desde ya por su ayuda
.
Posted: Sun Aug 05, 2007 11:29 pm
by Antonio Linares
José,
te falta el REDEFINE PAGES ... y añadirlo en el RC. Aqui funciona bien así:
Code: Select all
#include "FiveWin.ch"
static oReBar, oToolBar
function Main()
local oDlg, oImageList, oPages
DEFINE DIALOG oDlg RESOURCE "Dlg_Page" TITLE "FWH - Testing Win32 Toolbars"
// First we build an ImageList with all the bitmaps
DEFINE IMAGELIST oImageList SIZE 32, 32
DEFINE IMGBITMAP OF oImageList NAME "new" COLOR nRGB( 255, 0, 255 )
DEFINE IMGBITMAP OF oImageList NAME "open" COLOR nRGB( 255, 0, 255 )
DEFINE IMGBITMAP OF oImageList NAME "check" COLOR nRGB( 255, 0, 255 )
DEFINE IMGBITMAP OF oImageList NAME "search" COLOR nRGB( 255, 0, 255 )
DEFINE IMGBITMAP OF oImageList NAME "print" COLOR nRGB( 255, 0, 255 )
DEFINE IMGBITMAP OF oImageList NAME "internet" COLOR nRGB( 255, 0, 255 )
DEFINE IMGBITMAP OF oImageList NAME "keys" COLOR nRGB( 255, 0, 255 )
DEFINE IMGBITMAP OF oImageList NAME "quit" COLOR nRGB( 255, 0, 255 )
REDEFINE PAGES oPages ID 102 OF oDlg DIALOGS "dlg1"
ACTIVATE DIALOG oDlg CENTERED ON INIT Barra(oDlg, oImageList)
oImageList:End()
return nil
FUNCTION Barra(oDlg, oImageList)
// Now we create the rebar
DEFINE REBAR oReBar OF oDlg
DEFINE TOOLBAR oToolBar OF oReBar SIZE 45, 34 ; // 50, 50 ; ancho/alto
IMAGELIST oImageList BALLOON // tooltips balloon style
//oToolBar:SetTextRows( 2 )
DEFINE TBBUTTON OF oToolBar ;
ACTION MsgInfo( "Menu" );
TOOLTIP "New" ;
DEFINE TBBUTTON OF oToolBar ;
ACTION MsgInfo( "Menu" );
TOOLTIP "Open" ;
DEFINE TBSEPARATOR OF oToolBar
DEFINE TBBUTTON OF oToolBar ;
ACTION MsgInfo( "Menu" ) ;
TOOLTIP "Menu" ;
DEFINE TBBUTTON OF oToolBar ;
ACTION MsgInfo( "Menu" );
TOOLTIP "Search" ;
DEFINE TBBUTTON OF oToolBar ;
ACTION MsgInfo( "Menu" );
TOOLTIP "Print a report" ;
DEFINE TBSEPARATOR OF oToolBar
DEFINE TBBUTTON OF oToolBar ;
ACTION MsgInfo( "Menu" );
TOOLTIP "Search for new versions" ;
DEFINE TBBUTTON OF oToolBar ;
ACTION MsgInfo( "Users" ) ;
TOOLTIP "Users management" ;
DEFINE TBSEPARATOR OF oToolBar
DEFINE TBBUTTON OF oToolBar ;
ACTION oDlg:End() ;
TOOLTIP "End Application" ;
oToolBar:nWidth = 200
oReBar:InsertBand( oToolBar )
RETURN NIL
Code: Select all
#ifdef __FLAT__
1 24 "./WinXP/WindowsXP.Manifest"
#endif
#define DIALOG_1 1
new BITMAP "./bitmaps/32x32/new.bmp"
open BITMAP "./bitmaps/32x32/open.bmp"
check BITMAP "./bitmaps/32x32/check.bmp"
search BITMAP "./bitmaps/32x32/search.bmp"
print BITMAP "./bitmaps/32x32/print.bmp"
internet BITMAP "./bitmaps/32x32/internet.bmp"
keys BITMAP "./bitmaps/32x32/keys.bmp"
quit BITMAP "./bitmaps/32x32/quit.bmp"
DLG_PAGE DIALOG 23, 25, 457, 304
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
FONT 8, "MS Sans Serif"
{
EDITTEXT 101, 96, 41, 77, 11, ES_LEFT | ES_UPPERCASE | ES_READONLY | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | WS_TABSTOP
CONTROL "TPages", 102, "TPages", WS_CHILD | WS_VISIBLE | WS_TABSTOP, 6, 60, 445, 242
RTEXT "#", 200, 7, 41, 84, 10
LTEXT "", 201, 392, 38, 57, 9
}
dlg1 DIALOG 18, 18, 142, 67
STYLE WS_CHILD | 4
{
PUSHBUTTON "&First", 104, 93, 26, 32, 12
}
Posted: Sun Aug 05, 2007 11:32 pm
by Antonio Linares
Posted: Mon Aug 06, 2007 3:43 pm
by Vikthor
Antonio :
Se podrá hacer uso de los aceleradores de una toolbar, estoy trabajando en ello, ...... sin éxito
Saludos
Posted: Mon Aug 06, 2007 5:10 pm
by Antonio Linares
Vikthor,
No lo hemos probado. Supongo que te refieres a asignar aceleradores a los botones de la toolbar, si ?
Posted: Mon Aug 06, 2007 10:51 pm
by Vikthor
Antonio Linares wrote:Vikthor,
No lo hemos probado. Supongo que te refieres a asignar aceleradores a los botones de la toolbar, si ?
sí, a eso me refiero
Posted: Tue Aug 07, 2007 5:58 pm
by jose_murugosa
Antonio,
Gracias, para este ejemplo se me pasó, pero de todos modos encontré el problema.
En mi programa uso dos dlls una contiene los recursos de la rutina de altas bajas y modificaciones y el otro la del sistema.
Si la dialog hija que va en la page no está en la dll donde está la dialog madre (la que tiene la page) , me da error al crear la dialog madre, sin embargo, si dialogs madre e hija están en la misma dll, no se produce el error, porqué puede ser esto siendo que cargo ambas dlls?
Gracias por la ayuda, de momento lo he solucionado manteniendo los rc separados pero incluyendo el rc de la rutina de bajas altas y modificaciones en el de la aplicación (es decir manejando todo en una sola dll, pero 2 rc para crearlas).
Posted: Tue Aug 07, 2007 6:03 pm
by jose_murugosa
Antonio Linares wrote:Vikthor,
No lo hemos probado. Supongo que te refieres a asignar aceleradores a los botones de la toolbar, si ?
Ya que estamos para preguntar, que es esto de los aceleradores?
Posted: Tue Aug 07, 2007 8:07 pm
by Antonio Linares
Jose,
Cuando se van a cargar los recursos, se utiliza el handle del módulo en donde estan. Por eso no puedes cargar desde dos sitios a la vez.
Vikthor está intentando asignarle aceleradores a los botones de la toolbar, y estamos viendo si se puede hacer
Posted: Tue Aug 07, 2007 8:10 pm
by jose_murugosa
Eso explica porqué tenía el problema....
Muchas gracias por la explicación y por la pronta respuesta.