FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Antonio, error en FWH 12.06
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Antonio, error en FWH 12.06
Posted: Mon Jul 16, 2012 07:52 PM
Hola Antonio,

En el siguiente c贸digo, si se pone la cl谩usula TRANSPARENT en el Di谩logo genera error:
Code (fw): Select all Collapse
#include "FiveWin.ch"

Function Inicio()
聽 聽LOCAL oDlg, nRow:=10, i
聽 聽LOCAL aDatos[5]
聽 聽aDatos[1] := "Say uno"
聽 聽aDatos[2] := "Say dos"
聽 聽aDatos[3] := "Say tres"
聽 聽aDatos[4] := "Say cuatro"
聽 聽aDatos[5] := "Say cinco"
聽 聽DEFINE DIALOG oDlg FROM 0,0 TO 400, 300 PIXEL TRANSPARENT
聽 聽 聽 For i:=1 TO Len(aDatos)
聽 聽 聽 聽 聽 @ nRow, 10 SAY VAR aDatos[i] OF oDlg PIXEL
聽 聽 聽 聽 聽 nRow+=10
聽 聽 聽 next
聽 聽ACTIVATE DIALOG oDlg CENTERED
Return(NIL)

El error que presenta es:
[.\errsysw.prg->ERRORDIALOG] (78) Called from:
.\errsysw.prg->(b)ERRORSYS(49)
.\PRUEBA1.prg->(b)INICIO(17)
.\source\classes\SAY.PRG->(b)TSAY:TSAY(50)
->TSAY:REFRESH(0)
.\source\classes\WINDOW.PRG->(b)TWINDOW:TWINDOW(562)
->TSAY:SETBRUSH(0)
.\source\classes\CONTROL.PRG->TCONTROL:INITIATE(393)
.\source\classes\SAY.PRG->TSAY:INITIATE(190)
->__OBJSENDMSG(0)
->HB_EXECFROMARRAY(0)
.\source\function\HARBOUR.PRG->OSEND(219)
->HB_EXECFROMARRAY(0)
.\source\function\HARBOUR.PRG->ASEND(197)
DIALOG.PRG->TDIALOG:INITIATE(630)
DIALOG.PRG->TDIALOG:HANDLEEVENT(875)
->DIALOGBOXINDIRECT(0)
DIALOG.PRG->TDIALOG:ACTIVATE(270)
.\PRUEBA1.prg->INICIO(22)
Type: C >>>array access<<<
Type: C >>>Bound error<<<
Type: N >>> 17<<<

Hasta la versi贸n FWH 10.10 funcionaba perfecto. C贸mo puedo resolverlo ?

Gracias por tu ayuda,

Carlos Gallego

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Antonio, error en FWH 12.06
Posted: Tue Jul 17, 2012 08:54 AM
Carlos,

Prueba asi:
Code (fw): Select all Collapse
#include "FiveWin.ch"

Function Inicio()
   LOCAL oDlg, nRow:=10, i
   LOCAL aDatos[5], cDato
   aDatos[1] := "Say uno"
   aDatos[2] := "Say dos"
   aDatos[3] := "Say tres"
   aDatos[4] := "Say cuatro"
   aDatos[5] := "Say cinco"
   DEFINE DIALOG oDlg FROM 0,0 TO 400, 300 PIXEL TRANSPARENT
      For i:=1 TO Len(aDatos)
          @ nRow, 10 SAY Space( 20 ) OF oDlg PIXEL
          ATail( oDlg:aControls ):VarPut( aDatos[ i ] )
          nRow+=10
      next
   ACTIVATE DIALOG oDlg CENTERED
Return(NIL)


El problema es que se cambi贸 la clase SAY para poder mostrar el texto de una variable que pueda cambiar de valor, y eso crea un conflicto al referenciar un elemento de un array por un indice variable tambien, debido a que se crea un codeblock a partir de la expresion a mostrar.
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
Re: Antonio, error en FWH 12.06
Posted: Tue Jul 17, 2012 09:18 PM
Antonio gracias por tu ayuda.

Revisando la clase Say lo resolv铆 de otra manera, pues como tu me sugieres funciona bien pero me toca hacer muchos cambios. El c贸digo es super largo :-)

Code (fw): Select all Collapse
Function Inicio()
聽 LOCAL oDlg, nRow:=10, i, oFallaFWH, oBrush
聽 LOCAL aDatos[5]
聽 aDatos[1] := "Say uno"
聽 aDatos[2] := "Say dos"
聽 aDatos[3] := "Say tres"
聽 aDatos[4] := "Say cuatro"
聽 aDatos[5] := "Say cinco"
聽 DEFINE BRUSH oBrush STYLE TILED
聽 DEFINE DIALOG oDlg FROM 0,0 TO 400, 300 PIXEL TRANSPARENT
聽 聽 聽oDlg:oBrush := oBrush
聽 聽 聽For i:=1 TO Len(aDatos)
聽 聽 聽 聽 聽@ nRow, 10 SAY oSay VAR aDatos[i] OF oDlg PIXEL
聽 聽 聽 聽 聽nRow+=10
聽 聽 聽 聽 聽oSay:bGet := NIL 聽 聽// ***** Con esto me funciona bien *****
聽 聽 聽next
聽 ACTIVATE DIALOG oDlg CENTERED
Return(NIL)

Te parece bien mi soluci贸n, no causar谩 conflictos ?

Gracias y saludos,

Carlos Gallego

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Re: Antonio, error en FWH 12.06
Posted: Tue Jul 17, 2012 10:22 PM

Carlos,

Muy bien y muy simple, gracias :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion