Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Visual Basic - Трюки и Хитрости, советы и ответы на вопросы


Служба Рассылок Городского Кота
VB Хитрости - советы и ответы на вопросы

Здравствуйте, уважаемые читатели.

Старательно отвечал на ваши вопросы, присланные в письмах.
А сейчас подумал, что может эти ответы будут полезны более чем одному человеку.

У меня возникла проблема. Вот в чем она заключается: У некоторых людей стоят нерусифицированные операционные системы, и возникает проблема с русскими шрифтами. Подскажите, как при инсталляции правильно установить русские шрифты, или есть еще какие-нибудь методы устранения этой проблемы.

Нет, просто так эту поблему не решить. Т.е. фонты ты можешь поставить, но во первых это не решит проблем русификации. Во вторых для NT и для 9x русификация это соверщенно разные процессы. Может отдельные вещи юзер и сможет читать, но без гарантии. Проблему решать надо кардинально Сходи на яндекс, и поищи по выражению "Русификация windows " после чего наиболее толковую ссылку давай в ридми к программе. Т.е. я имею в виду - что юзер должен сам позаботиться об этом, программа не должна навязывать русификацию при установке

Вы писали про обеспечении уникальности строк , используя коллекции для этого Так и непонятно, как это делать. пришлите пожалуйста код

dim Unic as new collection
dim i as integer

on error resume next
for i = 1 to list1.listcount
    unic.add list1.list(i) ,list1.list(i)
    if err.number <> 0 then
        'эта строка уже встречалась
   else
        'эта строка не  встречалась еще
    end if
next i

Прочитал статью в рассылке о сетапах, и могу предложить ещё более
кардинальное решение проблемы.
Как известно сейчас среди разработчиков стал очень популярен Windows
Installer, так называемые msi - файлы.
Так вот для Visual Studio 6.0 сделан специальный Visual Studio Installer, с
помощью которого достаточно удобно паковать все необходимые библиотеки
Он также просматривает проект и собирает все необходимые ссылки, да и
программу установки делает приятную.
Единственное что, это уже из личного опыта, к нему все-таки нужно
дополнительно устанавливать mdac_typ.exe если в проекте используются DAO,
ADO и проч.
Есть ещё одна полезная утилитка, с помощью которой можно проверять и
устанавливать необходимые для ВБ библиотеки - называется VB Setup Wrapper,

Ну а уж если делать программу установки действительно самой маленькой, то на
мой взгляд ничего лучше простого inf файла в сочетании с CabManager не
бывает. Не спорю в этом случае программу установки действительно надо писать
ручками, зато размер программы установки просто "убивает".

Спасибо Evgeny Gladishev за информацию

Подскажите пожайлуста, можно ли увеличить значение переменной типа 'Date', в которой хранится значение времени, увеличить, скажем на одну минуту? И если это возможно, как это сделать?

Используй функцию DateAdd

В одном из выпусков рассылки Вы рассказали о том, как создавать "контролы" на форме в процессе выполнения программы. Но этот метод хорош когда знаеш заранее сколько элементов быдет создано на форме, а как быть когда неизвестно сколько элементов придётся создать (1 ... n) и как обработать события этих контролов

Если хочется создать кучу контролов - то удобнее всего создать один контрол - прототип, с индексом 0 , и потом в рантайм load столько , сколько нужно. При этом эвенты будут случаться в массиве(arrey) контролов, различать котроые придется по индексу. Важно не забывать делать контролы visible = true после Load

Я давно программирую на VB, и в последнее время в рассылках о других языках попадаются сведения как можно делать нестандартный вид формы, в ввиде круга или других фигур. А можно-ли такое делать в VB? Недавно я приобрел шестую версию VB и там можно использовать файл ресурса(*.res), как доставать от туда рисунки или текст я знаю, но как от туда можно использовать другие файлы например AVI или Wave?

На оба вопроса ответ у меня на сайте - первй ворос - в примерах, второй , статья как работать с ресурс файлами

Как использовать ProcessBar ? Особенно, если необходимо отражать его в дочерней форме? (т.е. для ProcessBar формируется своя форма, со своим именем, которое должно исчезать после завершения каких либо процессов в другой форме). Есть ли какие либо API, с помощью которых можно решить эту проблему?

Не надо сразу хватать ружье - API тут не причем .

В самом деле очень просто. Пусть на form1 вы запускаете длительный апдейт на форм 2 расположен прогресс бар, и кнопка cancel

form1
   Do until rs.eof
      rs.fields(0) = "y-y-y!"
      rs.update
      rs.movenext
      form2. progress1.value = ...
      if form2.cancel = true then
           exit do
      end if
      doevents

   loop

         
form2
      public cancel as boolean

      Sub cmdCancel_click
         cancel = true
      end sub



Вот и все. Не точно помню на счет свойства value прогрессбара, но там что -то в этом духе- просто посмотри в хелпе

Ну и на будущее - смотрю я, стоит рассазать вам о Public методах и свойствах и использовании их в классах и в формах, как частных случаях классов. Не возражаете?


Традиционная рекомендация из серии "куда пойти учиться" - по мнению читателей (а читатели выражают свое мнение не только письмами, но и покупками, статистика которых вполне доступна) лучший печатный учебник по VB . Отзывы читателей об этой книге можно посмотреть у меня на сайте - здесь
Книга, весьма полезная для понимания работы с API. А учитывая ее смешную стоимость - 45 рублей.... Короче, рекомендую

Да, кстати, получил вот такое письмо

Просьба: опубликуй мой e-mail в рассылке под заголовком типа для тех, кто хочет общаться на тему VB. Инета у меня нет. Да и тяжело доставать нужную информацию. Поэтому общение с тобой и с другими поможет развиваться. Хоть не будешь чувствовать себя одиноким. Периферия, блин (:-( Mail To Me: baddy@fregat.mk.ua

Peter Dyachenko

 

Успехов в программировании!

Борис Рудой

Автор сайта - Visual Basic на русском



http://subscribe.ru/
E-mail: ask@subscribe.ru

В избранное