Blog. Just Blog

Быстрый поиск

Введите фрагмент названия статьи для поиска

День города Санкт-Петербурга 2009

01.06.2009 | Категория: Жизнь в оффлайне | Автор: ManHunter

День города Санкт-Петербурга

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

Читать статью целиком »
Просмотров: 13805 | Комментариев: 16

Пересборка инсталлятора Punto Switcher

30.05.2009 | Категория: Темная сторона Силы | Автор: ManHunter

Установка Punto Switcher

Программа Punto Switcher - это автоматический переключатель русской и английской раскладок клавиатуры. Когда вы забываете переключить раскладку с русской на английскую и наоборот, то вместо "Windows" получается "Цштвщцы", а вместо "молоко" - "vjkjrj". Punto Switcher это исправит - раскладка будет переключаться автоматически. Сама программа исключительно полезная, но после покупки ее Яндексом, в дистрибутиве стало слишком много чужеродного. Сам дистрибутив потяжелел почти до 3 мегабайт, в процессе инсталляции навязчиво предлагает сделать Яндекс домашней страницей, установить Яндекс.Трояна и вообще весь стал ходячей рекламой. Это плохо, значит будем исправлять все недоработки авторов.

Читать статью целиком »
Просмотров: 28038 | Комментариев: 42

Готовим окрошку по-уральски

29.05.2009 | Категория: А еще я туда ем! | Автор: ManHunter

Окрошка

Наконец-то наступили жаркие дни, можно приготовить окрошку со свежими овощами. Рецептов окрошки много, я предпочитаю уральский вариант, с квасом и хреном.

Читать статью целиком »
Просмотров: 6843 | Комментариев: 13

Концерт Doro Pesch в "Точке"

27.05.2009 | Категория: Жизнь в оффлайне | Автор: ManHunter

Концерт Doro Pesch в "Точке"

Приезд Doro Pesch в Москву я ждал долго и был очень рад, когда наконец на сайте "Точки" появился анонс концерта и афиша со знакомой фотографией. На этот раз подсуетился пораньше, удалось купить обычный билет в партер.

Читать статью целиком »
Просмотров: 6102 | Комментариев: 6

Всплывающее окно на Ассемблере

26.05.2009 | Категория: Образ мышления: Assembler | Автор: ManHunter
Всплывающее окно - удобный способ информировать о том, что ваша программа выполнила какое-то действие, не требующее немедленного вмешательства пользователя, но достаточно важное, чтобы он об этом узнал. Это может быть сообщение о завершении закачки файла, получении нового письма, завершении длительных вычислений и т.п. Красивый эффект получается, когда информационное окно плавно выезжает из-под таскбара. Простого перемещения окна тут будет недостаточно, так как придется учитывать положение таскбара и всяких других панелей, которые резервируют под себя часть рабочего стола. Поэтому надо сперва получить размер видимой области экрана с учетом различных панелей инструментов и размеры самого всплывающего окна. Затем окно перемещается по одному пикселу в нужном направлении с учетом положения панелей, а размер его видимой части увеличивается на один пиксел в противоположную сторону. Это делается при помощи функции MoveWindow. Лучше всего сам эффект всплытия реализовать на стадии инициализации окна по сообщению WM_INITDIALOG, но в этом случае придется принудительно показывать окно функцией ShowWindow и обновлять его содержимое функцией UpdateWindow после каждого сдвига. Рекомендуются стили окна без заголовка и поверх всех окон, как сделано в прилагаемом примере. Атрибут прозрачности для всплывающих окон лучше не использовать, так как при анимации появляются заметные искажения.
  1. ; Сегмент данных
  2. section '.data' data readable writeable
  3.  
  4. coord   RECT    ; Размеры окна
  5. screen  RECT    ; Размеры экрана
  6.  
  7. ; Сегмент кода
  8. section '.code' code readable executable
  9.         ...
  10.         ; Обработчик сообщения WM_INITDIALOG
  11. wminitdialog:
  12.         ; Получить размер рабочей области экрана
  13.         invoke  SystemParametersInfo,SPI_GETWORKAREA,NULL,screen,FALSE
  14.  
  15.         ; Получить размер окна
  16.         invoke  GetClientRect,[hwnddlg],coord
  17.  
  18.         ; Вычислить отступ от правой границы экрана
  19.         mov     eax,[screen.right]
  20.         sub     eax,[coord.right]
  21.         dec     eax
  22.         mov     [screen.right],eax
  23.  
  24.         ; Высота окна
  25.         mov     ecx,[coord.bottom]
  26.         ; Цикл всплытия окна
  27. @@:
  28.         ; Сохранить значение счетчика
  29.         push    ecx
  30.  
  31.         ; Заполняем стек для MoveWindow
  32.         push    TRUE
  33.         mov     eax,[coord.bottom]
  34.         sub     eax,ecx
  35.         push    eax
  36.         push    [coord.right]
  37.         mov     ecx,[screen.bottom]
  38.         sub     ecx,eax
  39.         push    ecx
  40.         invoke  MoveWindow,[hwnddlg],[screen.right]
  41.  
  42.         ; Так как сейчас только инициализация, то придется принудительно
  43.         ; показать окно и обновить его содержимое
  44.         invoke  ShowWindow,[hwnddlg], SW_SHOW
  45.         invoke  UpdateWindow,[hwnddlg]
  46.  
  47.         ; Небольшая пауза
  48.         invoke  Sleep,2
  49.  
  50.         ; Восстановить счетчик
  51.         pop     ecx
  52.         loop    @b
  53.         ...
После полного появления окна нужно решить, каким образом будет выполняться его дальнейшая обработка. Окно можно убрать по таймеру через несколько секунд, скрыть по клику мышкой на нем или подождать другого события, например, нажатия на какую-нибудь кнопку. В любом случае окно можно или просто закрыть, или убрать его с таким же эффектом, только направление движения будет противоположным. Код плавного скрытия всплывающего окна приведен ниже. Подразумевается, что все используемые структуры с размерами после его открытия остались неизменными.

Читать статью целиком »
Просмотров: 6116 | Комментариев: 2

01 ... 395 396 397 398 399 400 401 ... 422
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2025
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.09 сек. / MySQL: 2 (0.0219 сек.) / Память: 4.5 Mb
Наверх