FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Algunos problemillas
Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
Algunos problemillas
Posted: Wed Apr 01, 2009 11:59 AM
Hace ya unos d铆as expuse unos problemillas, uno con los butonbmp y la desaparici贸n del bmp cuando hay una acci贸n asociada al bmp (en el ejemplo que viene tstbubmp y con msginfo no sucede pero si le coloco una funcion que haga un conteo, si que desaparece), de esto aun no s茅 nada. Despues expuse si hay alguna forma de a帽adir las coumnas a un Xbrowse por medio de un bucle y que no casque el browse (tambien puse el c贸digo del error) y que una ventana no MDICHILD se coloque delante de un dialogo sin cerrar 茅ste.
Bueno lo del xBrowse lo he solucionado quitando las columnas que no deseo que salgan (manera chapucera, pero bueno, al menos me da lo que quiero presentar).
Ahora tengo un problema m谩s con el tema de la ventana, y es que cuando vuelvo a seleccionar el dialogo para efectuar otro browse me aparece este error
Code (fw): Select all Collapse
Application
===========
   Path and name: C:\Proyectos\Wconta\GCONTA.Exe (32 bits)
   Size:   759,808 bytes
   Time from start: 0 hours 0 mins 17 secs 
   Error occurred at: 01-04-2009, 13:44:17
   Error description: Error BASE/1004  Message not found: TMDICHILD:HFONT

Stack Calls
===========
   Called from: source\rtl\tobject.prg => TMDICHILD:ERROR(172)
   Called from: source\rtl\tobject.prg => TMDICHILD:MSGNOTFOUND(205)
   Called from: source\rtl\tobject.prg => TMDICHILD:HFONT(0)
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:SETFONT(864)
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:INITIATE(635)
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:HANDLEEVENT(912)
   Called from:  => DIALOGBOX(0)
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE(273)
   Called from: c:\PROYEC~1\Wconta\Source\gesh0750.prg => LIBROIVA(113)
   Called from: c:\PROYEC~1\Wconta\Source\geshinic.prg => (b)MAIN(125)
   Called from: .\source\classes\MENU.PRG => TMENU:ACTIVATE(0)
   Called from: .\source\classes\BTNBMP.PRG => TBTNBMP:LBUTTONUP(580)
   Called from:  => TWINDOW:HANDLEEVENT(0)
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT(1453)
   Called from: .\source\classes\BTNBMP.PRG => TBTNBMP:HANDLEEVENT(1130)
   Called from: .\source\classes\WINDOW.PRG => _FWH(3333)
   Called from:  => WINRUN(0)
   Called from: .\source\classes\WINDOW.PRG => TMDIFRAME:ACTIVATE(952)
   Called from: c:\PROYEC~1\Wconta\Source\geshinic.prg => MAIN(153)

System
======
   CPU type: Intel(R) Celeron(R) CPU          420  @ 1.60GHz 1600 Mhz
   Hardware memory: 1016 megs

   Free System resources: 90 %
        GDI    resources: 90 %
        User   resources: 90 %

   Compiler version: xHarbour build 1.1.0 Intl. (SimpLex) (Rev. 6195)
   Windows version: 5.1, Build 2600 Service Pack 3


Por otro lado en ese dialogo tengo tres radios, al primero de los cuales (con dos unicos valores) le asigno el valor que viene desde el menu, y el maldito no hace ni pu帽etero caso, siempre tiene el checked en el primero, aunque el valor de su variable sea el segundo valor. He intentado colocarle ese valor en la l铆nea donde lo defino, pero me da el error de sintaxis, tambien en el ON INIT del dialogo, pero como si se lo digo a la pared, ni caso. 驴Hay alguna opcion para que tome el valor que viene desde el menu general?
El codigo del radio es este
Code (fw): Select all Collapse
REDEFINE RADIO oRadio[1] VAR nOpcion ID 4002,4003 OF oDlg;
             ON CHANGE (oRadio[2]:Refresh(),oRadio[3]:Refresh());
             COLOR RGB(0,0,127),RGB(204,204,153)

nOpcion antes era aOpcion[1], ya que cada radio tiene su aOpcion con sus valores, lo pongo como lo ponga, con una u otra variable siempre tiene el checked en el primer valor.

