AutoLISP práce s dialogovými boxy

Přehled informací

Použití předdefinovaných prvků z jiných souborů s prvky

V souboru popisující dialogový box (soubor.dcl) je možné použít jednak prvků standardních = definovaných v souboru base.dcl nebo v libovolném jiném souboru.dcl. V případě potřeby použití vlastních prvků definovaných v jiném souboru.dcl, je možné tento soubor připojit pomocí následujícího příkazu:

@include "soubor.dcl"

POZOR - Připojení platí s jednou výjimkou - soubor acad.dcl nelze tímto způsobem připojit, požadovaný prvek se musí nakopírovat ze souboru acad.dcl do vašeho souboru (do souboru, kde budete prvek používat).

Definice nového dialogového boxu

V případě definice nového dialogového boxu, se vlastně jedná o definici nového elementu, který sdružuje elementy ze souboru base.dcl případně souborů připojených pomocí @include. Definice nového elementu má následující tvar:

  jméno : položka1 [položka2 : ...]
    atribut = hodnota;
    ...
  }

Každá položka je předem definovaný element. Nově definovaný element (jméno) dědí atributy všech specifikovaných položek a atributy přidané ve složených závorkách. Název elementu (jméno) může obsahovat písmena, čísla a zobrazitelné znaky. Jméno musí začínat písmenem a jsou rozlišována velká a malá písmena.

V našem příkladu definujeme nový element se jménem vyber (dialogový box vyber), který dědí vlastnosti předem definovaného elementu dialog:

  vyber : dialog
  {
    - definice dialogu
  }

V definici dialogu používáme odkazy na předem definované elementy následujícím způsobem:

  jméno;

nebo

  :jméno {
     atribut = hodnota;
     ...
  }

kde jméno je jménem předem definovaného elementu. V prvním případu jsou všechny atributy definované ve jméno zapsány do odkazu. V druhém případě jsou do odkazu zapsány atributy definované ve složených závorkách a to buď jako doplnění nebo změna atributů z jméno. Protože se jedná o odkaz na element, na rozdíl od definice elementu, jsou tyto změny použitelné pouze v této instanci elementu.

Příklad definice orámované oblasti s radio_buttony

  :boxed_radio_column {
    label = "Jeden typ výběru";
    :radio_button {
      key = "kruznice";         // klíč - identifikace elementu
      label = " Kružnice";      // zobrazovaný popisek
    }
    :radio_button {
      key = "nuhelnik";
      label = " N úhelník";
    }
  }

Používání komentářů v souboru popisujícího dialogový box

Soubor popisující dialogový box je do značné míry podobný souboru se zdrojovým kódem např. programovacího jazyka C. Podobný je i způsob používání komentářů. Soubor.dcl používá komentáře stejného tvaru jako v C++. Komentář se píše za znak dvojitého zpětného lomítka (viz následující fragment kódu, komentář je zvýrazněn barevně a kurzívou).

  ...
   key = "kruznice";          // klíč - identifikace elementu
   label = " Kružnice";      // zobrazovaný popisek
  ...

Základní prvky použitelné při definici dialogového boxu (definované v souboru base.dcl)

Systém AutoCAD umožňuje použití několika základních dialogových prvků definovaných v souboru base.dcl. Standardní dialogové prvky lze rozdělit do následujících tří skupin:

Zadání hodnoty:

        jméno:edit_box{
          atributy = hodnota;
        }
        jméno:slider{
          atributy = hodnota;
        }

Výběrové seznamy:

        jméno:list_box{
          atributy = hodnota;
        }
        jméno:popup_box{
          atributy = hodnota;
        }

Tlačítka:

        jméno:button{
          atributy = hodnota;
        }
        jméno:radio_button{
          atributy = hodnota;
        }
        jméno:toggle{
          atributy = hodnota;
        }
        jméno:image_button{
          atributy = hodnota;
        }

Výběr nejpoužívanějších atributů elementů dialogového boxu

Seznam nejpoužívanějších atributů používaných při definici dialogového prvku. Pokud budete potřebovat použít nějaké další atributy, musíme Vás odkázat na dokumentaci dodávanou s AutoCADem 2000.

Jméno atributu

key = "string";

label = "string";

value = "string";

width = number;

height = number;

edit_width = number;

alignment = position;

action = "function";

is_default = true / false;

is_cancel = true / false;

color = colorname;

list = "string";

edit_limit = integer;

min_value = integer;

max_value = integer;

layout = position;