http://www.foxpert.com/knowlbits_200703_3.htm
Autor: Christof Wollenhaupt
Traducido por: Ana María Bisbé York
Si tiene un combobox para el que no ha especificado un valor de la propiedad ColumnWidths, Visual FoxPro tiene que calcular por si mismo cuál podría ser el ancho de la columna desplegada. Básicamente, Visual FoxPro simplemente crea la lista con el ancho suficiente para mostrar completamente todos los valores. Sin embargo, Visual FoxPro solamente toma parte de la lista para determinar el ancho real de cada línea. El siguiente código de ejemplo demuestra este comportamiento:
Public goForm, gaData[121] goForm = CreateObject("Form") goForm.Show() For lnRow=1 to 120 gaData[lnRow] = "_"+Transform(m.lnrow) EndFor gaData[121] = "AAAAAAAAAAAAAAA*" * first combo goForm.AddObject("c1","combobox") goForm.c1.RowSource = "gaData" goForm.c1.RowSourceType = 5 goForm.c1.ListIndex = 1 goForm.c1.Visible = .T. * second combo goForm.AddObject("c2","combobox") goForm.c2.RowSource = "gaData" goForm.c2.RowSourceType = 5 goForm.c2.ListIndex = 100 goForm.c2.Top = 50 goForm.c2.Visible = .T.Ambos comboboxes están configurados con idéntico origen (RowSource). La única diferencia entre los dos, es el elemento actualmente seleccionado. El primer combo muestra el primer elemento, el segundo muestra un elemento que está cercano del final. Si abre ahora ambos comboboxes, verá que el primero es más estrecho y no mostrará el último elemento en toda su longitud.
VFP utiliza el elemento actual y luego lee una cantidad variable de líneas. En el ejemplo de arriba siempre es 68 en mi PC. Esto es, con un ListIndex de 53, el combobox se comporta como el primero, con un ListIndex de 54 se muestra como el segundo. En otros casos, encontré que la cantidad de líneas puede ser mucho más que 10, poniendo la línea grande fuera del área visible de las 7 líneas que muestra de forma predeterminada.
No hay comentarios. :
Publicar un comentario
Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.