Poté, co se studenti jazyka naučí vše o smyčkách a podmíněných příkazech a podprogramech atd., Jeden z dalších věci, na které se často ptají, jsou: „Jak přidám bitmapu, soubor wav, vlastní kurzor nebo nějaký jiný speciální efekt?“ Jeden odpověď zní soubory zdrojů. Když přidáte soubor pomocí souborů prostředků Visual Studio, budou integrovány přímo do projektu jazyka Visual Basic, aby byla zajištěna maximální rychlost provádění a minimální potíže. balení a nasazení vaše aplikace.
Soubory zdrojů jsou k dispozici ve verzi VB 6 i VB.NET, ale způsob, jakým se používají, stejně jako všechno ostatní, je mezi oběma systémy trochu odlišný. Mějte na paměti, že to není jediný způsob, jak používat soubory v projektu VB, ale má to skutečné výhody. Například můžete vložit bitmapu do PictureBox ovládat nebo používat mciSendString Win32 API. „MCI“ je předpona, která obvykle označuje řetězec multimediálních příkazů.
Vytvoření souboru zdroje ve VB 6
Prostředky v projektu můžete vidět ve VB 6 i VB.NET v systému Windows
Prohlížeč projektu okno (Solution Explorer ve VB.NET - museli to udělat trochu jinak). Nový projekt nebude mít žádné, protože prostředky nejsou ve VB 6 výchozím nástrojem. Pojďme tedy k projektu přidat jednoduchý zdroj a uvidíme, jak se to dělá.Prvním krokem je spuštění VB 6 výběrem a Standardní EXE projekt na Nový v úvodním dialogu. Nyní vyberte Doplňky na panelu nabídek a poté na Správce doplňků ... Otevře se dialogové okno Správce doplňků.
Přejděte seznamem dolů a najděte Editor zdrojů VB 6. Stačí na něj dvakrát kliknout nebo můžete do zaškrtávacího políčka vložit zaškrtnutí Loaded / Unloaded box pro přidání tohoto nástroje do prostředí VB 6. Pokud si myslíte, že budete Editor zdrojů používat hodně, můžete také zaškrtnout políčko Načíst při spuštění a v budoucnu nebudete muset tento krok projít. Klikněte na „OK“ a otevře se Editor zdrojů. Jste připraveni začít přidávat zdroje do svého projektu!
Přejděte na panel nabídek a vyberte možnost Projekt pak Přidat nový soubor zdrojů nebo stačí kliknout pravým tlačítkem myši v editoru zdrojů a v kontextové nabídce, která se objeví, vyberte možnost Otevřít. Otevře se okno s výzvou k zadání názvu a umístění souboru prostředků. Výchozí umístění pravděpodobně nebude to, co chcete, takže přejděte do složky projektu a zadejte název nového souboru prostředků do Název souboru box. V tomto článku použiju pro tento soubor název „AboutVB.RES“. V ověřovacím okně budete muset potvrdit vytvoření souboru a soubor „AboutVB.RES“ bude vytvořen a vyplněn do editoru zdrojů.
Podporuje VB6
VB6 podporuje následující:
- Editor tabulky řetězců
("Upravit řetězcové tabulky ...") - Vlastní kurzory - soubory „CUR“
(„Přidat kurzor ...“) - Vlastní ikony - soubory „ICO“
(„Přidat ikonu ...“) - Vlastní bitmapy - soubory „BMP“
(„Přidat bitmapu ...“) - Programátor definované zdroje
(„Přidat vlastní zdroj ...“)
VB 6 poskytuje jednoduchý editor pro řetězce, ale musíte mít vytvořený soubor v jiném nástroji pro všechny ostatní volby. Například můžete vytvořit soubor BMP pomocí jednoduchého programu Malování Windows.
Každý zdroj v souboru prostředků je identifikován na VB 6 pomocí Id a název v editoru zdrojů. Chcete-li zdroj zpřístupnit pro svůj program, přidejte je do editoru zdrojů a poté pomocí ID a zdroje „Type“ na ně přejděte v programu. Pojďme k souboru prostředků přidat čtyři ikony a použít je v programu.
Když přidáte prostředek, zkopíruje se do projektu samotný skutečný soubor. Visual Studio 6 poskytuje celou sbírku ikon ve složce ...
C: \ Program Files \ Microsoft Visual Studio \ Common \ Graphics \ Icons
Abychom šli s tradicí, vybereme z podadresáře Elements čtyři "prvky" řeckého filozofa Aristotela - Zemi, vodu, vzduch a oheň. Když je přidáte, ID je Visual Studio (101, 102, 103 a 104) přiřazeno automaticky.
Pro použití ikon v programu používáme funkci VB 6 „Load Resource“. Existuje několik z těchto funkcí:
- LoadResPicture (index, formát) pro rastry, ikony a kurzory
Použijte předdefinované konstanty VB vbResBitmap pro bitmapy, vbResIcon pro ikony a vbResCursor pro kurzory pro parametr „format“. Tato funkce vrátí obrázek, který můžete použít přímo. LoadResData (vysvětleno níže) vrací řetězec obsahující skutečné bity v souboru. Až ukážeme ikony, uvidíme, jak to použít.
- LoadResString (index) pro řetězce
- LoadResData (index, formát) na cokoli do 64 kB
Jak bylo uvedeno výše, tato funkce vrací řetězec se skutečnými bity v prostředku. Toto jsou hodnoty, které lze použít pro parametr formátu zde:
1 Zdroj kurzoru
2 Zdroj bitmapy
3 Zdroj ikon
4 Zdroj nabídky
5 Dialogové okno
6 Zdroj řetězce
7 Zdroj adresáře písem
8 Zdroj písma
9 Tabulka akcelerátoru
10 Zdroj definovaný uživatelem
12 Skupinový kurzor
14 Ikona skupiny
Protože v našem zdrojovém souboru AboutVB.RES máme čtyři ikony, používejte LoadResPicture (index, formát) a přiřadit je k vlastnosti Picture CommandButton ve VB 6.
Vytvořil jsem aplikaci se čtyřmi Tlačítko Option komponenty označené jako Země, Voda, Vzduch a Oheň a čtyři události Click - jedna pro každou možnost. Pak jsem přidal a CommandButton a změnili vlastnost Styl na „1 - Grafický“. To je nutné, aby bylo možné přidat vlastní ikonu do CommandButton. Kód pro každou OptionButton (a událost Form Load - pro inicializaci) vypadá takto (s ID a Titulek se odpovídajícím způsobem změnil pro další události OptionButton Click):
Vlastní zdroje
„Velký problém“ s vlastními zdroji spočívá v tom, že za normálních okolností musíte poskytnout způsob, jak je zpracovat v programovém kódu. Tak jako Microsoft uvádí, že „to obvykle vyžaduje použití volání API systému Windows.“ To uděláme.
Příklad, který použijeme, je rychlý způsob, jak načíst pole s řadou konstantních hodnot. Pamatujte, že soubor prostředků je součástí vašeho projektu, takže pokud jsou hodnoty, které potřebujete načíst změnit, budete muset použít tradičnější přístup, jako je sekvenční soubor, který otevřete a číst. Windows API, které použijeme, je CopyMemory API. CopyMemory zkopíruje blok paměti do jiného bloku paměti bez ohledu na typ dat, který je v něm uložen. Tato technika je VB 6'ers dobře známa jako velmi rychlý způsob kopírování dat uvnitř programu.
Tento program je trochu více zapojen, protože nejprve musíme vytvořit zdrojový soubor obsahující řadu dlouhých hodnot. Do pole jsem jednoduše přiřadil hodnoty:
Dim longs (10) Tak Long
longs (1) = 123456
longs (2) = 654321
... a tak dále.
Poté lze hodnoty zapsat do souboru s názvem MyLongs.longs pomocí příkazu VB 6 „Put“.
Je dobré si pamatovat, že se zdrojový soubor nezmění, dokud neodstraníte starý a nepřidáte nový. Takže pomocí této techniky byste museli aktualizovat program, aby se hodnoty změnily. Chcete-li soubor MyLongs.longs zahrnout do programu jako prostředek, přidejte jej do souboru prostředků pomocí stejných kroků popsaných výše, ale klikněte na Přidat vlastní zdroj ... místo přidání ikony... Poté vyberte soubor MyLongs.longs jako soubor, který chcete přidat. Musíte také změnit "Typ" zdroje kliknutím pravým tlačítkem myši na tento prostředek, výběrem "Vlastnosti" a změnou Typu na "longs". Toto je typ souboru vašeho souboru MyLongs.longs.
Chcete-li použít soubor prostředků, který jste vytvořili, k vytvoření nového pole, nejprve deklarujte volání API rozhraní Win32 CopyMemory:
Pak si přečtěte soubor prostředků:
Dále přesuňte data z pole bajtů do pole dlouhých hodnot. Přiřaďte pole pro hodnoty longs pomocí celočíselné hodnoty délky řetězce bajtů děleno 4 (tj. 4 bajty na dlouhou):
Nyní se to může zdát jako celá řada problémů, když byste mohli právě inicializovat pole v události Form Load, ale to ukazuje, jak používat vlastní prostředek. Pokud byste měli velkou sadu konstant, které byste potřebovali k inicializaci pole, fungovalo by to rychleji než jakékoli jiné jinou metodu, na kterou si pomyslím, a nemuseli byste mít k aplikaci přiložen samostatný soubor to.