A ver si ahora tengo algo m谩s de suerte y alguien me tira un cable
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Algunos problemillas
Posted: Thu Apr 02, 2009 02:58 AM

Pedro...

Verifica que tengas en el comando donde defines la MDICHILD tengas puesto "OF"

con respecto al radio en el codigo no veo problema, revisa el recurso

Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
Re: Algunos problemillas
Posted: Thu Apr 02, 2009 09:37 AM
Hola Daniel
Veamos, el c贸digo del radio es este
Code (fw): Select all Collapse
聽 CONTROL "Tipo de Listado", 4001, "Button", BS_GROUPBOX, 32, 8, 100, 44
聽 CONTROL "Facturas Emitidas", 4002, "Button", BS_AUTORADIOBUTTON, 44, 20, 76, 12
聽 CONTROL "Facturas Recibidas", 4003, "Button", BS_AUTORADIOBUTTON, 44, 36, 76, 12

tambien he probado a ponerlo as铆
Code (fw): Select all Collapse
CONTROL "Tipo de Listado", 4001, "Button", BS_GROUPBOX, 32, 8, 100, 44
聽 CONTROL "Facturas Emitidas", 4002, "Button", BS_AUTORADIOBUTTON|WS_GROUP|WS_TABSTOP, 44, 20, 76, 12
聽 CONTROL "Facturas Recibidas", 4003, "Button", BS_AUTORADIOBUTTON, 44, 36, 76, 12

de cualquiera de las dos maneras no coge el valor que se le asigna a su variable

En cuanto a lo de poner OF a la MDICHILD , ah铆 no te entiendo pues el problema no me lo da en la ventana del browse, si no al activar de nuevo el dialogo de petici贸n de datos, y este se inicia al presionar la opcion en el menu de la ventana principal.
Para mi que este error me lo da por tomar el objeto font de la ventana principal, que es p煤blico para usarse en toda la aplicaci贸n. Probar茅 a poner otro font y te comento.

Por cierto, hay alguna forma de a帽adir las columnas a un xbrowse desde un bucle? para que nos entendamos ser铆a algo asi
For n := 1 to 15
oCol := oBrw:AddCol() (o su equivalente para este caso)
.....
.....
EndFor
De esta forma puedo coger los "n" campos seguidos de una tabla y presentarlos
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Algunos problemillas
Posted: Thu Apr 02, 2009 11:26 AM

Pedro,

Desde la funcion que llamas desde el ButtonBmp, llama a SysRefresh() para que Windows pueda procesar los mensajes pendientes (pintado, etc.)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Algunos problemillas
Posted: Thu Apr 02, 2009 11:31 AM

Pedro,

En relacion a los RADIOs, por favor revisa FWH\samples\TestRad.prg y veras como se inicia en la segunda opcion.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
Re: Algunos problemillas
Posted: Thu Apr 02, 2009 12:40 PM
Hola Antonio
En lo que se refiere a los butonbmp, es lo que he hecho, poner un sysrefresh antes de la llamada a la funci贸n, o en algunos casos, ponerlo al inicio de la funci贸n, despues de la declaraci贸n de variables.
En los radios, ya revis茅 testrad.prg, y efectivamente, en un grupo de radios y poniendo la variable nOption a un valor distinto de 1 toma ese valor, pero en mi caso no lo toma, y no s茅 el motivo, de ah铆 que, entre otras cosas, incluyera el problema en el post. Lo he intentado de dos formas y no hace caso. Estos son los c贸digos de c贸mo lo he intentado
C贸digo 1
Code (fw): Select all Collapse
*-------------------------------------------------------------------------
FUNCTION LIBROIVA(oBarMain,oMenu,nOpcion)
*-------------------------------------------------------------------------
local oDlg
Local oRadio[3]
Local aOpcion[3]
Local oSay[10]
Local aVarIva[7]
Local oFontIva
聽 聽 聽 
聽 聽 聽 
聽 聽 聽 If oFontIva <> NIL
聽 聽 聽 聽 聽oFontIva:End()
聽 聽 聽 EndIf
聽 聽 聽 AbreFrasIva(nOpcion)
聽 聽 聽 
聽 聽 聽 aVarIva[1]:= aVarIva[2]:= 0
聽 聽 聽 aVarIva[3]:= aVarIva[4]:= 0 
聽 聽 聽 aVarIva[5]:= aVarIva[6]:= 0
聽 聽 聽 aVarIva[7]:= Date()

