cool web a perfektni rs- Doporucuji

Sunday, April 01, 2007

Vylosování čísel

Dalším krokem v řešení naší úlohy bude vylosovat tři náhodné číslice, každá se objeví v jednom popisném
objektu. Později některé kombinace vylosovaných čísel prohlásíme za výherní čísla. Náhodná čísla se
doposud ve Visual Basicu generovala převážně pomocí spolupráce příkazu Randomize a funkce Rnd, která
vrací náhodné číslo z intervalu 0, 1. Tento způsob použijeme i zde. Nový způsob, který si můžete vyzkoušet,
viz Námět na procvičování na konci oddílu „Alternativní způsob losování čísel“.
Tato etapa řešení se tedy skládá ze dvou kroků:
1. Na místo, kam umisťujeme inicializační kód formuláře (pod řádek TODO ve vygenerovaném kódu
formuláře) přidáme příkaz Randomize.
2. Do událostní procedury Click tlačítka s nápisem Roztočit přidáme kód, jímž přiřadíme do vlastnosti
Text jednotlivých popisných prvků náhodně získanou číslici z intervalu 0 až 9. Hodnotu vrácenou
funkcí Rnd vynásobíme deseti a funkcí Int odřízneme desetinná místa.
VB6. Napíšete-li do kódu příkaz Randomize, zjistíte, že ho vývojové prostředí označí modrou
vlnovkou, což znamená, že je něco v nepořádku. Je to proto, že tento příkaz i funkce Rnd
jsou nyní nahrazeny metodami pojmenovaného prostoru Microsoft.VisualBasic. Compatibility.
VB6, takže příkaz musíte zapsat ve tvaru:
Microsoft.VisualBasic.Compatibility.VB6.Randomize()
To není příliš příjemné, naštěstí se dá kód zkrátit.
3. Přidejte na začátek kódu příkaz Imports pro tento pojmenovaný prostor:
Imports Microsoft.VisualBasic.Compatibility.VB6
Pak budete moci příkaz zkrátit na Randomize()
A také funkci Rnd nebudete muset volat s tak dlouhatánskou kvalifikací.
VB6. K přiřazení hodnoty do popisku dříve stačil například takovýto příkaz:
lblCislo1 = Int(Rnd * 10)
Ve VB.NET to takto napsat nejde, a to dokonce z několika důvodů. Na levé straně tohoto přiřazovacího
příkazu byla vypuštěna tzv. výchozí vlastnost ovládacího prvku, kterou byla dříve
Caption. Výchozí vlastnosti se už ve Visual Basicu nepodporují (kromě těch, které jsou parametrizované
– jimi se v této brožuře zabývat nebudeme), takže je už nemůžete vynechávat.
Mimo jiné se tím přispívá k lepší srozumitelnosti kódu.
Tato věc má další závažný důsledek. Protože nejsou výchozí vlastnosti, není nutné rozlišovat,
zda přiřazujete do vlastnosti (Caption, příkaz Let) nebo zda přiřazujete odkaz na objekt
(příkaz Set). Z toho důvodu se už příkazy Let a Set nepodporují!
Zdá se tedy, že se problém vyřeší jednoduše tím, že se prostě uvede vlastnost explicitně (za předpokladu,
že máte na začátku kódu příkaz Imports pro kompatibilní knihovnu):
lblCislo1.Text = Int(Rnd * 10)

Labels: