Otevřete Visual Basic 6 a z nabídky nového projektu vyberte "Standardní EXE". Na obrazovce se objeví prázdný formulář.
Přejmenujte svůj projekt a svůj formulář kliknutím na "Project1" na pravé straně obrazovky v seznamu projektů, a zadáním nového názvu do řádku "Název" pole Vlastnosti, které by se mělo objevit pod výpisem projektu podle výchozí. Stiskněte "Enter" pro přijetí nového jména. Udělejte totéž pro svůj formulář (navrhovaný název formuláře je "CalculatorUI"), nezapomeňte zadat podobný název také do vlastnosti "Caption", čímž se změní text v horní liště formuláře. Uložte projekt do nové složky v počítači.
Přidejte do formuláře tlačítka a textové pole. Nejprve přidejte textové pole, ve kterém se budou zobrazovat čísla zadaná v kalkulačce a také výsledky výpočtů. Udělejte to tak, že na panelu nástrojů na levé straně obrazovky vyberete tlačítko TextBox a poté myší přetáhnete velikost a umístění, které chcete pro TextBox. Jakmile umístíte textové pole, můžete změnit velikost a umístění jeho přetažením na jiné místo formuláře nebo přetažením úchytů (malých čtverečků) podél okraje textového pole. Nezapomeňte změnit následující řádky v okně Vlastnosti s vybraným textovým polem: "(Name)" = tbResult, "Zarovnání" = 1- Zarovnat vpravo, "Formát dat" = (vyberte kliknutím na tlačítko "...") Číslo, "Zamčeno" = Pravda a "Text" = 0.
Vyberte ikonu CommandButton na panelu nástrojů a vytvořte první tlačítko stejným způsobem, jakým jste vytvořili TextBox pro přidání tlačítek. Pro informaci použijte kalkulačku Windows ve Standardním zobrazení (Programy > Příslušenství > Kalkulačka) jako základ pro rozvržení kalkulačky, vynechejte tlačítka „MC“, „MR“, „MS“ a „M+“. U každého tlačítka změňte následující vlastnosti (použijte jako příklad tlačítko "+"): "(Name)" = btnPlus, "Caption" = +. Udělejte totéž pro zbývající tlačítka kalkulačky a poté uložte svou práci. Váš formulář by se nyní měl podobat zde uvedenému příkladu.
Přidejte kód. Všimněte si, že pokud vaše tlačítka a textové pole nejsou pojmenovány stejně, jak očekává zde uvedený kód, budete je potřebovat změnit názvy tak, aby odpovídaly vašim tlačítkům a textovému poli, nebo změnit tlačítka a textové pole tak, aby tomu odpovídaly kód. Nejprve musíme vytvořit několik proměnných pro zpracování vstupu kalkulačky:
Dim doleva jako řetězec, sprava doleva jako řetězec, operátor jako řetězec Dim iLeft as Double, iRight as Double, iResult as Double Dim bLeft as boolean
Každý výpočet se skládá ze čtyř částí: čísla nalevo od operátoru (sLeft, iLeft), operátoru (sOperator), čísla napravo od operátoru (sRight, iRight) a výsledku (iResult). Abychom mohli sledovat, zda uživatel zadává levé nebo pravé číslo, musíme vytvořit booleovskou proměnnou bLeft. Pokud má bLeft hodnotu true, zadává se levá strana výpočtu; pokud je bLeft nepravda, zadává se pravá strana.
Inicializujte proměnnou bLeft. Toho dosáhneme vytvořením podprogramu Form_Load, který můžete buď napsat, jak je zde uvedeno, nebo jej automaticky vytvořit dvojitým kliknutím na jakoukoli část formuláře, která není pokryta tlačítkem nebo textovým polem. Uvnitř funkce musíme nastavit bLeft na True, protože první zadané číslo bude levá část:
Vytvořte podprogram, který bude zpracovávat kliknutí na libovolné z číselných tlačítek. Vytváříme to jako podprogram, protože pro každé tlačítko používáme identický kód a použití podprogramu znamená, že nemusíme desetkrát opakovat stejný kód. Pod řádek End Sub podprogramu Form_Load zadejte následující:
Jak vidíte, tato funkce přebírá parametr řetězce sNumber, který bude obsahovat číslo, na které uživatel klikl. Pokud má bLeft hodnotu true, toto číslo se připojí k řetězci, který představuje zadávané číslo, sLeft, a textové pole tbResult se aktualizuje, aby zobrazilo nové číslo. Pokud je bLeft nepravda, stejná operace se místo toho provede pomocí sRight.
Nakonec vytvořte funkci události Click pro každé číslo, které volá náš podprogram AddNumber. Můžete to udělat jednoduše dvojitým kliknutím na každé číselné tlačítko, které vytvoří strukturu podprogramu za vás. Poté přidejte volání do AddNumber a nahraďte číslo v uvozovkách číslem spojeným s tlačítkem. Pro tlačítko nula bude váš kód vypadat takto:
Podobně pro jedno tlačítko bude váš kód vypadat takto:
Ovládejte operátory: plus, mínus, časy a dělení. Uděláme to jako poslední krok, vytvoříme podprogram, který se volá v událostech Click pro tlačítka operátora. Podprogram bude vypadat následovně:
Pokud má bLeft hodnotu true, což znamená, že uživatel právě zadal levou část výpočtu, nastaví tento podprogram proměnná sOperator, kterou jsme vytvořili v kroku 5, aby se rovnala zadanému operátoru, který je předán AddOperator jako řetězec sNewOperator. Druhým krokem je nastavení bLeft na False, protože zadání operátora znamená, že uživatel dokončí zadávání levé strany rovnice. Abychom mohli zpracovat položky, které spojují více operátorů dohromady, například 9 * 3 * 2 * 6, musíme také zkontrolujte, zda je bLeft false, což znamená, že uživatel zadal operátor tam, kde jsme očekávali se rovná. Nejprve zavoláme událost Click pro tlačítko rovná se (popsáno v dalším kroku), které provede výpočet a nastaví tbResult na výsledek již zadaného. Potom zrušíme sRight, aby uživatel mohl zadat další číslo, a nastavíme bLeft na False, aby program věděl, že jako další vstupujeme na pravou stranu výpočtu.
Nakonec přidejte volání AddOperator k události Click každého tlačítka operátora pomocí stejné metody, jakou jsme použili v kroku 7 k vytvoření událostí Click pro číselná tlačítka. Váš kód pro tlačítko plus bude vypadat takto:
Vytvořte událost Click pro tlačítko rovná se, což je nejsložitější kód v tomto programu. Vytvořte strukturu podprogramu stejně jako u ostatních tlačítek poklepáním na tlačítko rovná se ve formuláři. Po zadání kódu bude váš podprogram vypadat takto:
První tři řádky kódu zkontrolují, zda byly obě strany výpočtu zadány spolu s operátorem. Pokud je zadána pouze levá strana a operátor, hodnota levé strany se zkopíruje na pravou, takže můžeme napodobit standardní chování kalkulačky pro zpracování položky, jako je 9 * =, která násobí 9 sama o sobě, aby dostal výsledek 81. Zbytek kódu poběží, pouze pokud je zadán levý, pravý a operátor, a začíná kopírováním řetězce čísel do našich iLeft a iRight Double-type proměnných, které mohou dělat skutečné výpočty. Příkaz Select Case nám umožňuje spustit jiný kód v závislosti na tom, který operátor byl zadán, a provede skutečný výpočet a umístí výsledek do iResult. Nakonec aktualizujeme textové pole s výsledkem, zkopírujeme výsledek do sLeft, resetujeme sRight a nastavíme bLeft = True. Tyto poslední řádky nám umožňují vzít výsledek výpočtu a použít jej k provedení dalšího výpočtu.
Obsluhujte poslední tři provozní tlačítka: sqrt, %, a 1/x. Pro událost Click tlačítka druhé odmocniny bude váš kód vypadat takto:
Prvních 11 řádků kódu zajišťuje, že pokud nemáme zadanou hodnotu pro žádnou stranu rovnice, dosadíme nulu místo toho, abychom se pokusili zkopírovat prázdný řetězec do iLeft nebo iRight, což vygeneruje chyba. Prostřední čáry provádějí funkci druhé odmocniny v aktuální části výpočtu, buď vlevo nebo vpravo. Nakonec obrátíme kontroly, které jsme provedli na začátku, takže nula se zkopíruje jako prázdný řetězec zpět do sLeft a sRight.
Pro tlačítko procent je kód podobný, až na jednu výjimku: operaci procent lze provést pouze v případě, že je zadána levá i pravá strana.
Nakonec událost Click 1/x neboli zlomek, která je velmi podobná výše uvedenému kódu:
Přidejte kód pro ovládání tlačítek C a CE. C vymaže všechny vstupy do kalkulačky, zatímco CE vymaže pouze aktuálně zadávané číslo.
Spusťte program kalkulačky a proveďte libovolný výpočet. Tuto kalkulačku lze snadno rozšířit, aby zvládla více operací, složitější výpočty nebo dokonce mohla být vědeckou kalkulačkou s trochou práce navíc.
Spropitné
Pokud narazíte na chyby, zkontrolujte svůj kód řádek po řádku se zaměřením na řádky, které VB označil jako obsahující chyby, a porovnejte jej s výše uvedeným kódem. Kód obsažený v tomto článku byl plně testován, aby byl bezchybný, takže jeho věrné zkopírování povede k funkčnímu programu. Pokud používáte předchozí verzi jazyka Visual Basic, můžete se setkat s problémy, kdy byly provedeny změny v jazyce napříč verzemi. Předchozí verze VB například používaly Math. Sqrt() místo Math. Sqr() pro provedení operace druhé odmocniny. Podívejte se na reference pro vaši konkrétní verzi a zjistěte, zda jsou nutné nějaké změny.