聽 聽 聽 aOpcion[1] := nOpcion
聽 聽 聽 aOpcion[2] := 1
聽 聽 聽 aOpcion[3] := 1
聽 聽 聽 聽 聽
聽 聽 DEFINE FONT oFontIva NAME "Ms Sans Serif" SIZE 0, -11 聽 聽 
聽 聽 DEFINE DIALOG oDlg RESOURCE "LISFACTURAS" FONT oFontIva ;
聽 聽 聽 聽 聽 聽COLOR RGB(255,255,255), RGB(204,204,153)
*-------------------------------------------------------------------------------
* 聽 聽 聽 聽 聽PINTAMOS LOS RADIOS Y SAYS DEL DIALOGO
*-------------------------------------------------------------------------------
聽 聽 
聽 聽 聽 
聽 聽 REDEFINE RADIO oRadio[1] VAR nOpcion ID 4002,4003 OF oDlg;
聽 聽 聽 聽 聽 聽 聽ON CHANGE (oRadio[2]:Refresh(),oRadio[3]:Refresh());
聽 聽 聽 聽 聽 聽 聽COLOR RGB(0,0,127),RGB(204,204,153)
聽 聽 REDEFINE RADIO oRadio[2] VAR aOpcion[2] ID 4005,4006 OF oDlg;
聽 聽 聽 聽 聽 聽 聽ON CHANGE (oRadio[1]:Refresh(),oRadio[3]:Refresh());
聽 聽 聽 聽 聽 聽 聽COLOR RGB(0,0,127),RGB(204,204,153)
聽 聽 REDEFINE RADIO oRadio[3] VAR aOpcion[3] ID 4008,4009,4010 OF oDlg;
聽 聽 聽 聽 聽 聽 聽ON CHANGE (oRadio[1]:Refresh(),oRadio[2]:Refresh());
聽 聽 聽 聽 聽 聽 聽COLOR RGB(0,0,127),RGB(204,204,153)

C贸digo 2
Code (fw): Select all Collapse
*-------------------------------------------------------------------------
FUNCTION LIBROIVA(oBarMain,oMenu,nOpcion)
*-------------------------------------------------------------------------
local oDlg
Local oRadio[3]
Local aOpcion[3]
Local oSay[10]
Local aVarIva[7]
Local oFontIva
聽 聽 聽 
聽 聽 聽 
聽 聽 聽 If oFontIva <> NIL
聽 聽 聽 聽 聽oFontIva:End()
聽 聽 聽 EndIf
聽 聽 聽 AbreFrasIva(nOpcion)
聽 聽 聽 
聽 聽 聽 aVarIva[1]:= aVarIva[2]:= 0
聽 聽 聽 aVarIva[3]:= aVarIva[4]:= 0 
聽 聽 聽 aVarIva[5]:= aVarIva[6]:= 0
聽 聽 聽 aVarIva[7]:= Date()

聽 聽 聽 aOpcion[1] := nOpcion
聽 聽 聽 aOpcion[2] := 1
聽 聽 聽 aOpcion[3] := 1
聽 聽 聽 聽 聽
聽 聽 DEFINE FONT oFontIva NAME "Ms Sans Serif" SIZE 0, -11 聽 聽 
聽 聽 DEFINE DIALOG oDlg RESOURCE "LISFACTURAS" FONT oFontIva ;
聽 聽 聽 聽 聽 聽COLOR RGB(255,255,255), RGB(204,204,153)
*-------------------------------------------------------------------------------
* 聽 聽 聽 聽 聽PINTAMOS LOS RADIOS Y SAYS DEL DIALOGO
*-------------------------------------------------------------------------------
聽 聽 
聽 聽 聽 
聽 聽 REDEFINE RADIO oRadio[1] VAR aOpcion[1] ID 4002,4003 OF oDlg;
聽 聽 聽 聽 聽 聽 聽ON CHANGE (oRadio[2]:Refresh(),oRadio[3]:Refresh());
聽 聽 聽 聽 聽 聽 聽COLOR RGB(0,0,127),RGB(204,204,153)
聽 聽 REDEFINE RADIO oRadio[2] VAR aOpcion[2] ID 4005,4006 OF oDlg;
聽 聽 聽 聽 聽 聽 聽ON CHANGE (oRadio[1]:Refresh(),oRadio[3]:Refresh());
聽 聽 聽 聽 聽 聽 聽COLOR RGB(0,0,127),RGB(204,204,153)
聽 聽 REDEFINE RADIO oRadio[3] VAR aOpcion[3] ID 4008,4009,4010 OF oDlg;
聽 聽 聽 聽 聽 聽 聽ON CHANGE (oRadio[1]:Refresh(),oRadio[2]:Refresh());
聽 聽 聽 聽 聽 聽 聽COLOR RGB(0,0,127),RGB(204,204,153)

