Blog. Just Blog

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

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

Поздравляю с Рождеством Христовым!

07.01.2010 | Категория: Всякая всячина | Автор: ManHunter

Поздравляю с Рождеством Христовым!

Когда снега укроют землю,
И Рождество наступит вновь,
Бокал за счастье поднимите,
За мир, за дружбу, за любовь!
И чтоб без горя и сомнений
Прожить Вам много светлых дней!
Сберечь уют, покой семейный
И уважение друзей!


Просмотров: 4937 | Комментариев: 6

Установка окна по центру экрана

05.01.2010 | Категория: Образ мышления: Assembler | Автор: ManHunter
Для того, чтобы создаваемое диалоговое окно отображалось в самом центре экрана, его надо создать с атрибутом стиля DS_CENTER. Но иногда требуется отцентровать уже созданное или чужое окно. Для этого я написал небольшую функцию, устанавливающую выбранное окно по центру экрана, с некоторыми дополнительными возможностями. Функция самодостаточна, не требует дополнительных переменных в сегменте данных, корректно работает с любыми окнами, пропуская развернутые на весь экран.
  1. ;-------------------------------------------------------------------------
  2. ; Процедура перемещения окна в центр экрана. Если окно развернуто или
  3. ; его размеры превышают размеры экрана, то окно не перемещается
  4. ; Параметры:
  5. ;   hwnd - хэндл окна
  6. ;   mode - относительно каких координат центровать окно (1 - только
  7. ;          рабочая область экрана с учетом размеров панели задач и
  8. ;          различных тулбаров, 0 - относительно размеров всего экрана)
  9. ;-------------------------------------------------------------------------
  10. proc    WindowToCenter hwnd:DWORD, mode:DWORD
  11.         ; Локальные переменные, они же структура RECT
  12.         local   left   :DWORD
  13.         local   top    :DWORD
  14.         local   right  :DWORD
  15.         local   bottom :DWORD
  16.  
  17.         ; Сохранить все регистры
  18.         pusha
  19.  
  20.         ; Такое окно существует?
  21.         invoke  IsWindow,[hwnd]
  22.         or      eax,eax
  23.         jz      .loc_ret
  24.         ; Окно развернуто на весь экран?
  25.         invoke  IsZoomed,[hwnd]
  26.         or      eax,eax
  27.         jnz     .loc_ret
  28.  
  29.         ; Получить размеры окна
  30.         lea     eax,[left]
  31.         invoke  GetWindowRect,[hwnd],eax
  32.  
  33.         ; Флаги функции SetWindowPos
  34.         push    SWP_NOSIZE+SWP_NOZORDER
  35.         push    NULL
  36.         push    NULL
  37.  
  38.         ; Какие размеры экрана получать
  39.         mov     eax,SM_CYSCREEN      ; Вся экранная область
  40.         cmp     [mode],0
  41.         je      @f
  42.         mov     eax,SM_CYFULLSCREEN  ; Рабочая область экрана
  43. @@:
  44.         ; Получить высоту экрана
  45.         invoke  GetSystemMetrics,eax
  46.         mov     ecx,[bottom]
  47.         sub     ecx,[top]
  48.  
  49.         ; Высота окна больше высоты экрана?
  50.         cmp     ecx,eax
  51.         jbe     @f
  52.  
  53.         ; Почистить стек и на выход
  54.         add     esp,12
  55.         jmp     .loc_ret
  56. @@:
  57.         sub     eax,ecx
  58.         shr     eax,1
  59.         ; Новая координата Y
  60.         push    eax
  61.  
  62.         ; Какие размеры экрана получать
  63.         mov     eax,SM_CXSCREEN      ; Вся экранная область
  64.         cmp     [mode],0
  65.         je      @f
  66.         mov     eax,SM_CXFULLSCREEN  ; Рабочая область экрана
  67. @@:
  68.         ; Получить ширину экрана
  69.         invoke  GetSystemMetrics,eax
  70.         mov     ecx,[right]
  71.         sub     ecx,[left]
  72.  
  73.         ; Ширина окна больше ширины экрана?
  74.         cmp     ecx,eax
  75.         jbe     @f
  76.  
  77.         ; Почистить стек и на выход
  78.         add     esp,16
  79.         jmp     .loc_ret
  80. @@:
  81.         sub     eax,ecx
  82.         shr     eax,1
  83.         ; Новая координата X
  84.         push    eax
  85.  
  86.         ; Разместить окно по центру экрана
  87.         invoke  SetWindowPos,[hwnd],NULL
  88.  
  89. .loc_ret:
  90.         ; Восстановить все регистры
  91.         popa
  92.         ret
  93. endp
