Delphi. Центр управления полетами кнопки "Пуск"

Xakep, номер #033, стр. 033-060-1

Horrific (smiandr@mail.ru) www.x-c-r.com

Помню, как я первый раз увидел Windows95. Мне так понравилась кнопка "Пуск", что я ее полюбил до глубины "Выключить компьютер". Вскоре в нашем институте обновили парк машин и на них тоже поставили Win95. Мне так захотелось приколоться над бедными однокурсниками, что я решил написать прогу, которая подбрасывала кнопку "Пуск". Сказано - сделано, написал и запустил на всех машинах. С каждым взлетом кнопки "Пуск" ламеры испуганно взлетали вместе с нею. А через некоторое время я увидел подобный прикол в Инете.

Предыстория

А что еще сказать? Все и так ясно. Сейчас я повторю свой предыдущий подвиг и покажу тебе, как самому написать такую прогу. Так что усаживайся поудобнее, наша кнопка "Пуск" взлетает на высоту 100 пикселей. И в этом нам поможет наш любимый дядя Борман с великолепным другом Delphi.

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

10-секундная готовность

Создавай новый проект в Delphi. Сразу сохрани его. Теперь измени параметры окна. Для этого лезь в объектный инспектор. Здесь устанавливай параметр BorderStyle в bsNone, чтобы у него не было никаких обрамлений. А параметр FormStyle устанавливай в fsStayOnTop, чтобы окно всегда располагалось поверх других. Все, форма готова.

Теперь нужно бросить на форму компонент Image с палитры компонентов Additional. На форме появится соответствующий компонент с именем Image1. Щелкни по нему и снова переходи в объектный инспектор. Параметр Left и Top установи в 0, чтобы картинка располагалась точно в левом верхнем углу.

Теперь дважды щелкни по параметру Picture, и перед тобой появится окно, в котором можно загрузить в компонент картинку (рисунок 1). Нажми кнопку "Load" и выбери файл, в котором у тебя сохранена картинка кнопки "Пуск". После этого установи свойство AutoSize у Image1 в true, чтобы компонент стал размером с рисунок.

ОК. Форма почти готова. Осталось только поправить ширину и высоту окна, чтобы оно было размером с картинку. С высотой у тебя проблем не будет. Ты можешь без проблем менять ее как угодно. А вот ширина не может быть меньше чем ширина кнопок на обрамлении. Но и это мы победим.

Щелкни по форме и перейди на закладку Events. Дважды щелкни по событию OnShow, чтобы создать такой обработчик события. Он будет вызываться при показе окна. В нем напиши содержимое листинга 1. Здесь я устанавливаю значения ширины и высоты окна. Как ты помнишь, у нас были проблемы с установкой этих значений визуально, а так мы в наглую задаем то, что нам нужно.

Значения могут быть другими, все зависит от того, какого размера получилась кнопка. Моя вышла габаритами 21х51.

Центр Управления Полетами

Теперь брось на форму Timer с палитры компонентов System. В его свойствах нужно изменить значение Interval. По умолчанию оно равно 1000 миллисекундам (1 секунда). Для нас больше подойдет 10000 (10 секунд). Не резон, если "Пуск" будет летать каждую секунду. Такими темпами он может даже не успеть приземлится. Теперь перейди на закладку Events и дважды щелкни по событию OnTimer. Создастся обработчик события, который будет вызываться каждые 10 секунд (значение свойства Interval). Здесь мы развернем центр управления полетом кнопки "Пуск". В этом обработчике напиши содержимое листинга 2. Я не буду описывать его содержимое, потому что журнал не резиновый. Так что смотри на комментарии, там можно со всем разобраться.

Содержание  Вперед на стр. 033-060-2

ttfb: 441.78295135498 ms