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

Русский_Проект: Изучение Visual Basic


Служба Рассылок Subscribe.Ru
Русский_Проект: Рассылка Вступление
Озон. Конец партнерства
Разработчикам игр
Форум
Задачки
Советы
Автоматический запус диска
Функции Windows API

Вступление

Здравствуйте! Ну вот и наступил Новый 2002 год! (И Старый Новый год тоже). Число подписчиков перевалило за отметку 4000.
Всем здоровья и удачного программирования! На этом вступление заканчивается. Аплодисменты.

Озон. Конец партнерства

Я решил прекратить свое партнерство с интернет-магазином Озон. И вот почему. Решил я заказать две вещички. На складе они были. Товар был не дефицитным, практически в любом среднем магазине можно было купить, но было лень ехать. При заказе прочитал, что товар отгружается в течении суток и будет доставлен в течении недели. Я ждал три дня. И стал представлять такую картину. Курьер три дня добирается до склада (возможно в одном здании с офисом) и еще четыре дня ему необходимо для доставки заказчику, который живет в этом же городе (может он идет пешком?). Я подумал, что понятие сервис в этой конторе просто отсутствует как класс. Одним словом, ЗАЖРАЛИСЬ! Одним словом, рубрики Книги скоро больше не будет. Те, для кого интернет-магазины - единственная возможность купить книги, и без моей подсказки найдут их адреса.

Разработчикам игр

Информация для разработчиков игр. Недавно наткнуля на программу, которая позволяет создавать игры на DirectX. Данная программа является симбиозом двух программ Basic и DirectX и называется DarkBasic. Синтаксис команд практически идентичен QuickBasic/VB. При этом можно создавать одиночные EXE-файлы, не требующие никаких run-time библиотек! Можете скачать демо-версию для знакомства. А недавно открылся официальный русский сайт этого продукта. Причем на сайте утверждается, что продукт полностью локализован, плюс прилагается толстая документация. Продается в коробке с двумя дисками, содержащими программу, исходники нескольких игр и т.п. Все на DarkBasic. Стоимость программы 20 долларов. Попробуйте.

Форум

С недавних пор мне стали приходить письма со странным содержанием, типа: Срочно помогите решить одну задачу! Или, Не могу решить проблему - посмотрите и ответьте сегодня!
Никогда не пробовали обратиться с такой же просьбой к Биллу Гейтсу? Не понимаю, почему я срочно должен решать чьи-то проблемы.
Другая категория упирает на возраст. Пишут:
Мне 5, 8, 12 лет, поэтому не удивляйтесь на глупый/легкий вопрос - я только начинаю программировать. А как создать Проводник средствами VB (ну очень легкий вопрос)
А теперь внимание! С этого года все вопросы по программированию принимаются только через форум по адресу http://narod.yandex.ru/userforum/?owner=rusproject
Все письма, присланные на мой email будут игнорироваться"!!!
Если ваша проблема мне знакома, то я отвечу на форуме или письмом. Если нет, то извините, утруждать себя решением вашей проблемы не буду. Мне за это не платят, а у меня своих забот хватает. Надеюсь, что среди 4 000 подписчиков найдутся добровольные помощники, готовые вам помочь.

Задачки

Рубрика для любителей решать задачки.
Условие.
Дается натуральное двухзначное число. Поменяв местами цифры числа, получить другое число. Подсчитать абсолютную величину разности между этими числами.
Решения задачи можете присылать по адресам vbasic@rambler.ru или wwwind@aport.ru

Советы

Изучайте среду разработки IDE
Тем самым, Вы можете увеличить вашу производительность. Например, в вашем проекте используются длинные имена переменных MyFistVariable, MySecondVariable. При частом использовании этих имен приходится тупо набивать слова. Но есть способ лучше. Напечатав, скажем три первые буквы, нажмите комбинацию клавиш Ctrl и Space(пробел) и редактор кода автоматически дополнит ваше слово (или предложит на выбор варианты). Попробуйте!

Автоматический запус диска

