FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Definir controles utilizando un ciclo FOR
Posts: 298
Joined: Fri Oct 07, 2005 05:20 AM
Definir controles utilizando un ciclo FOR
Posted: Wed May 21, 2025 01:13 AM
Buen día:

Requiero definir controles GET a partir de datos contenidos en un arreglo.

El ejemplo simple es el siguiente:
	FOR i := 2 TO LEN( ::aData )
			nRow    := ::aData[ i , ROW_ ]
			nCol    := ::aData[ i , COL_ ]
			cSay    := ::aData[ i , NAME_ ]
			cPic    := ::aData[ i , PICTUR_ ]
			bWhen   := ::aData[ i , CUANDO_ ]
			bValid  := ::aData[ i , VALIDA_ ]
			uField  := ::aData[ i , FIELD_ ]

			@ oApp:Row( nRow ) , oApp:Col( nCol ) GET oCtrl VAR uField ;
			SIZE oApp:Width() , oApp:Height() PIXEL OF oDlg  PICTURE cPic
	NEXT i
El "problema" es que todos los controles contienen el valor del último elemento del arreglo.
Traté de utilizar macro sustitución con en DOS sin éxito

¿ Alguna sugerencia ?

Saludos
Vikthor
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Definir controles utilizando un ciclo FOR
Posted: Wed May 21, 2025 03:19 AM
Estimado Vikthor,

En estos casos se utiliza una función auxiliar y asi se usa lo que se denomina "detached locals":
	FOR i := 2 TO LEN( ::aData )
			nRow    := ::aData[ i , ROW_ ]
			nCol    := ::aData[ i , COL_ ]
			cSay    := ::aData[ i , NAME_ ]
			cPic    := ::aData[ i , PICTUR_ ]
			bWhen   := ::aData[ i , CUANDO_ ]
			bValid  := ::aData[ i , VALIDA_ ]
			uField  := ::aData[ i , FIELD_ ]

                        BuildGet( oApp:Row( nRow ), oApp:Col( nCol ), @oCtrl, uField, oApp:Width() , oApp:Height(), oDlg, cPic )
	NEXT i
	
	...
	
	function BuildGet( nRow, nCol, @oCtrl, uField, nWidth, nHeight, oDlg, cPicture )
	
	   @ nRow, nCol GET oCtrl VAR uField SIZE nWidth, nHeight PIXEL OF oDlg PICTURE cPicture
	
	return nil
Ojo que estás repitiendo la misma variable oCtrl para guardar los objetos GET creados. Deberias usar una variable distinta para cada objeto.
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 298
Joined: Fri Oct 07, 2005 05:20 AM
Re: Definir controles utilizando un ciclo FOR
Posted: Wed May 21, 2025 11:03 PM

Gracias Antonio

¡ Funcionó perfecto !

Vikthor

Continue the discussion