Página 1 de 1

TOptionList

Publicado: Sab May 20, 2006 8:17 pm
por Xailer Noticias
Quisiera saber como es posible seleccional un Item dentro de las TOptionList
mediante programacion, o sea en modo de ejecucion, quiero que al dar click
en un elemento me pase el contenido hacia un TEdit.
WITH OBJECT ::oOptList
oItems_Grupo1 := :AddItem("Todos Los Ficheros",1,otCHECK,.t.,.T.,.F.,.t.,.t.,.t.
)
For n := 1 to LEN(:aItems)
For i := 1 To Len(aFiles)
oItems_SubGrupo1 := oItems_Grupo1:AddItem(aFiles,1,otCHECK,.t.,.T.,.F.,.t.,.t .,.t.
)
*:lExpanded := .T.
NEXT
NEXT
aEval( :aItems, {| oItem,I | oItem:OnClick := {|oSender|msginfo(oItems_Grupo1:cText)}
} )
END WITH
WITH OBJECT oItems_Grupo1
AEval( :aItems, {|cT,nIndex| cT:OnClick := {|o,i| If(oItems_SubGrupo1:aItems:lChecked,
msginfo(oItems_SubGrupo1:aItems:cText),)} } )
END WITH
GRacias

TOptionList

Publicado: Dom May 21, 2006 7:38 pm
por jfgimenez
Carlos,
no entiendo lo que quieres decir, lo siento. Intenta explicarte mejor.
> WITH OBJECT oItems_Grupo1
> AEval( :aItems, {|cT,nIndex| cT:OnClick := {|o,i|
> If(oItems_SubGrupo1:aItems:lChecked,
> msginfo(oItems_SubGrupo1:aItems:cText),)} } )
>
> END WITH
Quizás el problema que tienes tenga que ver con el código anterior. No se
pueden crear bloques de código directamente dentro de un bucle usando el
índice de ese bucle. Es el eterno problema de las "detached locals". Para
evitarlo, tienes que crear el bloque de código en un función aparte, a la
que llamas desde el bucle. Sería algo así:
....
AEval( :aItems, {|cT,nIndex| cT:OnClick := CrearCodeBlock( oItems_SubGrupo1,
i } )
....
FUNCTION CrearCodeBlock( oGrupo, i )
RETURN If(oGrupo:aItems:lChecked, msginfo(oGrupo:aItems:cText),)}
--
Un saludo,
José F. Giménez