Окна... Не только Windows 9x.
1) mIRC32 а-ля Photoshop 6.0
Как то раз, часа в 2 ночи, на IRC залетает какой-то чел и начинает судорожно у всех спрашивать, как в мирке... РИСОВАТЬ? Ну все,
естественно, его посылают или дают нелепые советы, типа, набери "/quit" или "/run con/con" и прочую лабуду.
Но несмотря на глупость, к моему удивлению, mIRC32 позволяет рисовать различные фигуры, сохранять или загружать их в bmp-файлах и многое другое.
Рассмотрим банальный пример. Нарисуем обычный домик %) в отдельном окне, которое назовем @domik.
Для этого добавим небольшой скрипт в раздел Aliases (Alt+A):
dl {
window -kap @domik
drawrect -f @domik 1 5 240 150 180 300
drawline @domik 1 5 242 150 330 5
drawline @domik 1 5 330 5 416 150
drawrect -f @domik 0 5 295 250 70 90
drawline @domik 1 5 330 250 330 340
drawline @domik 1 5 295 280 330 280
drawtext @domik 1 277 100 Happy new year
}
и выполним команду "/dl". Перед вами предстанет произведение
искусства %) А теперь подробнее, что означают странные цифры и команды:
1. window -kap @domik - Создаем графическое (-p) окно @domik, активизируем его (-a) и скрываем символ собаки перед именем окна для красоты 😉 (-k).
2. drawrect -f @domik 1 5 240 150 180 300 - Рисуем большой прямоугольник и заливаем его черным цветом
3.drawline @domik 1 5 242 150 330 5
drawline @domik 1 5 330 5 416 150
drawrect -f @domik 0 5 295 250 70 90
drawline @domik 1 5 330 250 330 340
drawline @domik 1 5 295 280 330 280 - Рисуем остальные части домика
4. drawtext @domik 1 277 100 Happy new year - Поздравление с новым годом 😉
Вот, собственно, и все, что нужно для начинающего художника... А теперь
сохраним свой эскиз в bmp файле, набрав "/drawsave @domik
c:\dom.bmp", и рисунок успешно сохранится у тебя на винте.
2) Ох уж эти окна
Еще немного об окнах. Окна бывают не только графические, но и текстовые, с возможностью выбрать что-либо из списка (как окна, вызываемые при "/list" или "/links") и другие.
Для примера сделаем небольшую программу-калькулятор, которая будет выполнять элементарные действия над числами 😉
Перейдем в меню "Remote" (Alt+R) и напишем туда следующее:
menu @calculator {
dclick: cproc
}
Этим скриптом мы создали сценарий на дабл-клик в окне @calculator.
Далее пишем снова в "Aliases":
calc {
window -kla @calculator
aline 2 @calculator 1. Сложение
aline 3 @calculator 2. Вычитание
aline 4 @calculator 3. Умножение
aline 5 @calculator 4. Деление
}
Этим алиасом создаем окошко-список @calculator (-l) и добавляем в него строчки (названия операций) командой "/aline [цвет] <окно> <текст>". Особо любопытные могут сохранить скрипт и запустить команду "/calc", но mIRC будет ругаться при попытке выбрать что-либо, что нет такой команды "cproc". Вот ее-то мы сейчас и создадим (также в "Aliases"):
cproc {
dline @calculator 5
if ($sline(@calculator,1).ln == 1) {
set %coper +
goto oper
}
if ($sline(@calculator,1).ln == 2) {
set %coper -
goto oper
}
if ($sline(@calculator,1).ln == 3) {
set %coper *
goto oper
}
if ($sline(@calculator,1).ln == 4) {
set %coper /
goto oper
}
:oper
set %ca $$?="Первое число"
set %cb $$?="Второе число"
set %cres $calc(%ca %coper %cb)
if (%cres == $null) { aline 4 @calculator Недопустимая операция! | halt }
aline @calculator %ca %coper %cb = %cres
}
Сам скрипт состоит из 2-х частей. В первой - инициализация переменной %coper (что делать-то с числами?), предварительно стираем строку с будущим результатом.
Переменная $sline с ключом ln показывает номер выбранной строки, он-то нам и нужен.
После определения операции переходим ко второй части, непосредственно, запроса 2-х чисел и подсчета результата, который будет аккуратно вписан в 5-ю строку. Если вместо чисел вы введете буквы или разделите на 0, то будет выведена строка "Недопустимая операция!", и скрипт завершит работу.
Вот, собственно, и все... Конечно, про окна можно писать мегабайты информации, т.к. существует туча опций и переменных для работы с ними + куча сценариев и выпадающих меню...
Об этом и многом другом я напишу в следующих частях этой интересной рубрики.