Unas cosillas

Unas cosillas

Postby Pedro » Fri Mar 20, 2009 6:20 pm

Hola a todos
Vengo con un par de cosillas a ver si me tirais un cable para solucionarlos.
Hace poco en un listado, abri una window para presentar por pantalla en un xbrowse el resultado del listado, pues bien, mi primer problema aparece cuando quiero coger sólo los primeros campos de la tabla, es decir si la tabla tiene 40 campos yo quiero presentar solo los 21 primeros, si hago un bucle for y luego pongo que el xbrowse sea por codigo (oBrw:CrateFromCode ) pues me da un error en la clase xBrowse, si no hago el bucle y toma todos los campos, no da el error.
Despues cuando intento presentar el xbrowse en la ventana MDI, resulta que me pasa como en los reportes que el diálogo no desparece detras de la ventana, si no que se queda delante. Este problema ya lo reporte antes y la solución fue que pusieramos el fuente del reporte y le quitarámos algo, asi daba un "feisimo" pantallazo y se colocaba en la barra de tareas, pero............ ¿y en una window?, ¿por qué lo hace?, supuestamente no debería de hacerlo.
Por último un antiestético suceso en la clase butonbmp y es que el bmp que tiene el boton desaparece cuando lo pinchas, tan solo y aparentemente deja de hacer ese efecto cuando pones un sysrefresh en la función donde va despues de haber pinchado el boton.

Bueno el ladrillazo ha sido grande, un feliz día para todos
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
User avatar
Pedro
 
Posts: 464
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Re: Unas cosillas

Postby Antonio Linares » Sat Mar 21, 2009 10:26 pm

Pedro,

Que error te aparece ?

Puedes proporcionar un pequeno ejemplo para reproducirlo ? gracias :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41390
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Unas cosillas

Postby Antonio Linares » Sat Mar 21, 2009 10:28 pm

Pedro,

> el diálogo no desparece detras de la ventana, si no que se queda delante

Si la ventana es mdichild, entonces se quedara detras del dialogo. Tienes que cerrar el dialogo antes de abrir la ventana mdichild.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41390
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Unas cosillas

Postby Antonio Linares » Sat Mar 21, 2009 10:30 pm

Pedro,

> antiestético suceso en la clase butonbmp

Puedes reproducir ese efecto en el ejemplo FWH\TestBuBm.prg ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41390
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Unas cosillas

Postby Pedro » Sat Mar 21, 2009 11:33 pm

Antonio Linares wrote:Pedro,

> antiestético suceso en la clase butonbmp

Puedes reproducir ese efecto en el ejemplo FWH\TestBuBm.prg ?

Antonio en el ejemplo que propones y con el MsgInfo no sucede, pero prueba a poner esto en el ejemplo y luego me cuentas
Code: Select all  Expand view
REDEFINE BUTTONBMP ID 20 OF oDlg ;
      ACTION Cuenta(oSay,oDlg) ;
      BITMAP "c:\fwh\bitmaps\16x16\garrow.bmp" PROMPT "Test" TEXTRIGHT

Function Cuenta(oSay,oDlg)
Local i

For i = 1 to 100000
    cAccion := i
    oSay:Refresh()
    oDlg:Update()
EndFor
Return nil    
 

Veras como el bitmap desaparece y no reaparece hasta que la funcion cuenta ha terminado, si pones un sysrefresh antes del bucle el bitmap "tan solo desaparece" durante una instante, apenas perceptible

Antonio Linares wrote:Si la ventana es mdichild, entonces se quedara detras del dialogo. Tienes que cerrar el dialogo antes de abrir la ventana mdichild


Mañana pruebo a hacer una ventana no MDIchild y te comento. El tema es que no quiero que desaprezca el dialogo, pues lo necesito hasta que el usuario decida cerrarlo, por si quiere hacer más reportes por pantalla o impresora.

El error que da el xBrowse es este
Code: Select all  Expand view
Application
===========
   Path and name: C:\Proyectos\Wconta\GCONTA.exe (32 bits)
   Size:   730,112 bytes
   Time from start: 0 hours 0 mins 12 secs
   Error occurred at: 22-03-2009, 00:26:48
   Error description: Error BASE/1111  Argument error: LEN
   Args:
     [   1] = U  