На форуме был задан вопрос, как создать диск с автозапуском. Вообще-то вопрос не связан с программированием на VB. Кроме того, существует множество программ для реализации этих решений. Но мы с вами научимся делать это самостоятельно. Для создания диска с автозапуском Вам необходимо создать простенький текстовый файл с именем autorun.inf и расположить ее в корневой папке диска. Теперь о содержании файла. Существует несколько параметров, но мы остановимся на некоторых
Сначала идет строчка [autorun]
Затем идут сами параметры, например
open=Yourprogram.exe
icon=Your.ico
Shell\ReadMe=Русский_Проект
Shell\ReadMe\Command=Notepad.exe Readme.txt
В параметре open вы задаете имя вашей программы для запуска. Программа должна быть компактной.
Параметр icon определяет вид значка диска в Проводнике/Мой компьютер.
Третий параметр определяет строчку меню при правом щелчке мышью
Последний параметр запустит заданный файл этой командой меню ( Не забудьте поместить для данного примера файл Notepad.exe в корневую папку диска.
Кстати, эти правила распространяются и на жесткие диски. Расположите autorun.inf, ваш значок и файл readme.txt в корень вашего жесткого диска. Перезагрузитесь и увидите результат!

Функции API

Функция SetTimer

Declare Function SetTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long

SetTimer создает таймер с заданным значением интервала. Созданный таймер будет генерировать интервалы до тех пор, пока не будет вызвана функция KillTimer, удаляющая его. Использование этой функции необходимо там, где возможности встроенного vb-элемента управления Timer недостаточны. Элемент управления Timer может использовать интервал чуть более одной минуты. А функция способна задать интервал в 24.86 дня!

Параметры

hWnd
Дескриптор окна для создаваемого таймера. Для создания таймера, не связанного с никаким окном используйте 0
nIDEvent
Ненулевое значение для задания идентификатора таймера. Если hWnd равен 0, то параметр игнорируется
uElapse
Интервал таймера в миллисекундах. Не превышайте предел 2 147 483 647 миллисекунд. Учтите, что физический таймер тикает приблизительно 18,21 раза в секунду (точное значение составляет 1000/54,925). Поэтому, даже если вы укажете, что таймер должен тикать каждую миллисекунду, сообщения будут приходить с интервалом не менее 55 миллисекунд
lpTimerFunc
Указатель на функцию обратного вызова TimerProc. Если равен 0, то посылается сообщение WM_TIMER заданному окну

Пример

' Пример создания таймера
' Вставьте код в стандартный модуль

Declare Function SetTimer Lib "user32" _
  (ByVal hwnd As Long, _
  ByVal nIDEvent As Long, _
  ByVal uElapse As Long, _
  ByVal lpTimerFunc As Long) As Long

Declare Function KillTimer Lib "user32" _
            (ByVal hwnd As Long, _
            ByVal nIDEvent As Long) As Long

Global iCounter As Integer

Sub TimerProc(ByVal hwnd As Long, _
      ByVal uMsg As Long, _
      ByVal idEvent As Long, _
      ByVal dwTime As Long)

  iCounter = iCounter + 1
  Form1.Text1.Text = CStr(iCounter)
End Sub

' Добавьте на форму кнопку Command1
' и текстовое поле Text1

Dim lngTimerID As Long
Dim BlnTimer As Boolean

Private Sub Form_Load()
 BlnTimer = False
 Command1.Caption = "Включить таймер"
End Sub

Private Sub Command1_Click()
' Включаем и выключаем таймер

  If BlnTimer = False Then
    lngTimerID = SetTimer(0, 0, 200, AddressOf TimerProc)
       If lngTimerID = 0 Then
         MsgBox "Таймер не создан. Конец программы"
         Exit Sub
       End If
     BlnTimer = True
     Command1.Caption = "Выключить таймер"
   Else
      lngTimerID = KillTimer(0, lngTimerID)
         If lngTimerID = 0 Then
           MsgBox "Не могу убить таймер"
         End If
       BlnTimer = False
       Command1.Caption = "Включить таймер"
   End If

End Sub
Полный текст с описанием этой функции вы найдете в справочнике по функциям Windows API, который скоро появится на сайте!

Не стесняйтесь, высылайте ваши предложения по адресу vbasic@rambler.ru
Посетите сайт Русский_Проект, где вы найдете другую интересную информацию
Давайте делать рассылку вместе! Удачи!



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное