книги хакеры / журнал хакер / специальные выпуски / Специальный выпуск 4_compressed
.pdf
|
|
ТЕОРИЯ |
|
|
|
>СПЕЦВЫПУСК #4 |
006D |
109 |
|
|
|
|
|
|
|
ЛИ” может быть сколько угодно (то есть, может |
ÏÎÊÀ |
(счетчик меньше либо равно девяти) |
знаю такой функции или оператора, |
которая |
|
|
||||||||
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
быть сколько угодно условий и соответствующих |
|
вывести счетчик. |
|
сразу выполняет такое действие. Поэтому, нам |
|
|
||||||||
|
|
|
|
|
им действий). А как вообще составлять эти ус- |
|
прибавить к счетчику единицу. |
нужен шаг детализации - мы опускаемся на |
|
|
|||||||||
|
|
|
|
|
ловия? Очень просто: давай оформим нашу за- |
|
|
|
один шаг с вершины и разбиваем наше дей- |
|
|
||||||||
|
дачу с герлой: |
|
Íó òóò âñå |
и так понятно. Идем дальше. |
ствие на несколько более простых: |
|
|
|
|
||||||||||
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
ЕСЛИ (чел пил пивко с друзьями) |
АГОРИТМ |
АЛГОРИТМОВ |
|
ввести значения x,a,b,c. |
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
топать за подружкой. |
|
|
|
найти дискриминант. |
|
|
|
|
|
|
|||
|
|
|
|
|
|
ИНАЧЕ ЕСЛИ (чел коннектился с подружкой) |
Нда, нисходящая разработка алгоритмов с по- |
найти корни. |
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
топать к пивному ларьку. |
шаговой детализацией. В общем-то, эта штука |
вывести корни. |
|
|
|
|
|
|
|||||
|
|
|
ИНАЧЕ |
|
|
только звучит сложно. Если ты один раз пой- |
|
|
|
|
|
|
|
||||||
|
|
|
|
|
Но и эти действия тоже не осуществимы на из- |
||||||||||||||
|
|
|
|
|
|
сесть и задуматься: какого же хрена я |
мешь, как с ней работать - считай, что ты ее |
||||||||||||
|
|
|
|
|
|
||||||||||||||
|
делал |
|
|
|
навсегда |
освоил - остается только совершен- |
вестных мне языках программирования |
- |
äå- |
|
|
||||||||
|
|
|
|
|
|
четверть часа назад, если я не пил пи- |
ствоваться |
в практике :). Ну как, готов? Тогда |
лаем еще один шаг детализации: |
|
|
|
|
|
|||||
|
âî ñ |
|
|
|
приступим |
-с. Как отмечалось выше, эта фень |
ввести x. |
|
|
|
|
|
|
||||||
|
|
|
|
|
|
друзьями и не коннектился с подруж- |
упрощает |
разработку больших и сложных алго- |
ввести a. |
|
|
|
|
|
|
||||
|
êîé? |
|
|
|
ритмов. |
Смысл ее в том, что она систематизи- |
ввести b. |
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
рует процесс. Короче говоря: технология нисхо- |
ввести c. |
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
Тэкс, что там дальше? А, вот, структура повторе- |
дящей разработки алгоритмов с пошаговой де- |
дискриминант равен разности квадрата b и |
||||||||||||
|
|
|
|
|
ния. Так же как и структура следования, структу- |
тализацией |
- это алгоритм разработки алгорит- |
четырем |
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
ра повторения имеет несколько реализаций. Мы |
ìîâ. Âîò |
сказал-то... :) А почему бы и нет? По- |
произведениям a на c. |
|
|
|
|
|
||||||
|
рассмотрим |
îäíó - îíà |
Ýòà ôåíü |
упрощает разработку |
ÅÑËÈ |
(дискри- |
|
|
|||||||||||
|
|
|
|
|
|
универсальная. |
минант меньше |
íóëÿ) |
|
|
|||||||||
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
больших и |
сложных |
|
|
|
|
â û - |
|
|
||
|
|
|
|
|
|
ПОКА (условие) |
|
|
вести сообщение об |
|
|
||||||||
|
|
|
|
|
|
алгоритмов. |
Смысл ее в том, |
|
|
||||||||||
|
|
|
|
|
|
действие. |
отсутствии корней. |
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
÷òî îíà |
систематизирует |
ИНАЧЕ |
ÅÑËÈ |
|
|
|||||
|
|
|
|
|
Åñëè |
условие верно - вы- |
процесс. Короче говоря: |
|
(дискриминант |
равен |
|
|
|||||||
|
|
|
|
|
полнить действие, а по- |
|
|
|
|
|
íóëþ) |
|
|
|
|
||||
|
|
|
|
|
том снова |
проверить, |
технология нисходящей |
|
|
|
ê î - |
|
|
||||||
|
|
|
|
|
верно ли условие (если |
разработки алгоритмов |
|
рень равен отношению |
|
|
|||||||||
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
верно, еще раз выпол- |
с пошаговой детализацией |
минус b к двум a. |
|
|
||||||||||
|
|
|
|
|
нить действие). И так до |
ИНАЧЕ |
|
|
|
|
|||||||||
|
|
|
|
|
тех пор, пока условие не |
- это алгоритм разработки |
|
|
ïåð- |
|
|
||||||||
|
|
|
|
|
станет неверным. Быс- |
алгоритмов. |
|
|
вый корень равен от- |
|
|
||||||||
|
|
|
|
|
тро смотрим два приме- |
|
|
|
|
|
ношению суммы минус |
|
|
||||||
|
|
|
|
|
ра, и идем дальше. За- |
|
|
|
|
|
b и корня из |
|
|
|
|
||||
|
|
|
|
|
дача один: пить пиво до тех пор, пока не будет |
чему у процесса катания на тачке может быть |
дискриминанта к двум a. |
|
|
|
|
||||||||
|
|
|
|
|
достигнута необходимая кондиция, потом то- |
алгоритм, а у процесса разработки алгоритмов - |
второй корень равен отношению раз- |
|
|
||||||||||
|
|
|
|
|
пать к толчку :). |
|
нет? Тут, как говорится, сам Билл Гейтс велел. А |
ности минус b и корня из |
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
теперь слушай внимательно. Вся эта технология |
дискриминанта к двум a. |
|
|
|
|
||||
|
|
|
|
|
ПОКА (чел не достиг кондиции) |
осуществляется следующим образом: на основе |
вывести первый корень. |
|
|
|
|
||||||||
|
|
|
|
|
|
ïèòü ïèâî. |
|
условия задачи (которое нам дают работодате- |
вывести второй корень. |
|
|
|
|
||||||
|
|
|
|
|
|
топать к толчку. |
|
ли, преподы, которое мы сами себе придумаем |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
и пр.) составляется одно единственное дей- |
Ну вот, теперь любое из этих действий можно |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
Чел проверяет: не дошел ли он до кондиции, ес- |
ствие, которое полностью характеризует назна- |
осуществить практически на любом языке прог- |
|
|
||||||||||
|
|
|
|
|
ли нет пьет пиво, потом опять проверят, если |
чение разрабатываемого алгоритма. Очень час- |
раммирования. Можно также выписать список |
|
|
||||||||||
|
|
|
|
|
опять нет - опять пьет пиво. Когда он, наконец, |
то это действие совпадет с формулировкой за- |
всех существительных ;). Надо еще сказать, что |
|
|
||||||||||
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
достигает кондиции - пропускает действие |
дачи, и это действие называют вершиной алго- |
для больших и сложных задач может понадо- |
||||||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
“пить пиво”, и выполняет следующее за структу- |
ритма (скоро поймешь, почему). Например, ес- |
биться большее количество шагов детализации. |
||||||||||||
|
|
|
|
|
рой повторения действие - “топать к толчку”. В |
ли стоит задача: найти корни квадратного урав- |
Но согласись, что это все же лучше, чем упе- |
||||||||||||
|
|
|
|
|
этом алгоритме также задействована структура |
нения, то псевдокод вершины алгоритма реше- |
реться в задачу, не зная толком с какого конца к |
||||||||||||
|
|
|
|
|
следования (действие “топать к толчку” следует |
ния этой задачи так и будет выглядеть: |
ней подходить. Тут ты двигаешься по заранее |
||||||||||||
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
за структурой повторения. |
|
|
|
|
протоптанной дорожке (а протоптали ее те са- |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
найти корни квадратного уравнения. |
мые крутые лбы) и свернуть в неправильную |
||||||||
|
|
|
|
|
Задача два: напечатать все числа от 0 до 9. |
|
|
|
сторону тебе вроде как и негде. Ну все, удачных |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
Но мы ведь не можем это действие осуществить |
тебе кодингов и алгоритмов. Мыль, если что не |
||||||||
|
|
|
|
|
|
установить счетчик в нуль. |
на каком-либо языке - я, во всяком случае, не |
понял. |
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
006E |
КОНСТРУКТОР |
>СПЕЦВЫПУСК #4 |
|
|
J++ ССАМОГО Н |
|||
|
ТЕКСТОВЫЙ Р |
|||
|
MOOF (MOOF@xakep.ru ; http://MOOF.da.ru ) |
|
||
|
|
|
|
без каких-либо дополнительных изменений. |
|
|
|
|
То есть, написав программу под Окна, ты мог |
|
|
|
|
бы запустить ее и на Юникс, и на Макинтош. |
|
|
|
|
Некоторые путают два языка java и javascript. |
|
|
|
|
Хоть они и содержат слово ява - это два раз- |
|
|
|
|
ных языка. Так вот, Майкрософт в один прек- |
|
|
|
|
расный момент решила, что жаба достаточно |
|
|
|
|
хороша, но ее надо дополнить расширениями, |
|
|
|
|
которые будут работать только под Окнами. |
|
|
|
|
Сказано - сделано. Так на свет появился Visual |
|
|
|
|
J++. |
|
|
|
|
Детство |
|
|
|
|
Так выглядит j++ после первого запуска. |
|
|
|
|
Не пугайся. Жми на File > New Project. Перед |
|
|
|
|
тобой появится диалог, в котором ты можешь |
|
|
|
|
выбрать, какой именно тип приложения ты хо- |
|
|
|
|
чешь выбрать. Выбери Visual J++ Projects > |
|
|
|
|
Applications. И в правом поле выбери |
|
|
|
|
Application Wizard. Затем в поле Name введи |
|
|
|
|
имя нашей с тобой программы. Пусть она бу- |
|
|
|
|
дет называться “XakepPad2k”. |
|
екстовый редактор :). Как много в рынок и приобрети среду разработки на паре- |
|
||
|
этом! Ну, в слове этом. Кстати, уга- |
тройке компакт-дисков :). |
|
|
|
дай: какая связь между Visual J++ 6 |
|
|
|
|
Òот небольшой конторки под назва- |
Рождение |
|
|
|
нием Майкрософт (J++ входит в |
|
|
|
|
состав пакета MS Visual Studio 98) и тем самым |
Visual J++ это визуальная оболочка к языку |
|
|
|
текстовым редактором? Правильно. Сейчас ты |
программирования java (читается как “ява” |
|
|
|
этот редактор напишешь САМ на J++. |
или “жаба” :)). Изначально разрабатывалась |
|
|
|
|
|
Sun для написания небольших приложений |
|
|
Где достать Visual Studio, ты и сам знаешь. По- |
для Интернета. Эти приложения могут испол- |
|
|
|
сети Mitin0-BazaR или другой доступный тебе |
няться везде вне зависимости от платформы, |
|
|
|
КОНСТРУКТОР |
|
|
|
>СПЕЦВЫПУСК #4 |
006F |
111 |
|
|
АчАЛА: ПИШЕМ ЕДАКТОР
|
|
|
|
|
Жми “Открыть”. Через несколько секунд запус- |
|
крософт: всегда соглашайся. |
Займемся нашим XakepPad’ом. Для начала уве- |
||||||
|
|
|
|
|
тится мастер, с помощью которого мы и будем |
|
Молодость |
личим размер редактора, а то он какой-то ма- |
|
|
||||
|
|
|
|
|
все делать. В первых двух вопросах ничего не |
|
ленький. Кликни на заголовке XakepPad’a и уве- |
|||||||
|
трогай, они нам не интересны. Просто сделай |
|
|
|
|
личь размер окна, потянув за правый нижний |
||||||||
|
|
|
|
|
||||||||||
|
|
|
|
|
Double Next click :). А вот дальше начинается са- |
И вот твое творение перед тобой! На твоем мо- |
|
угол - как будто это обычное окно. |
||||||
|
|
|
|
|
мое прикольное - типа программирование :). |
ниторе. |
|
|
Теперь тебе понадобится рисовалка иконок. Не |
|||||
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
Ты ведь знаешь, что у каждой программы для |
|
|
|
|
знаю как ты, а я пользуюсь прогой IconForge. |
||||
|
|
|
|
|
Окон есть такие фишки, как: меню, область, в |
|
|
|
|
Это просто ФотоШлеп в мире иконок. Пользо- |
||||
|
|
|
|
|
которой ты пишешь текст (у текстовых редакто- |
|
|
|
|
ваться им очень легко и просто. Усек? |
||||
|
|
|
|
|
ров), строка состояния и панель инструментов. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Мне кажется, что нам нужно все. Поэтому ставь |
|
|
|
|
И вот ты сотворил нечто такое неповторимое. |
|
|
||
|
|
|
|
|
птички на все пункты и жми Next. |
|
|
|
|
Теперь скопируй иконку в каталог с твоим |
||||
|
|
|
|
|
|
|
|
|
|
|
проектом. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Åñëè òåáå |
не терпится запустить программу, |
|
|
|
|
||
|
|
|
|
|
|
|
нажми |
Control+F5. Программа откомпилирует- |
|
|
|
|
||
|
|
|
|
|
|
|
|
ся и запустится. Теперь в каталоге с проектом |
|
|
|
|
||
|
|
|
|
|
|
|
|
будет лежать файл “XakepPad2k.exe”, который |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
ты и будешь раздавать своим друзьям. |
|
|
|
|
||
|
|
|
|
|
|
|
|
Но подожди радоваться, он еще очень сырой :(. |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
Зайди в нем хотя бы в меню Help > About. Не |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
удивляйся, но твоя программа носит имя JPad. |
|
|
|
|
||
|
|
|
|
|
Следующим |
шагом мастер Visual J++ предло- |
|
А ее иконка: ты видел когда-нибудь подобную |
|
|
|
|
||
|
|
|
|
|
æèò òåáå |
вставить в код свои комментарии. За- |
|
уродскую иконку? А как насчет названий меню? |
|
|
|
|
||
|
|
|
|
|
áåé! Îíè |
нам не нужны. Настоящие кодеры мо- |
|
Они все на английском! Что ж, будем править... |
Возвращаемся к j++. Выбираем окно |
свойств |
|
|
||
|
|
|
|
|
гут разобраться в любой программе и без них :). |
|
|
|
|
(Properties) и кликаем на заголовке окна твоего |
|
|||
|
|
|
|
|
Жми Next. Далее тебе надо будет выбрать тип |
|
Но сперва мы настроим визуальную среду по |
XakepPad’a. В свойствах есть такой пункт: |
|
|||||
|
|
|
|
|
получаемого файла. Конечно, нам нужен только |
|
своему вкусу. Для этого закроем окно |
“icon”. Сперва он равен “none”, а справа есть |
|
|||||
|
|
|
|
|
“exe” файл и больше ничего! Выбираем его и |
|
“Document Outline” - я думаю, оно тебе не при- |
маленькая кнопочка с точкой. Кликни по ней и |
|
|||||
|
|
|
|
|
|
|||||||||
|
|
|
|
|
жмем на заветную кнопку Next. |
|
годится. Потом перетащим окна “Properties”, |
выбери свою иконку, нажми на “Открыть”, и |
|
|||||
|
|
|
|
|
|
|
|
“Project Explorer” и “Task list” влево и совместим |
твоя иконка появится в заголовке окна. |
|
||||
|
|
|
|
|
|
|
|
их. Ты, конечно, можешь настроить среду по |
|
|
|
|
||
|
|
|
|
|
|
|
|
своему вкусу. Но мне так больше нравится. И |
|
|
|
|
||
|
|
|
|
|
|
|
|
для полного счастья добавим окно “Toolbox”. |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
Это можно сделать из меню View > Toolbox. Вот |
|
|
|
|
||
|
|
|
|
|
|
|
|
что у меня получилось в итоге. |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
А потом |
è íà Finish. Åñëè j++ òåáÿ åùå ÷òî-íè- |
|
|
|
|
|
|
|
|
|
|
|
|
|
будь спросит (такое иногда бывает :)), вспомни |
|
|
|
|
|
|
|
|
|
|
|
|
|
золотое правило при работе с продуктами Май- |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
0070 |
КОНСТРУКТОР |
|
|
>СПЕЦВЫПУСК #4 |
|
|
||||||
|
|
|
|
|
|
|
|
Теперь перейдем к названию. В тех же свой- |
Настроим панель инструментов. Для этого клик- |
|||||||||||||||
|
ствах есть пункт “text”, он отвечает за текст, ко- |
íè |
íà |
прямоугольнике |
ñ |
|
надписью |
||||||||||
|
торый будет написан в заголовке окна. Можешь |
“ToolBarImageList”. И во все тех же свойствах, в |
|||||||||||||||
|
написать туда любую чушь :). |
пункте “images”, можешь загрузить свои картин- |
|||||||||||||||
|
|
|
|
|
|
ки для каждого значка на панели инструментов. |
|||||||||||
|
Твой редактор как настоящий хацкерский эди- |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
тор должен всегда быть поверх других окон. Для |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
этого параметр “topmost” установи в положение |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
“true”. Еще он не должен быть виден в таскбаре, |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
параметр “showInTaskbar” ставь “false”. И потом |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
раз редактор есть, то он должен работать на |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
весь экран (“WindowState” - “Maximized”). Мо- |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
жешь настроить еще несколько параметров, та- |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
ких как наличие кнопки свернуть (“minimizeBox”) |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
и развернуть (“maximizeBox”), вид рамки окна |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
(“borderStyle”) и фон формы (“backColor”) по |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
своему усмотрению. |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
Приступим к русификации. Начнем с меню. Что- |
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
áû |
изменить имя какого-либо пункта меню, дос- |
Потом кликни на самой панели |
задач и в свой- |
|||||||||||||
|
таточно щелкнуть один раз на нем и вписать |
ствах выбери “buttons” и номер иконки, кото- |
|||||||||||||||
нужный тебе текст. |
|
|
рый ты хочешь изменить. Тут ты можешь впи- |
||||||||||||||
|
|
|
|
|
|
сать текст всплывающей подсказки, типа: “не |
|||||||||||
|
|
|
|
|
|
жми, убьет”. |
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
Старость :) |
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
Вроде все хорошо. Все, да не все :). Надо |
|||||||||||
|
|
|
|
|
|
подправить меню “About”. Для этого в окне |
|||||||||||
|
|
|
|
|
|
“Project Explorer” два раза кликаем на файле с |
|||||||||||
|
Значок |
“&” означает, |
что буква, следующая пос- |
именем |
“About.java”. Открывается форма |
||||||||||||
|
“About”. |
|
|
|
|
|
|
|
|
|
|
||||||
|
ле того значка, станет |
горячей. То есть ты нажи- |
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
маешь Alt+Ф, и открывается меню “Файл”. Если |
Для начала проделаем |
|
|
|
|
|
|
|
||||||||
|
ты очень любишь горячие клавиши, то каждому |
с ней те же измене- |
|
|
|
|
|
|
|
|
|||||||
|
пункту меню ты можешь назначить свою комби- |
ния, что и с самой |
|
|
|
|
|
|
|
||||||||
|
нацию. Для этого кликни справа от имени пункта |
программой. В заго- |
|
|
|
|
|
|
|
|
|||||||
|
и выбери понравившуюся комбинацию. |
ловке |
окна напишем |
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
“О самом кульном текстовом редакторе XakepPad2k”. Увеличим размер окна. Теперь кнопка. На ней написано “ОК”. Ну кто же в хацкерских прогах пишет “ОК”? Мы напишем “ХАКНУТЬ”. Для этого кликни на кнопке и открой окно со свойствами. В поле текст, вместо “ОК” впиши то, что тебе по вкусу. В пункте “dock” выбери самую нижнюю часть, и кнопка расположится на всю ширину формы. Все остальное на форме ты нещадно выделяешь и жмешь del.
Теперь тебе нужен “Toolbox”. Выбери закладку “WFC Controls”.
|
|
|
|
|
|
|
|
|
|
|
КОНСТРУКТОР |
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
>СПЕЦВЫПУСК #4 |
|
|
0071 |
|
|
113 |
|
|
|||||||||||
|
|
|
|
|
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
Там найди элемент Label (на нем нарисована |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
большая буква A). Кликни на нем, а потом |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
кликни на форме. Он должен там появиться. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
Открой свойства этого элемента и в свойстве |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
dock выбери Right. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
Эта штука прилипнет к правому краю формы. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
Напиши в поле текст - что-нибудь о том, каких |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
трудов тебе стоило создание этой программы. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
Что все баги ты выловил, и если есть баги, то |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
они не твои, а Майкрософта. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
В Toolbox’е найди элемент “PictureBox” и тоже |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
вынеси его на форму. Это будет твоя фотогра- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
фия. В свойствах PictureBox’а параметр |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
“dock” установи как “Fill”. При этом |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
“PictureBox” займет все свободное место. В |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
параметре “Image” выбери свою любимую фо- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
тографию или логотип XakepPad’a. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
должно произойти, кроме как запуск твоей |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
программы :). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Прежде чем выкладывать свою прогу |
|
íà |
|
âñÿ- |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
кие софтверные архивы, типа listsoft.ru, |
|
down- |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
load.ru и т.д., дай ее потестить |
|
нескольким |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
друзьям. Вдруг она у них не пойдет. Ведь для |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
всех программ, написанных на Visual J++, |
|
|
|
|
||||||
|
|
|
|
|
Релиз |
|
|
|
|
|
|
требуется виртуальная машина Java от MS. Ее |
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
Выдели ее |
и удали, а заодно удали и две пре- |
|
можно скачать по адресу: |
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
дыдущие |
строки. В итоге у тебя должно полу- |
www.microsoft.com/java. |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
Ну вот, мы и подошли вплотную к релизу наше- |
читься |
следующее: |
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
го редактора. Жим Control+F5. И не запускает- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
ся... Что такое? Ошибка. Помнишь, мы удалили |
public About(){ |
Âîò è âñå. |
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
все элементы с формы “About”? Так вот, теперь |
super(); |
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
надо чуть-чуть подчистить код. В NaskList’е |
initForm(); |
Больше тебе программ красивых и разных :). |
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
дважды кликни на ошибке, и откроется редак- |
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
тор. Строка, которую нужно удалить, будет за- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
ботливо подчеркнута синей линией. |
|
Теперь жми Control+F5, и... ничего теперь не |
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
0072 |
КОСТРУКТОР |
|
|
>СПЕЦВЫПУСК #4 |
|
НАС РЕБУТ, А
AvaLANche (kolyan@rnc.ru)
|
|
Дарова, |
|
peretz! |
Помнишь 3-й |
рессбар просто: ‘ProgressBar’. Теперь |
меняем |
|
||||||||||||||||||||
|
|
|
имя чекбокса на ‘ForceBox’ и кэпшн на |
÷òî-òî |
|
|
||||||||||||||||||||||
|
|
|
|
ñïåö |
X? Íó, ïðî |
zаподлострое- |
типа ‘Force - с потерей всех данных’, а |
вообще |
|
|
||||||||||||||||||
|
íèå |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
è |
прочие |
приколы? В |
ýòîì |
по твоему вкусу. Эта |
феня нужна для очередно- |
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
го глумления над твоим приятелем, заюзающим |
|
|||||||||||
|
|
спеце |
M.J.Ash |
делал обзор |
çà- |
|
|
|||||||||||||||||||||
|
|
|
эту прогу. Представь: жмет он на него, жмет, а |
|
||||||||||||||||||||||||
|
|
подлянских |
|
|
ïðîã |
|
|
типа рыгалок, |
|
|
||||||||||||||||||
|
|
|
|
|
|
винды все равно отрубятся в режиме ‘force’, т.е. |
|
|||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||
|
|
с-ума-сводилок и прочих эрей- |
никто не будет спрашивать у запущенных при- |
|
||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||
|
|
зеров. А самому такую слабо |
ложений разрешения на взлет. Ты еще помнишь |
|
||||||||||||||||||||||||
|
|
про ма-аленький label (или он у тебя во все ок- |
|
|||||||||||||||||||||||||
|
|
забацать? |
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
но получился? :))? Вспоминай! Он нам дальше |
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
пригодится, а пока лучше назови его ‘Title’ и на- |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
пиши в нем заголовок проги, например, |
|
|
|
|
||
|
|
Let the party begin! |
|
|
|
|
|
|
|
|
|
|
|
|
‘sHUTiTdOWN’. |
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Займемся кодингом |
|
|
||||
|
|
Èòàê, |
начнем! |
Берем |
твою любимую |
|
Дельфю и |
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
создаем новый |
проект (в меню главного окна: |
|
|
|
|
Для начала сделаем самое простое - объявим |
|
|||||||||||||||||||
|
|
File -> New Application). : |
|
|
|
|
нужные для работы переменные. Делать это бу- |
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
дем в разделе implementation, зачем - поймешь |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
сам, если ненадолго включишь мозгу. Итак, вво- |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
äèì âîò ÷òî: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
“Все еще только начинается!” ;-) (C) Санта-Бар- |
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
progress : integer; //сколько набежа- |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
áàðà |
|
|
ло в прогрессбаре |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Все свойства объектов меняются просто: выби- |
Want2SwitchOff : byte = 0; //сколько |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
раз кликнули по label`у, чтобы прога закрылась |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
раешь жертву истязаний и в Object Inspector`е |
ReallyClose : boolean = false;//после |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
редактируешь нужное свойство. |
5-ти кликов будет true, и все, финита :) |
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
ß íå |
люблю всяких |
имен по дефолту, поэтому |
|
|
|
|
|
Если ты пока не понял, для чего эти переменные |
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
сразу |
обзываем |
появившуюся форму, напри- |
|
|
|
|
|
нужны, не кидай ломом в монитор! :) Скоро все |
|
|
|
|
||||||||||||||
|
|
ìåð, |
‘SuperForm’ (â Object Inspector`å ïîëå |
|
|
|
|
|
станет ясно даже одноногой табуретке :)). |
|
||||||||||||||||||
|
|
‘Name’), меняем ее заголовок (Caption) на что- |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
нибудь типа ‘sHUTiTdOWN - не дай виндам за- |
|
|
|
|
|
Теперь нужно сделать так, чтобы сколько наш |
|
|||||||||||||||||||
|
|
сохнуть!’ и делаем ее диалогом: BorderStyle |
|
|
|
|
|
бедный ламер на чекбокс ни давил, флажок все |
|
|
|
|
||||||||||||||||
|
|
правим на bsDialog. Теперь тащим на форму |
|
|
|
|
|
равно стоял. :) Делается это так: кликаешь два |
|
|||||||||||||||||||
|
|
label, checkbox, два radiobutton`а, прогрессбар и |
|
|
|
|
|
раза по твоей пимпе с флажком и в открывшем- |
|
|
|
|
||||||||||||||||
|
|
таймер. Что, грузанул я тебя? Ну, тогда объяс- |
|
|
|
|
|
ся окне редактирования кода, внутри функции |
|
|||||||||||||||||||
|
|
няю в чем маза: label - просто текст на окне, |
|
|
|
|
|
ForceBoxClick, пишешь: |
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|||||||||||||||||||||
|
|
checkbox - пимпа с флажком, radiobutton - круг- |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
лая фигулька с точкой внутри (все это во вклад- |
|
|
|
|
|
ForceBox.Checked := true; |
|
|||||||||||||||||||
|
|
ке ‘Standard’ списка компонентов), progressbar |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
показывает прогресс выполнения какого-нибудь |
|
|
|
|
Готово! Сейчас сделаем, чтобы прогу обычными |
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
процесса (например, когда ставишь софтину в |
Сначала обзовем радиобатоны |
и поменяем их |
средствами (Alf-F4 или крестиком) нельзя было |
|
||||||||||||||||||||||
|
|
setup`е, он показывает, сколько файлов скопи- |
подписи (Caption): первый - |
íà ‘ToPowerOff’, |
отрубить. Выбираем вкладку ‘Events’ в свой- |
|
||||||||||||||||||||||
|
|
ровано, и т.п.), находится этот бар во вкладке |
кэпшн - на ‘повер офф!’; второй |
- íà ‘ToReboot’, |
ствах формы (все как обычно в Object |
|
||||||||||||||||||||||
|
|
‘Win32’, а таймер и в Гондурасе таймер (вклад- |
кэпшн - на ‘ребут’. Это все нам дальше приго- |
Inspector`е), а там создаем обработчик события |
|
|
||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||
|
|
ка ‘System’). Эти фичи нужны для пущего запад- |
дится. Таймер называем ‘DeathTimer’, а прог- |
OnClose. В нем пишем: |
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
ла, а вот label тебе пригодится во время отлад- |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
ки проги или когда будешь заценять, как она па- |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
шет: через него ты будешь шатдаунера нашего |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
закрывать. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>СПЕЦВЫПУСК #4 |
КОСТРУКТОР |
0073 |
115 |
|
МЫ КРЕПЧАЕМ
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (ReallyClose) then |
|
мер, который до сих пор не заюзан. |
Сечешь |
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
Action := caFree |
|
фишку? Нужен он для того, чтобы на прогрес- |
|
|
|
|
|
|
||||
|
|
|
else Action := caNone; |
|
сбар полоски двигать и, в конце концов, комп |
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
зашатдаунить (или ребутить). Поэтому, как |
|
|
|
|
|
|
||||
|
|
|
Этот код не будет позволять окну нашего шат- |
обычно, тыкаем по таймеру два раза. Появился |
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
даунера закрываться, пока переменная |
обработчик события OnTimer. Это событие об- |
|
|
|
|
|
|
|||||||
|
|
|
ReallyClose равна false. А зачем она нужна? Дык |
рабатывается после истечения интервала тай- |
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
надо оставить какой-нибудь бекдор, чтобы са- |
мера, который изменяется в свойстве Interval |
|
|
|
|
|
|
|||||||
|
|
|
мому прогу можно было тормознуть! Помнишь, |
(единица - тысячная секунды). Поставь там 100, |
|
|
|
|
|
|
|||||||
|
|
|
я говорил, что лейбл пригодится? Время обра- |
чтобы у жертвы слишком много времени на раз- |
|
|
|
|
|
|
|||||||
|
|
|
титься к этому title`у! Опять тыкаешь два раза |
думье не было. :) |
|
|
|
|
|
|
|
|
|||||
|
|
|
крысиной пимпой, но только уже по нему. В поя- |
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
вившемся окне с сорцами пишем (внутри фун- |
|
|
|
|
|
|
зовать и более крутыми способами, |
тысячами |
|
|||||
|
|
|
|
|
|
|
|
||||||||||
|
|
|
êöèè TitleClick!): |
|
|
|
|
|
|
|
строк и т.п. Но ведь в том и фишка, что так ты |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
посылаешь солить веники всех этих куль-коде- |
|
|||
|
|
|
Want2SwitchOff := Want2SwitchOff + 1; |
|
|
|
|
|
|
|
ров, которые ваяют простейший алгоритм целы- |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
if (Want2SwitchOff = 5) then |
|
|
|
|
|
|
ми томами строк с ненужными операторами? |
|
|
|||||
|
|
|
|
|
begin |
|
|
|
|
|
|
|
Такой геморрой может быть нужен опять-таки |
|
|||
|
|
|
|
|
ReallyClose := true; |
|
|
|
|
|
|
|
только для прикола: на олимпиадах по инфор- |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
SuperForm.Close(); |
|
|
|
|
|
|
|
матике, помню, писали проги на объектном пас- |
|
|||
|
|
|
|
|
end; |
|
|
|
|
|
|
кале (со всеми конструкторами и деструктора- |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
ми!), которые конвертят числа в разные табли- |
|
|||
|
|
|
×òî |
ýòî |
такое? Ни что иное, как закрывашка (ти- |
|
|
|
|
|
|
цы счисления по указанному в примечании к за- |
|
||||
|
|
|
ïà |
открывашки для пива, только наоборот)! |
|
|
|
|
|
|
данию алгоритму :)). |
|
|||||
|
|
|
Объясняю: после каждого клика по label`у пере- |
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
менная Want2SwitchOff будет увеличиваться на |
|
|
|
|
|
|
По поводу же нашей проги даю домашнее зада- |
|
||||||
|
|
|
один. Если она станет равной пяти, прога выру- |
Осталось |
разобрать сам код. Переменная |
íèå. :) |
|
|
|
|
|||||||
|
|
|
|
|
|
|
|||||||||||
|
|
|
бается! Все просто. :) |
|
progress |
показывает, сколько у бара процентов |
|
|
|
|
|
|
|||||
|
|
|
Да будет свет! |
|
накипело. |
Когда progress доходит до ста, начи- |
|
1. Эта прога не будет пахать под NT. В NT`е нуж- |
|
||||||||
|
|
|
|
нается процесс отрубания виндов. Очень меня |
|
но получить приоритет шатдауна для процесса, |
|
||||||||||
|
|
|
|
|
|
|
радует, что их можно вырубить вызовом всего |
|
чтобы он смог отрубить систему. Как это сде- |
|
|||||||
|
|
|
Перейдем к главному - самому процессу отру- |
одной функции - ExitWindowsEx. :) У функции |
|
лать? Посмотри в Win32 API reference (только |
|
||||||||||
|
|
|
бания виндов. Будем мы их отрубать по жела- |
этой два параметра: первый - флаг, он говорит |
там на Си код в примере :)). |
|
|
|
|
||||||||
|
|
|
нию трудящихся, т.е. так, как трудящиеся соиз- |
что делать (EWX_LOGOFF - завершение сеанса |
|
|
|
|
|
|
|||||||
|
|
|
волили выбрать: повер офф, или ребут. Да, еще |
пользователя, EWX_REBOOT - ребут, EWX_SHUT- |
|
2. Чтобы сделать ‘просто супербизона’, поищи в |
|
||||||||||
|
|
|
нужно сделать, чтобы прогрессбар работал. Ду- |
DOWN - шатдаун, EWX_POWEROFF - (не догадал- |
|
хэлпах Дельфей про реестр виндов и заставь |
|
||||||||||
|
|
|
|
||||||||||||||
|
|
|
маешь, геморрой? Да всего-то пара строк: |
|
ся?) повер офф), а второй зарезервирован и, по |
|
прогу вносить себя в группу запуска при старте |
|
|||||||||
|
|
|
|
|
|
|
уверениям |
мелкомягких, |
игнорируется. |
|
форточек. :) Можешь еще поработать над дизиг- |
|
|||||
|
|
|
progress := progress + 1; |
|
EWX_POWEROFF работает только на машинах, |
|
ном. У меня в два счета получилось так: |
|
|||||||||
|
|
|
if (progress <= 100) then ProgressBar.StepIt |
|
которые его поддерживают, т.е. на ATX`ах. Если |
|
|
|
|
|
|
||||||
|
|
|
else |
|
ты сомневаешься, что за комп у жертвы, лучше |
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
begin |
|
поставь EWX_SHUTDOWN, который доведет шат- |
|
|
|
|
|
|
||||
|
|
|
|
|
if (ToReboot.Checked) then |
|
даун до стадии ‘Сеанс Windows завершен. Вы |
|
|
|
|
|
|
||||
|
|
|
|
|
ExitWindowsEx(EWX_REBOOT |
or |
можете выкинуть свой компьютер’. :) Разобрал- |
|
|
|
|
|
|
||||
|
|
|
EWX_FORCE, 0); |
|
ся с флагами? Для них-то и юзаем if-else: он |
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
f (ToPowerOff.Checked) then |
|
проверяет, какой радиобокс выбран, и делает |
|
|
|
|
|
|
||||
|
|
|
|
|
ExitWindowsEx(EWX_POWEROFF |
or |
ñâîå äåëî. Voila! |
|
|
|
|
|
|
|
|
||
|
|
|
EWX_FORCE, 0); |
|
Outroå |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
end |
|
|
|
|
|
3. Проявляй инициативу, работай мозгом, тво- |
||||||
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
ри! Кодинг - захватывающее занятие, если им |
||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
А теперь догадайся, куда этот код всунуть надо? |
Вот и все! Теперь ты можешь считать себя кру- |
|
заниматься с увлечением. Особенно, когда ты |
|||||||||||
|
|
|
Нет, туда, куда ты хочешь (конечно, можешь за- |
тым компутерным zаподлянщиком :). Эта прога |
|
творишь не для себя, а для людей (которым бу- |
|||||||||||
|
|
|
сунуть для опыта :), но в кодинге это не помо- |
- самый простой прикол, который ты мог напи- |
|
дешь вырубать винды ;)). Удачи тебе в твоих за- |
|||||||||||
|
|
|
жет)! Все опять очень просто. Был там у нас тай- |
сать. Конечно, задачу шатдаунера можно реали- |
|
падлостроительных экспериментах! |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
|
0074 |
ХУМОР |
|
>СПЕЦВЫПУСК #4 |
|
|
HЕТ, НЕХАКЕ |
|||||
|
ГАДИЛ ПЛОХ |
|||||
Клим Собакин (mimino@writeme.com) |
|
|||||
Чтобы не вносить совершенно |
Например: восьмичасовой рабочий день начи- |
|||||
лишних и ненужных подозрений, |
нается с получасового чаепития с получасо- |
|||||
вым перекуром и ими же оканчивается. Плюс |
||||||
сразу замечу, что |
||||||
час на обед. Из оставшихся 6 часов полтора |
||||||
в программировании на С++ |
заняты разговорами с коллегами и поисками |
|||||
я ничего не петрю, но знаю |
нужного файлика в Интернете, 2 часа отводят- |
|||||
ся непосредственно работе, остальное время |
||||||
многих вполне серьезных |
проводится в комнате, обычно на карте обоз- |
|||||
граждан, которые являются |
наченной символами “МЭ” и “ЖО”. Убедитель- |
|||||
ная статистика? |
||||||
виртуозами в этой области |
||||||
|
||||||
человеческого Знания. Поэтому |
Как заметил один знакомый программер: |
|||||
речь все же пойдет о вещах, |
“Сколько в сортире не сиди - всегда найдется |
|||||
козел, который работает еще меньше, а полу- |
||||||
неразрывно связанных |
||||||
чает больше.” |
||||||
с программированием, |
Исходя из полученных данных, делаем вывод |
|||||
в чем несложно |
|
|||||
|
о том, что продуктивность работы програм- |
|||||
убедиться, дочитав |
||||||
миста напрямую зависит не от скорости про- |
||||||
этот поучительный |
цессора или гигабайт оперативки, а от ком- |
|||||
материал до конца. |
плекса удобств сортира. Как же сделать обыч- |
|||||
ный туалет вторым полноценным рабочим |
||||||
Ä |
|
|
|
местом? Ответ прост - благоустроить! |
||
авайте начнем издалека: где настоя- |
экранирующим воздействием, он помогает |
ÊÀÊ? |
||||
щий программер |
бывает ежедневно |
забыть о ежедневных дрязгах и сконцентриро- |
||||
не менее 3-х раз? Да, да, то, что ты |
ваться на своем Я. Давай убедимся в этом |
|
||||
назвал, это, несомненно, правильно, |
вместе: на дверь сортира прибивается обыч- |
Да, благоустройство потребует некоторых |
||||
|
|
|||||
да и рифмуется с “где” отлично. Помимо это- |
ное бытовое зеркало, таким образом, чтобы в |
накладных расходов, но нужно помнить о том, |
||||
го, конечно же, у холодильника, пивного ларь- |
нем отражалось твое собственное лицо в мо- |
что постоянное употребление молока с огур- |
||||
ка, на балконе, у кофеварки и... Да, да! Ты |
мент фиксации на стульчаке. Что видим да- |
цами, селедкой и пивом окупит все затраты на |
||||
угадал, в туалете! |
|
лее? Далее мы видим максимально отрешен- |
сантехнику очень быстро! |
|||
|
|
|
|
ное от заевшего быта лицо, на котором напи- |
|
|
Неплохо бы рассмотреть подробнее те ++ |
сана вся трансцендентальная сущность бытия. |
Оборудование, просто-таки необходимое в |
||||
(плюсы) обычного стационарного сортира, ко- |
Доводилось ли тебе раньше встречать столь |
любом случае, больших затрат не потребует. |
||||
торые видны невооруженным взглядом любо- |
одухотворенное, глубоко мудрое и симпатич- |
|
||||
му профессионалу. Надеюсь, тот факт, что |
íîå ëèöî? |
Во-первых, это пепельница, ибо “Сортир без |
||||
программист без сортира как водка без пива, |
СКОЛЬКО? |
курения, что чай без варенья”. |
||||
всеми принят как аксиома? Ну и ладно, тогда |
|
|||||
начнем. |
|
|
|
Во-вторых - книжная полка и 5-10 тематичес- |
||
ЗАЧЕМ? |
|
По моим подсчетам средний программер бы- |
ких и периодически обновляемых книг, и све- |
|||
|
вает в сортире не менее 3-4 раз ежедневно и |
жий номер “Х”. |
||||
|
|
|
|
проводит там не менее 20 минут за сеанс, |
|
|
Ответ ясен - для того чтобы, как говорится, |
особенно в рабочее время. Итого, по самым |
В-третьих - сиденье унитазное с подогревом |
||||
душевно погадить. Но и для того, чтобы от- |
минимальным прикидкам, примерно час-пол- |
“Гр¸зы автолюбителя” на случай лютой зимы |
||||
дохнуть, подумать, перекурить. Не секрет, что |
тора в день. Время “посиделок” может сильно |
и фонарик. |
||||
мудрые мысли так и проникают в черепную |
увеличиваться в зависимости от комфортнос- |
|
||||
коробку, стоит только поднатужиться как сле- |
ти и оборудованности заведения. |
В-четвертых - плакат с призывом: “Програм- |
||||
дует. Сортир обладает и неплохим ментально- |
|
мист! Помни, что в жизни каждого человека |
|
|
ХУМОР |
|
|
|
>СПЕЦВЫПУСК #4 |
0075 |
117 |
|
|
Р, ПРОСТО
Î...
может наступить момент, когда любая бумага |
|
|
становится ценной!”. |
|
|
И наконец - телефон или несложное перего- |
|
|
ворное устройство. |
|
|
При желании можно доработать этот “каби- |
|
|
нет” радиоприемником (служащим в том чис- |
|
|
ле и глушителем-постановщиком помех) и |
|
|
таймером, который каждые 20-30 минут напо- |
|
|
минает о себе из стульчака электрическим |
|
|
разрядом средней силы и стандартным воп- |
|
|
И пернуть |
|
|
охота, |
|
|
И пернуть |
|
|
нельзя. |
|
|
Услышат |
|
|
фашисты, |
|
|
Погибнут |
|
|
друзья. |
|
|
лем “Мы теряем его!”. Акустика среднестатис- |
|
|
тического туалета настолько хороша, что под- |
|
|
час является серьезной проблемой для поль- |
|
|
зователя: |
|
|
Не будет лишним и мобильный пурген-инжек- |
|
|
тор для лиц с ослабленной силой воли. Если |
|
|
позволяет бюджет, будет полезно задуматься |
|
|
о комплектовании запасного командного пун- |
|
|
кта выделенной линией в Интернет или под- |
|
|
ключением к локальной сети. |
|
|
Отлично зарекомендовал себя на боевом пос- |
|
|
ту аппарат факсимильной связи. Он может |
|
|
запросто смягчить ситуацию с отсутствием |
|
|
туалетной бумаги. Да, бывает и такое. Что ты |
экстремальной ситуации на запасном рабочем |
ный ход не требует никаких расходов, а |
должен сделать как настоящий товарищ, если |
месте. |
эффект от него огромен. В обязанности по- |
твой друг в беде? Берешь компьютер с факс- |
|
добного “дежурного по сортиру” входит нак- |
модемом. Hакладываешь в любом графичес- |
В любой нормальной компании, фирме, а так- |
леивание избранных статей из свежей прессы |
ком редакторе на лист надпись “Hовая услуга |
же в каждой семье обязательно должен быть |
(например, из научно-популяpных журналов) |
- рассылка туалетной бумаги факсом” и посы- |
назначен человек, ответственный за информа- |
на стены. Помимо информационного ликбеза |
лаешь своему коллеге, находящемуся в |
ционное наполнение сортира, так как подоб- |
такая практика позволит постоянно быть в |
118 |
0076 |
ХУМОР |
|
|
|
|
|
>СПЕЦВЫПУСК #4 |
||
|
|
1. |
Ïpîñyíüòå |
ðóêó |
“Ммммм, никогда раньше не видел этого цве- |
|||||
|
|
ïîä |
перегородку и |
òà”. |
|
|
|
|||
|
|
попросите |
соседа |
|
|
|
|
|||
|
|
одолжить вам |
ìàð- |
5. Уpоните камень и скажите: “Блин!! Мой |
||||||
|
|
кер или циркуль. |
стеклянный глаз!!” |
|
|
|||||
|
|
2. Скажите: “Чеpт, я |
6. Скажите: “Ой черт, вода холодная”. |
|||||||
|
|
âåäü çíàë, |
÷òî íå |
|
|
|
|
|||
|
|
стоило |
åñòü |
ýòî |
7. Мычите и громко тужьтесь примерно 30 се- |
|||||
|
|
дерьмо”. |
|
|
|
кунд, затем бросьте в туалет с высоты ма- |
||||
|
|
|
|
|
|
|
ленькую дыню и расслабленно вздохните. |
|||
|
|
3. Радyйтесь и гром- |
Подпрыгните |
сантиметров |
íà |
двадцать. |
||||
|
|
ко хлопайте в ладо- |
Вздохните с облегчением. |
|
|
|||||
|
|
ши каждый раз, ког- |
|
|
|
|
||||
|
|
да кто-либо нарушит |
8. Скажите: “Hy и как это сюда попало?” |
|||||||
|
|
тишину |
звуком |
åñ- |
|
|
|
|
||
|
|
тественно |
отправ- |
9. Скажите: “Гyмyс. Hапоминает мне гумус.” |
||||||
|
|
ляемых |
потребнос- |
|
|
|
|
|||
|
|
òåé. |
|
|
|
|
10. Hаполните большую фляжку гpейпфpyто- |
|||
|
|
|
|
|
|
|
вым соком и брызгайте им из-под перегород- |
|||
|
|
4. Скажите: |
|
|
ки в кабинки соседей с криками: “Эй, малыш! |
|||||
|
курсе самых разнообразных событий, напри- |
|
|
|
|
|
|
|
|
|
|
мер: “В связи с геополитическими изменения- |
|
|
|
|
|
|
|
|
|
|
ми домен http://poidu.pos.su переименовы- |
|
|
|
|
|
|
|
|
|
|
вается в http://poidu.pos.ru”. |
|
|
|
|
|
|
|
|
|
|
À ÊÀÊ ÆÅ ß? |
|
|
|
|
|
|
|
|
|
|
Да, я и забыл. что существуют еще отсталые |
|
|
|
|
|
|
|
|
|
|
граждане, пользующиеся исключительно ма- |
|
|
|
|
|
|
|
|
|
|
лопривлекательными |
общественными туале- |
|
|
|
|
|
|
|
|
|
тами. Есть рекомендации и для них, но не |
|
|
|
|
|
|
|
|
|
|
нужно ими злоупотреблять :). В любом случае |
|
|
|
|
|
|
|
|
|
|
помните, что в сортире не только гадят, но и с |
|
|
|
|
|
|
|
|
|
|
пользой проводят время! Несколько рецептов |
|
|
|
|
|
|
|
|
|
|
напоследок: |
|
|
|
|
|
|
|
|
|