Page 1 of 1
DIALOG NOWAIT no se ve el SAY
Posted:
Sun Mar 04, 2012 3:09 pm
by Ariel
Pues eso, este codigo no se ve el say, solo se ve cuando se cierra el dialogo :
- Code: Select all Expand view
cCaption:= "Cargando información de la Planilla "+ALLTRIM(STR(oDbf:numero))
DEFINE FONT oFont NAME "Ms Sans Serif" SIZE 0,-14 bold
DEFINE DIALOG oDlg RESOURCE "MSGWAIT"
REDEFINE SAY oSay PROMPT cCaption ID 101 FONT oFont UPDATE //
ACTIVATE DIALOG oDlg NOWAIT
..... otro codigo
oDlg:End()
oFont:End()
el .rc
- Code: Select all Expand view
MSGWAIT DIALOG DISCARDABLE 34, 33, 342, 15
STYLE WS_CHILD|DS_3DLOOK|DS_CENTER|WS_CAPTION|WS_VISIBLE
CAPTION "Espere, por favor..."
CLASS "bordlg"
FONT 12, "MS Sans Serif"
BEGIN
CONTROL "Text", 101, "Static", SS_CENTER|WS_GROUP, 3, 3, 336, 8
END
salu2.
Re: DIALOG NOWAIT no se ve el SAY
Posted:
Mon Mar 05, 2012 12:19 pm
by MarioG
Ariel;
Hice la prueba así:
- Code: Select all Expand view
#include "FiveWin.ch"
static oWnd
function Main()
local oWnd, ;
oMenu
SET RESOURCES TO "testsay.dll"
MENU oMenu
MENUITEM "&Testsay" ;
ACTION VerTxt()
ENDMENU
DEFINE Window oWnd ;
MENU oMenu
ACTIVATE Window oWnd
SET RESOURCES TO
return nil
procedure VerTxt()
local oDlg, oFont, oSay, ;
cCaption
cCaption:= "Cargando información de la Planilla..."+CRLF+"(hecho con " +FWVERSION+")"
DEFINE FONT oFont NAME "Ms Sans Serif" SIZE 0,-14 bold
DEFINE DIALOG oDlg RESOURCE "dlg_datos"
REDEFINE SAY oSay PROMPT cCaption ID 101 FONT oFont UPDATE
ACTIVATE DIALOG oDlg NOWAIT
// Fin
El .rc no lo incrusto, hice una .dll (aunque con esto no quiera decir que es tu problema)
- Code: Select all Expand view
#define DIALOG_1 1
1 24 "../../bat/theme.man"
dlg_datos DIALOG 152, 59, 161, 43
STYLE 0x4L | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX
CAPTION "Datos del Contribuyente"
FONT 11, "Calibri"
{
LTEXT "", 12, 104, 95, 32, 8
CONTROL "Text", 101, "STATIC", SS_LEFTNOWORDWRAP | WS_CHILD | WS_VISIBLE | WS_GROUP, 14, 4, 132, 14
}
Fijate que el Style, sí es distinto del tuyo
Uso FWH1009
Re: DIALOG NOWAIT no se ve el SAY
Posted:
Mon Mar 05, 2012 5:38 pm
by Ariel
Mario,
gracias pero nones, esto hasta fwh 11.05 funcionaba ok, no se que ha cambiado.
Salu2, grax
Re: DIALOG NOWAIT no se ve el SAY
Posted:
Mon Mar 05, 2012 9:06 pm
by Antonio Linares
Ariel,
Del RC tienes que quitar:
WS_CHILD (STYLE ...)
y
CLASS "bordlg"
Con esos cambios debe funcionar correctamente. Aqui tienes un ejemplo completo y funcionando usando tu código:
ariel.prg
- Code: Select all Expand view
#include "FiveWin.ch"
function Main()
local oWnd, oFont
DEFINE FONT oFont NAME "Verdana" SIZE 0, -12
DEFINE WINDOW oWnd
ACTIVATE WINDOW oWnd ;
ON INIT Another( oFont )
oFont:End()
return nil
function Another( oFont )
local oDlg, oSay, cCaption := "Test"
DEFINE DIALOG oDlg RESOURCE "MSGWAIT"
REDEFINE SAY oSay PROMPT cCaption ID 101 FONT oFont UPDATE
ACTIVATE DIALOG oDlg NOWAIT
return nil
ariel.rc
- Code: Select all Expand view
MSGWAIT DIALOG DISCARDABLE 34, 33, 342, 15
STYLE DS_3DLOOK|DS_CENTER|WS_CAPTION|WS_VISIBLE
CAPTION "Espere, por favor..."
FONT 12, "MS Sans Serif"
BEGIN
CONTROL "Text", 101, "Static", SS_CENTER|WS_GROUP, 3, 3, 336, 8
END
Re: DIALOG NOWAIT no se ve el SAY
Posted:
Tue Mar 06, 2012 3:45 am
by Willi Quintana
Antonio,,,,
Como se quita el WS_CHILD (STYLE ...) y CLASS "bordlg" en un recusro tipo .RES ??
Salu2
Re: DIALOG NOWAIT no se ve el SAY
Posted:
Tue Mar 06, 2012 7:34 am
by Antonio Linares
Willly,
Desde el editor de recursos, ó sálvalo como RC, lo editas como texto y lo vuelves a compilar a RES
Re: DIALOG NOWAIT no se ve el SAY
Posted:
Tue Mar 06, 2012 9:38 am
by Ariel
Antonio,
gracias por tu respuesta, de todos modos desde codigo tampoco me funcionó, con la diferencia, q unos segundos despues de creado el dialogo mostraba el texto, como solucion al primer planteo hice esto y ahi si funcionó correctamente :
cCaption:= "Cargando información de la Planilla "+ALLTRIM(STR(oDbf:numero))
DEFINE FONT oFont NAME "Ms Sans Serif" SIZE 0,-14 bold
DEFINE DIALOG oDlg RESOURCE "MSGWAIT"
REDEFINE SAY oSay PROMPT cCaption ID 101 OF oDlg FONT oFont UPDATE //
ACTIVATE DIALOG oDlg NOWAIT
oSay:SetText( cCaption )
oSay:Refresh()
Salu2, Ariel.
Re: DIALOG NOWAIT no se ve el SAY
Posted:
Tue Mar 06, 2012 10:16 am
by Antonio Linares
Ariel,
El ejemplo que yo he publicado, te funciona bien ? gracias
Re: DIALOG NOWAIT no se ve el SAY
Posted:
Tue Mar 06, 2012 10:31 am
by Ariel
Antonio,
si a tu ej. lo corres asi como esta anda ok, pero fijate q en un dialog nowait es para q x ejemplo muestre un mensaje mientras se ejecuta un proceso, bueno, si al codigo q pusiste le agregas Inkey( 5 ), veras q se retarda el pintado del texto.
- Code: Select all Expand view
function Another( oFont )
local oDlg, oSay, cCaption := "Test"
DEFINE DIALOG oDlg RESOURCE "MSGWAIT"
REDEFINE SAY oSay PROMPT cCaption ID 101 FONT oFont UPDATE
ACTIVATE DIALOG oDlg NOWAIT
[color=#FF0000]Inkey(5)[/color]
Saludos.