Controles creados en tiempo de ejecución en Igor Pro
Un control se crea con un comando, así que un panel puede construirse desde los datos.
Function RebuildChecks(String panelName)
String existing = ControlNameList(panelName, ";", "chk_*")
Variable i, n = ItemsInList(existing)
for (i = 0; i < n; i += 1)
KillControl/W=$panelName $StringFromList(i, existing)
endfor
String waves = WaveList("data_*", ";", "")
n = ItemsInList(waves)
for (i = 0; i < n; i += 1)
String name = StringFromList(i, waves)
CheckBox $("chk_" + name), win=$panelName, value=1
CheckBox $("chk_" + name), pos={16, 40 + i * 22}, title=name
endfor
return n
End
Cómo funciona
ControlNameListes lo que hay;KillControlquita uno.- La aritmética de posiciones mantiene ordenado un número variable de controles.
- Reconstruye en vez de parchar: mata todo y crea lo que hace falta ahora.
Palabras clave y builtins usados aquí
EndFunctionStringVariableendforforreturn
El intento, en números
- Líneas
- 19
- Caracteres a escribir
- 493
- Tokens
- 133
- Ritmo de tres estrellas
- 85 tpm
Al ritmo de tres estrellas de 85 tokens por minuto, este intento toma unos 94 segundos.
Paso 4 de 4 en Controles más grandes; paso 12 de 18 en Paneles y GUI.