|
||||||||||||
|
Vidlácké kreslení objektů - rozhraní pro nastavování frekvence generátoru V předchozím článku jsme si řekli, že objekty, resp. jejich prvky, jsou zapouzdřené prvky, které mají rozhraní a pomocí tohoto rozhraní (a nijak jinak) umožňují s nimi dělat. Odborně se říká, že s objekty modelujeme svůj program (já někdy říkám, že ho kreslíme) a pomocí tzv. metod nám objekty poskytují operace, které vykonávají. V Toolboxu Visula Basicu (Gambasu, Xojo) najdeme spoustu objektů. Před časem jsem potřeboval nastavovat kmitočet generátoru v rozsahu do 99.999 999 MHz z obrazovky laptopu. Poznámka: Generátor komunikoval po sériovém portu, parametry rozhraní a protokol byly známé (to není předmětem dnešní úlohy, ale dostanem se k tomu). Program na nastavování frekvence jsem potřeboval rychle nakreslit (namodelovat). Rychle, to znamená u rozhraní za hodinu a u protokolu za další. V Toolboxu Visual Basicu jsem však žádný vhodný prvek nenašel. Profesionální programátor by si ho možná začal psát a ladit v jiném prostředí a asi za měsíc by měl výsledek. Já to musel vyřídit supervidlácky. Nechtěl jsem se však vzdát jedné funkcionality, a sice, abych mohl frekvenci nastavovat svižně s kroky 1 Hz, 1 kHz, 1MHz, 1/10 MHz a 1/100 MHz. A také mít možnost zadat frekvenci napsáním hodnoty. V poměrně chudém Toolboxu Visual Basic 2008 jsem našel zajímavý objekt NumericUpDown. Nakreslil jsem uživatelské rozhraní, které vypadalo takto:
Program pro Windows (exe, cca 25 kB)
lze stáhnout
pro vyzkoušení rozhraní zde. Zdrojový projekt (zazipovaný, cca
250 kB) lze
stáhnout k vyzkoušení zde.
Jak to nakreslíme a jak to funguje? Namalujeme vše v designéru Visual Basic:
Potom musíme vyplnit vlastnosti objektů, hodnoty, které budou
načteny při startu Form1, a to vyplněním do tabulek Properties u všech
objektů (Form1, Label1 až Labelx, NumericUpDown1 až 5, ...)
Bez psaní kódu to nepůjde :-) Kód tvoří celkem 5 procedur, protože při nastavování frekvence rejdíme celkem s 5 objekty NumericUpDown1 až 5. V každé proceduře jsou pouze 4 dosazovací příkazy. První vypadá takto:
Na pravé straně každého dosazovacího příkazu je hodnota NumericUpDown boxu, jehož hodnotu měníme. V uvedeném obrázku prvního. Na levé straně jsou uvedeny vždy všechny ostatní NumericUpDown boxy, do kterých se musí změněná hodnota po rejdění každého z nich dosadit. Vystačíme tedy pouze s jediným typem příkazu, s dosazovacím příkazem. Celý kód, obsažený ve Form1 lze stáhnout zde. Co je na programu nejvíc vidlácké?
|
||||||||||||
| TU 73, Mira, ok1ufc | ||||||||||||