Stack Calls
===========
   Called from:  => LEN(0)
   Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:ISDISPLAYPOSVISIBLE(0)
   Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:PAINT(0)
   Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:DISPLAY(0)
   Called from: .\source\classes\CONTROL.PRG => TXBROWSE:HANDLEEVENT(0)
   Called from: .\source\classes\WINDOW.PRG => _FWH(0)
   Called from:  => DIALOGBOXINDIRECT(0)
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE(0)
   Called from: .\source\function\ERRSYSW.PRG => ERRORDIALOG(0)
   Called from: .\source\function\ERRSYSW.PRG => (b)ERRORSYS(0)
   Called from:  => LEN(0)
   Called from: .\source\classes\XBROWSE.PRG => TXBRWCOLUMN:DATAWIDTH(0)
   Called from: .\source\classes\XBROWSE.PRG => TXBRWCOLUMN:ADJUST(0)
   Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:ADJUST(0)
   Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:INITIATE(0)
   Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:CREATEFROMCODE(0)
   Called from: c:\PROYEC~1\Wconta\Source\gesh0750.prg => PANTFRAIVA(230)
   Called from: c:\PROYEC~1\Wconta\Source\gesh0750.prg => FILTRAVARIVA(171)
   Called from: c:\PROYEC~1\Wconta\Source\gesh0750.prg => COMPRUEBAVARIVA(145)
   Called from: c:\PROYEC~1\Wconta\Source\gesh0750.prg => (b)LIBROIVA(108)
   Called from: .\source\classes\BUTTON.PRG => TBUTTONBMP:CLICK(0)
   Called from: .\source\classes\CONTROL.PRG => TBUTTON:HANDLEEVENT(0)
   Called from: .\source\classes\BUTTONB.PRG => TBUTTONBMP:HANDLEEVENT(0)
   Called from: .\source\classes\WINDOW.PRG => _FWH(0)
   Called from:  => SENDMESSAGE(0)
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:COMMAND(0)
   Called from:  => TWINDOW:HANDLEEVENT(0)
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:HANDLEEVENT(0)
   Called from:  => DIALOGBOX(0)
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE(0)
   Called from: c:\PROYEC~1\Wconta\Source\gesh0750.prg => LIBROIVA(114)
   Called from: c:\PROYEC~1\Wconta\Source\geshinic.prg => (b)MAIN(124)
   Called from: .\source\classes\MENU.PRG => TMENU:ACTIVATE(0)
   Called from: .\source\classes\BTNBMP.PRG => TBTNBMP:LBUTTONUP(0)
   Called from:  => TWINDOW:HANDLEEVENT(0)
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT(0)
   Called from: .\source\classes\BTNBMP.PRG => TBTNBMP:HANDLEEVENT(0)
   Called from: .\source\classes\WINDOW.PRG => _FWH(0)
   Called from:  => WINRUN(0)
   Called from: .\source\classes\WINDOW.PRG => TMDIFRAME:ACTIVATE(0)
   Called from: c:\PROYEC~1\Wconta\Source\geshinic.prg => MAIN(153)
