Създаване и използване на ресурси в Visual Basic 6

click fraud protection

След Visual Basic студентите научават всичко за цикли и условни операции и подпрограми и т.н., една от следващите нещата, за които често питат, е: „Как да добавя растерна карта, WAV файл, персонализиран курсор или някакъв друг специален ефект?“ един отговорът е файлове с ресурси. Когато добавите файл с помощта на файлове с ресурси на Visual Studio, те са интегрирани директно във вашия проект Visual Basic за максимална скорост на изпълнение и минимална караница опаковане и разполагане Вашият приложение.

Файловете с ресурси са достъпни както в VB 6, така и в VB.NET, но начинът, по който се използват, като всичко останало, е доста различен между двете системи. Имайте предвид, че това не е единственият начин за използване на файлове в VB проект, но има реални предимства. Например, можете да включите растерна карта в a PictureBox контролирайте или използвайте mciSendString API на Win32. "MCI" е префикс, който обикновено показва мултимедиен команден низ.

Създаване на ресурсен файл в VB 6

Можете да видите ресурсите в даден проект както в VB 6, така и във VB.NET в

instagram viewer
Project Explorer прозорец (Explorer Solution във VB.NET - те трябваше да го направят малко по-различно). Нов проект няма да има, тъй като ресурсите не са инструмент по подразбиране в VB 6. Така че нека добавим прост ресурс към проект и да видим как се прави това.

Първата стъпка е да стартирате VB 6, като изберете a Стандартен EXE проект на нов в диалоговия прозорец за стартиране. Сега изберете Add-Ins опция в лентата с менюта и след това Мениджър на добавки ... Това ще отвори диалоговия прозорец на Add-In Manager.

Превъртете надолу в списъка и намерете VB 6 Resource Editor. Можете просто да щракнете двукратно върху него или да поставите отметка в Натоварен / разтоварен поле, за да добавите този инструмент към вашата VB 6 среда. Ако смятате, че ще използвате Редактора на ресурси много, тогава можете също да поставите отметка в полето Заредете се при стартиране и няма да се налага да преминавате отново през тази стъпка в бъдеще. Щракнете върху „OK“ и Редакторът на ресурсите се появява. Готови сте да започнете да добавяте ресурси към вашия проект!

Отидете на лентата с менюта и изберете проект тогава Добавяне на нов ресурсен файл или просто щракнете с десния бутон на мишката в редактора на ресурси и изберете "Отваряне" от контекстното меню, което се появява. Ще се отвори прозорец, който ще ви подкани за името и местоположението на ресурсен файл. Мястото по подразбиране вероятно няма да е това, което искате, така че отидете до папката на вашия проект и въведете името на вашия нов ресурсен файл в Име на файл кутия. В тази статия ще използвам името "AboutVB.RES" за този файл. Ще трябва да потвърдите създаването на файла в прозорец за проверка и файлът "AboutVB.RES" ще бъде създаден и попълнен в Редактора на ресурсите.

VB6 поддържа

VB6 поддържа следното:

  • Редактор на низови таблици
    ("Редактиране на низови таблици ...")
  • Персонализирани курсори - "CUR" файлове
    ("Добавяне на курсор ...")
  • Персонализирани икони - "ICO" файлове
    ("Добавяне на икона ...")
  • Персонализирани растерни файлове - "BMP" файлове
    ("Добавяне на растерна карта ...")
  • Определени от програмиста ресурси
    ("Добавяне на персонализиран ресурс ...")

VB 6 предоставя прост редактор за низове, но трябва да имате файл, създаден в друг инструмент за всички останали възможности за избор. Например, можете да създадете BMP файл с помощта на простата програма Windows Paint.

Всеки ресурс във файла с ресурс се идентифицира с VB 6 от Документ за самоличност и име в Редактора на ресурси. За да направите ресурс достъпен за вашата програма, вие ги добавяте в Редактора на ресурси и след това използвате идентификатора и ресурса "Тип", за да ги насочите към вашата програма. Нека добавим четири икони към ресурсния файл и да ги използваме в програмата.

Когато добавите ресурс, самият действителен файл се копира във вашия проект. Visual Studio 6 предоставя цяла колекция от икони в папката ...

C: \ програмни файлове \ Microsoft Visual Studio \ общи \ графики \ икони

За да продължим с традицията, ще подберем четирите „елемента“ на гръцкия философ Аристотел - Земя, Вода, Въздух и Огън - от поддиректорията „Елементи“. Когато ги добавите, идентификаторът се назначава от Visual Studio (101, 102, 103 и 104) автоматично.

