typestar

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

  1. ControlNameList es lo que hay; KillControl quita uno.
  2. La aritmética de posiciones mantiene ordenado un número variable de controles.
  3. Reconstruye en vez de parchar: mata todo y crea lo que hace falta ahora.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 4 de 4 en Controles más grandes; paso 12 de 18 en Paneles y GUI.

← Anterior Siguiente →