Параметры вызова: hwnd - хэндл окна, которое надо отцентровать, mode - режим центровки: 0 - установить окно по центру всего экрана, 1 - установить окно по центру рабочей области, то есть с учетом размеров панели задач и различных тулбаров.

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

Поздравляю с Новым Годом!

31.12.2009 | Категория: Всякая всячина | Автор: ManHunter

Поздравляю с Новым Годом!

Всех посетителей и читателей блога сердечно поздравляю с Новым 0x7DA годом! Пусть все проблемы и несчастья останутся в уходящем году, а наступающий год принесет только радость, спокойствие и и благополучие. Счастья вам, крепкого здоровья и успехов во всех ваших делах. Оставайтесь с нами!

С уважением, -
ManHunter / PCL

Просмотров: 4754 | Комментариев: 14

Государственный музей искусства народов Востока

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

Государственный музей искусства народов Востока

Государственный музей Востока принадлежит к числу крупнейших художественных собраний страны, является Национальным достоянием России. В богатейших коллекциях музея хранятся произведения живописи, скульптуры, декоративно-прикладного искусства стран Востока. Всего в музее насчитывается около 160000 экспонатов. Весь музей разделен на несколько залов, каждый из которых представляет экспозицию отдельного региона, а временной разброс экспонатов от первобытных времен до изделий современных мастеров. В музее всегда много народу, проводятся экскурсии, лекции об истории Востока. Фотосъемка разрешена за отдельную плату и только без вспышки, но в отличие от нормальных музеев, билет на съемку требуют показать в каждом зале.

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

PCL's Mini-Chat 1.0

27.12.2009 | Категория: Web-мастеру и не только | Автор: ManHunter
По просьбам трудящихся выкладываю облегченную версию своего мини-чата. На этом сайте используется похожий скрипт, но он тесно интегрирован с остальными модулями движка и отделить его с сохранением всего функционала не представляется возможным. Скрипт написан практически заново и содержит минимальный набор функций, но его функционал можно легко расширять. Скрипт легко интегрируется в любые сайты, написанные на PHP, генерируемый HTML-код и стили CSS проходят валидацию. Для работы скрипта на сервере требуется PHP версии 4 и выше, база MySQL версии 4 и выше, клиентской части требуется поддержка в браузере пользователя JavaScript. Перед установкой мини-чата и заливкой его на сервер надо настроить данные подключения MySQL-базы (файл chat_engine/chat_config.php):
  1. // Данные для подключения к базе
  2. $chat_config['mysql_name']="test";
  3. $chat_config['mysql_host']="localhost";
  4. $chat_config['mysql_user']="root";
  5. $chat_config['mysql_password']="";
  6. // Таблица мини-чата в базе
  7. $chat_config['mysql_table']="chat_table";
и данные авторизации администратора чата:
  1. // Логин админа чата
  2. $chat_config['admin_login']="admin";
  3. // Пароль = md5(md5('password'))
  4. // по умолчанию пароль "password"
  5. $chat_config['admin_password']="696d29e0940a4957748fe3fc9efd22a3";
Обязательно смените дефолтный логин и пароль! Пароль, естественно, должен храниться только в виде хэша, который можно вычислить любой программой для расчета MD5. Логин и пароль чувствительны к регистру. Настройки самого чата лучше не изменять:
  1. // Количество сообщений, одновременно отображаемых в чате
  2. $chat_config['message_count']=20;
  3. // Максимальное количество символов в сообщении
  4. $chat_config['message_text']=200;
  5. // Максимальное количество символов в имени
  6. $chat_config['message_name']=20;
Для защиты от спама используется скрытое поле с ключевым словом, его значение меняется в настройках. Лучше использовать только латинские буквы и цифры.
  1. // Кодовое слово для защиты от спама
  2. $chat_config['chat_nospam']="NO-MORE-SPAM";
Настройки внешнего вида и размеры окна чата изменяются стилями в файле chat_styles.css, в соответствующих шаблонах в папке chat_template, а иконки на кнопках в папке chat_images. По умолчанию все пути к компонентам мини-чата относительные, кодировка windows-1251.

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

01 ... 358 359 360 361 362 363 364 ... 403
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2024
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.09 сек. / MySQL: 2 (0.0281 сек.) / Память: 4.5 Mb
Наверх