Variables in use
================
   Procedure     Type   Value
   ==========================
   LEN
     Param   1:    U    
     Local   1:    U    
     Local   2:    N    0
   TXBROWSE:ISDISPLAYPOSVISIBLE
     Param   1:    N    1
     Local   1:    L    .F.
     Local   2:    O    Class: TXBROWSE
     Local   3:    U    
     Local   4:    U    
     Local   5:    N    1
   TXBROWSE:PAINT
     Local   1:    O    Class: TXBROWSE
     Local   2:    U    
     Local   3:    U    
     Local   4:    U    
     Local   5:    U    
     Local   6:    U    
     Local   7:    U    
     Local   8:    U    
     Local   9:    U    
     Local  10:    U    
     Local  11:    U    
     Local  12:    U    
     Local  13:    U    
     Local  14:    U    
     Local  15:    U    
     Local  16:    U    
     Local  17:    U    
     Local  18:    U    
     Local  19:    U    
     Local  20:    U    
     Local  21:    U    
     Local  22:    U    
     Local  23:    U    
     Local  24:    U    
     Local  25:    U    
     Local  26:    U    
     Local  27:    U    
     Local  28:    U    
     Local  29:    U    
     Local  30:    U    
     Local  31:    U    
     Local  32:    U    
     Local  33:    U    
     Local  34:    U    
     Local  35:    U    
     Local  36:    A    Len:    5
     Local  37:    U    
     Local  38:    U    
     Local  39:    U    
     Local  40:    U    
     Local  41:    U    
     Local  42:    U    
     Local  43:    U    
     Local  44:    U    
     Local  45:    U    
     Local  46:    U    
     Local  47:    L    .F.
   TXBROWSE:DISPLAY
     Local   1:    O    Class: TXBROWSE
   TXBROWSE:HANDLEEVENT
     Param   1:    N    15
     Param   2:    N    0
     Param   3:    N    0
     Local   1:    O    Class: TXBROWSE
     Local   2:    U    
   _FWH
     Param   1:    N    0
     Param   2:    N    15
     Param   3:    N    0
     Param   4:    N    0
     Param   5:    N    44
     Local   1:    O    Class: TXBROWSE
   DIALOGBOXINDIRECT
     Param   1:    N    4194304
     Param   2:    C    "€ È€     tÿ”ÿâ °     F i v e W i n   f o r   H a r b o u r       P    4  u  z S T A T I C         E r r o r   d e s c r i p t i o n :   E r r o r   B A S E / 1 1 1 1     A r g u m e n t   e r r o r :   L E N
 
        P      H  { S T A T I C   & S t a c k   L i s t        ¡P     ! Ü ˆ | L I S T B O X          P    ` ¡  } B U T T O N   & Q u i t         P    ¯  / ~ B U T T O N   S e e   E r r o r . l o g   f i l e     "

     Param   3:    N    656516
     Param   4:    O    Class: TDIALOG
   TDIALOG:ACTIVATE
     Param   1:    U    
     Param   2:    U    
     Param   3:    B    {|| ... }
     Param   4:    L    .T.
     Param   5:    U    
     Param   6:    L    .T.
     Param   7:    U    
     Param   8:    U    
     Param   9:    U    
     Param  10:    L    .F.
     Local   1:    O    Class: TDIALOG
     Local   2:    N    656516
     Local   3:    U    
     Local   4:    U    
     Local   5:    U    
     Local   6:    O    Class: TDIALOG
   ERRORDIALOG
     Param   1:    O    Class: ERROR
     Local   1:    O    Class: TDIALOG
     Local   2:    O    Class: TLISTBOX
     Local   3:    U    
     Local   4:    U    
     Local   5:    C    "   Called from:  => LEN(0)"
     Local   6:    N    9
     Local   7:    C    "   Error description: Error BASE/1111  Argument error: LEN
"

     Local   8:    A    Len:   31
     Local   9:    O    Class: TSAY
     Local  10:    N    486871911
     Local  11:    N    1
     Local  12:    C    "Application


el codigo del xbrowse es este

Code: Select all  Expand view

*-------------------------------------------------------------------------------
FUNCTION PantFraIva(aVarIva,aOpcion)
*-------------------------------------------------------------------------------            
Local oWnd
Local oSay[3]
Local oBrw
Local cTexto1 := "Listado de Facturas "+If (aOpcion[1]= 1,"Emitidas","Recibidas")
Local cTexto2 := aDatEmp[2]+" "+Str(aDatEmp[7])

   FIVA->(dbGotop())
   DEFINE WINDOW oWnd  FONT oFont ;
          TITLE cTexto1
     
                                         
   oBrw = TXBrowse():New( oWnd )
   oBrw:nColDividerStyle    := LINESTYLE_BLACK
   oBrw:nRowDividerStyle    := LINESTYLE_BLACK
   oBrw:lRecordSelector     := .t.
   oBrw:nHeaderLines        := 1
   oBrw:nDataLines          := 1
     oBrw:nRowSel             := 1
     oBrw:nMarqueeStyle       := 4
     oBrw:bClrSelFocus        := {||{RGB(255,204,204),RGB(176,196,222 )}}
   oBrw:cAlias := "FIVA"
   oBrw:bClrStd := {|| { nRGB( 0, 0, 51), nRGB(204,204,102) } } // colores para lineas normales
   oBrw:bClrSel := {|| { nRGB(0,0,0), nRGB(241,222,088) } } // para barra de linea selecc cuando el control no tiene el foco
   oBrw:bClrSelFocus := {|| { nRGB( 0, 0, 0), nRGB(248,195, 34) } } // para barra de linea selecc cuando el control tiene el foco
   oBrw:lFooter := .t.
   oBrw:lFastEdit  := .F.

   For n := 1 to 21
   oCol = oBrw:AddCol()
   oCol:bStrData      := { || (oBrw:cAlias)->(FieldGet(n)) }     
   oCol:nEditType     := 0
   oCol:cHEADER       := (oBrw:cAlias)->(FieldName(n))
   EndFor
   
   oBrw:CreateFromCode()
   oWnd:oClient := oBrw
                 
   

   ACTIVATE Window oWnd Maximized;
        ON INIT oBrw:SetFocus()
   SysRefresh()
 
Return( nil )
 
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
User avatar
Pedro
 
Posts: 464
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Re: Unas cosillas

Postby Pedro » Mon Mar 23, 2009 9:31 am

Antonio Linares wrote:Pedro,

> el diálogo no desparece detras de la ventana, si no que se queda delante

Si la ventana es mdichild, entonces se quedara detras del dialogo. Tienes que cerrar el dialogo antes de abrir la ventana mdichild.


Con las prisas no me di cuenta que la ventana no era MDICHILD, en el código que te puse, donde creo la ventana, notarás que es una ventana normal, ya había probado con la MDICHILD y le pasa lo mismo que si es normal, el diálogo se queda delante de la ventana. No sé si esto es debido a que la ventana principal de la aplicación es MDI, sobre ella se crea el diálogo y despues presento otra ventana (la que me gustaría que se quedara encima de la principal y de la del diálogo), que es donde presento los datos.
Un saludo
Pedro
gahetesoft@gmail.com
FWH12.06 BCC582, Xverce CW, Pelles C 6.00.4,PSPAD 4.54
y ahora con ADO
User avatar
Pedro
 
Posts: 464
Joined: Tue Mar 21, 2006 7:30 pm
Location: Córdoba (España)

Re: Unas cosillas

Postby Antonio Linares » Thu Apr 02, 2009 11:24 am

Pedro,

Desde la funcion Cuenta() que usas debes llamar a SysRefresh() para darle opcion a Windows a que procese los mensajes pendientes
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41390
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: nanoespinoza and 69 guests