За да използваме иконите в дадена програма, използваме функция VB 6 "Load Resource". Има няколко от тези функции за избор:

  • LoadResPicture (индекс, формат) за растерни картинки, икони и курсори

Използвайте VB предварително зададени константи vbResBitmap за растерни карти, vbResIcon за икони и vbResCursor за курсори за параметъра "формат". Тази функция връща снимка, която можете да използвате директно. LoadResData (обяснено по-долу) връща низ, съдържащ действителните битове във файла. Ще видим как да го използваме, след като демонстрираме икони.

  • LoadResString (индекс) за струни
  • LoadResData (индекс, формат) за всичко до 64K

Както бе отбелязано по-рано, тази функция връща низ с действителните битове в ресурса. Това са стойностите, които могат да се използват за параметър за формат тук:

1 Ресурс на курсора
2 Bitmap ресурс
3 Ресурс за икони
4 Меню ресурс
5 Диалогово поле
6 Низ ресурс
7 Ресурс на директория на шрифта
8 ресурс на шрифта
9 Таблица с акселератор
10 Дефиниран от потребителя ресурс
12 Групов курсор
14 Групова икона

Тъй като в нашия ресурсен файл AboutVB.RES имаме четири икони, нека използваме LoadResPicture (индекс, формат) за да ги присвоите на свойството Picture на CommandButton във VB 6.

Създадох приложение с четири OptionButton компоненти с етикет Земя, Вода, Въздух и Огън и четири клик събития - по един за всяка опция. Тогава добавих a CommandButton и промени свойството Style на „1 - Графично“. Това е необходимо, за да можете да добавите персонализирана икона към командния бутон. Кодът за всяко OptionButton (и събитието за зареждане на формуляр - за да се инициализира) изглежда така (с идентификаторите и надписа, съответно променени за другите събития на OptionButton Click):

Персонализирани ресурси

„Голямата сделка“ с персонализираните ресурси е, че обикновено трябва да предоставите начин да ги обработите в програмния си код. Като Microsoft заявява, "това обикновено изисква използването на Windows API обаждания." Това ще направим.

Примерът, който ще използваме, е бърз начин за зареждане на масив с поредица от постоянни стойности. Не забравяйте, че ресурсният файл е включен във вашия проект, така че ако стойностите, които трябва да заредите промяна, ще трябва да използвате по-традиционен подход, като последователен файл, който отваряте и Прочети. API на Windows, който ще използваме е CopyMemory API. CopyMemory копира блока памет в различен блок памет, без оглед на типа данни, който се съхранява там. Тази техника е добре позната на VB 6'ers като ултра бърз начин за копиране на данни вътре в програмата.

Тази програма е малко по-ангажирана, защото първо трябва да създадем ресурсен файл, съдържащ серия от дълги стойности. Просто присвоих стойности на масив:

Мъжки дълги (10) Както дълги
дълги (1) = 123456
дълги (2) = 654321

... и така нататък.

Тогава стойностите могат да бъдат записани във файл, наречен MyLongs.longs използвайки оператора VB 6 "Put".

Добре е да запомните, че файлът с ресурси не се променя, освен ако не изтриете стария и добавите нов. Така че, използвайки тази техника, ще трябва да актуализирате програмата, за да промените стойностите. За да включите файла MyLongs.longs във вашата програма като ресурс, добавете го към файл с ресурси, като използвате същите стъпки, описани по-горе, но щракнете върху Добавяне на персонализиран ресурс ... вместо Add Icon... След това изберете файла MyLongs.longs като файл за добавяне. Вие също трябва да промените "Тип" на ресурса, като щракнете с десния бутон върху този ресурс, изберете "Свойства" и промените Тип на "копнее". Обърнете внимание, че това е типът на вашия файл MyLongs.longs.

За да използвате файла на ресурса, който сте създали за създаване на нов масив, първо декларирайте повикването на API на Win32 CopyMemory:

След това прочетете ресурсния файл:

След това преместете данните от байтовия масив в масив с дълги стойности. Разпределете масив за стойностите longs, като използвате целочислената стойност на дължината на низа от байтове, разделен на 4 (тоест 4 байта на дълга):

Сега това може да изглежда като много проблеми, когато можете просто да инициализирате масива в събитието Form Load, но наистина демонстрира как да използвате персонализиран ресурс. Ако имате голям набор константи, с които трябва да инициализирате масива, той ще работи по-бързо от всеки друг метод, за който се сещам и не би трябвало да имате отделен файл, включен в молбата ви то.

instagram story viewer