Con un msginfo he comprobado que tanto nOpcion, como aOpcion[1] contiene el valor 1 贸 2 que es el que mando desde el menu principal de la aplicaci贸n. pero al pintar el radio, la opcion que queda chequeada es la uno en ambos casos.
He probado a poner If( nOpcion = 2, oRadio[1]:aItems[2]:SetCheck(.t.),) antes y despues del ON CHANGE, pero me da un error de sintaxis
El error con la ventana del dialogo cuando por segunda vez volv铆a lo he solucionado colocando una nueva variable de FONT, as铆 no casca despues de cerrar el dialogo y volverlo a abrir de segundas.
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Algunos problemillas
Posted: Thu Apr 02, 2009 01:44 PM

Pedro si puedes contactame por msn

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Algunos problemillas
Posted: Thu Apr 02, 2009 02:45 PM

Pedro,

La llamada a SysRefresh() debes hacerla desde dentro del bucle for ... next

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
Re: Algunos problemillas
Posted: Thu Apr 02, 2009 03:34 PM

Perdona Antonio, me he perdido, 驴a qu茅 bucle For Next te refieres?
驴Es al tema de a帽adir las columnas al xBrowse, o al tema de los butonbmps ?

Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Algunos problemillas
Posted: Thu Apr 02, 2009 04:53 PM

Pedro,

A la funcion que llamas desde el ButtonBmp en tu ejemplo inicial

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
Re: Algunos problemillas
Posted: Thu Apr 02, 2009 07:09 PM

Antonio, ya te contest茅 en el otro post, que para solucionar ese efecto, o bien pongo el sysrefresh al inicio de la funcion que es llamada por la acci贸n del bot贸n o bien antes de ser llamada, en el mismo bot贸n. La idea es que si ese efecto se puede arreglar en la clase.

Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Algunos problemillas
Posted: Thu Apr 02, 2009 07:19 PM

Pedro,

Es que el problema no esta en la clase, sino en la funci贸n a la que se llama que no le deja a Windows "respirar" :-)

Llamando a SysRefresh() desde tu funci贸n, le permites a Windows que procese los mensajes que tenga pendientes.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Algunos problemillas
Posted: Fri Apr 03, 2009 04:50 AM

Pedro...
Por favor muestra como cargarias las columnas del xbrowse para verificar

Posts: 464
Joined: Tue Mar 21, 2006 07:30 PM
Re: Algunos problemillas
Posted: Fri Apr 03, 2009 08:27 AM

Hola Daniel

No s茅, quiz谩s ser铆a algo as铆 como....
For n := 1 to 15
oCol := oBrw:AddCol()
oCol:bStrData := FieldWBlock(FieldName(n),nSelect)
oCol:cHeader := FieldName(n)
......
EndFor

Y ya que estamos decir que he solucionado lo de los Radio. Curiosa la cosa. Resulta que el problema est谩 en la forma de colocar los radios, estos han de estar seguidos en sus ID para que funcione la asignaci贸n al primero de ellos. En fin, cosas curiosas de la programaci贸n.

Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Algunos problemillas
Posted: Fri Apr 03, 2009 08:35 AM

Pedro,

> Y ya que estamos decir que he solucionado lo de los Radio

Bien :-)

Gracias por compartir la soluci贸n al problema :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com