На сегодняшний день производители клавиатур предлагают нам довольно широкий выбор самых различных вариантов обозначенных устройств ввода. От расширенных версий с дополнительными кнопками для большего удобства управления компьютером, до версий с урезанным количеством клавиш, направленное, кхм… на все то же увеличение удобства. Что ж, предлагаю взглянуть на вопрос улучшения работы с клавиатурой не столько с аппаратной точки зрения, сколько с программной.
Читать полностью »
Метка «Delphi» - 9
Расширяем функциональность клавиатуры
2012-06-29 в 18:33, admin, рубрики: Delphi, open source, клавиатура, Программирование, Софт, хук, метки: Delphi, open source, клавиатура, Программирование, хукСоздаем Splash Screen на Delphi
2012-06-19 в 13:28, admin, рубрики: Delphi, Песочница, метки: Delphi
Если при загрузке программы, показывается Splash Screen (это небольшое окно с картинкой), то к таким программам пользователи относятся лучше, чем программам, при запуске которых несколько секунд ничего не происходит.
В интернете есть много примеров изготовления Splash Screen-а в Delphi, однако обычно это квадратная форма с натянутой на ней картинкой.
Но у многих программ это не квадратная форма, а красивое окно со сглаженными краями.
Я пытался сделать такое окно с помощью регионов, но края были неровные и смотрелись неказисто.
Выходом стали «Слоистые окна» (LayeredWindow).
Читать полностью »
Долгожданное обновление компонента Virtual Treeview V5.0.0 RC1
2012-06-09 в 5:03, admin, рубрики: Delphi, virtualtreeview, метки: Delphi, virtualtreeview Многие Delphi разработчики знают и используют этот замечательный бесплатный компонент для вывода деревьев, списков и таблиц.
Пользователи The Bat! видят его ежедневно, просматривая списки писем.
Компонент отличается высокой скоростью работы с узлами и широкими возможностями по настройке оформления, поддерживает Unicode.
Последняя версия компонента 4.8.7 вышла в октябре 2010 года, и надежды на обновления были слабыми.
Но, все таки, обновление вышло!
Пользователи Delphi XE2 теперь будут рады, теперь можно радовать и пользователей 64-х битных систем.
Читать полностью »
Windows Sockets, IOCP и Delphi
2012-06-04 в 8:21, admin, рубрики: Delphi, networking, WinAPI, winsock, Программирование, метки: Delphi, networking, WinAPI, winsockПролог
Недавно я столкнулся с необходимостью эффективной работы с сокетами в Windows приложении. Задача типичная для нагруженного сервера. Нетипичным тут будет казаться только язык реализации — Delphi.
Я хочу описать способ массовой асинхронной работы с большим количеством сокетов с использованием I/O Completion Ports. Читать полностью »
Библиотека OmniThreadLibrary — простая многопоточность в среде Delphi
2012-05-28 в 7:48, admin, рубрики: concurrency, Delphi, multithreading, Алгоритмы, многопоточность, Параллелизм, Программирование, разработка, синхронизация, метки: concurrency, Delphi, multithreading, Алгоритмы, многопоточность, Параллелизм, разработка, синхронизация Написать интересную статью на техническую тему очень сложно. Приходится балансировать между тем, чтобы не скатиться в технические дебри и тем, чтобы совсем ничего не сказать. Сегодня я попробую в общих словах (без деталей) поговорить о том, как обстоят дела с разработкой многопоточных desktop-приложений в не столь популярной на сегодняшний день, но наверняка знакомой многим российским разработчикам среде Delphi. Статья ориентирована на НЕ новичков в программировании, являющихся при этом новичками в области создания многопоточных приложений.
Читать полностью »
Работа с объектами СУБД Caché на примере Delphi
2012-05-25 в 4:23, admin, рубрики: activex, cache, dbms, Delphi, intersystems cache, nosql, Pascal, Блог компании InterSystems, объектно-ориентированные бд, ооп, субд Caché, метки: activex, cache, dbms, Delphi, InterSystems cache, nosql, Pascal, объектно-ориентированные бд, ооп, субд Caché
Несмотря на перманентные похороны Delphi, эта платформа построения Desktop приложений живет и здравствует, а со сменой владельца даже обретает второе дыхание и продолжает оставаться основным инструментом для тысяч разработчиков во всем мире.
Как и с любыми СУБД Delphi прекрасно взаимодействует с СУБД Caché.
Из Delphi можно подключиться к Caché, используя следующие интерфейсы:
- Caché Objects (объектный, используя библиотеки CacheObject.dll/CacheActiveX.dll);
- Caché SQL (реляционный, используя драйвер ODBC);
- Caché Direct (прямой, используя библиотеку Vism.ocx);
- Веб-сервисы;
- Сокеты.
В данной статье будут рассмотрены примеры использования объектного интерфейса при работе с СУБД Caché.
Читать полностью »
WebBrowser, заполнение поля типа file на Delphi
2012-05-03 в 15:46, admin, рубрики: Delphi, file, POST, WebBrowser, Песочница, метки: Delphi, file, POST, WebBrowserПри работе с компонентом WebBrowser часто возникает необходимость заполнять поля форм на сайте. С обычными полями формы никаких проблем нету, для их заполнения существуют стандартные методы, а вот поле с типом file браузер упорно отказывается заполнять. Причина этому — защита пользователей. Если бы браузер позволил свободно подставлять в это поле путь к файлу на компьютере пользователя, тогда с помощью простенького JavaScript встроенного в страницу сайта можно бы было легко увести любой файл.
Но так как программа использующая браузер и так имеет доступ к пользовательским файлам, теоретически, такая защита не должна была бы срабатывать против неё. Но имеем то, что имеем, а потому необходимо искать обходные пути.
Читать полностью »
FireMonkey и MacApi
2012-04-30 в 3:44, admin, рубрики: Delphi, Delphi XE2, FireMonkey, mac os x, метки: Delphi, Delphi XE2, FireMonkey, mac os xМногие из нас знают, что в Delphi XE2 от Embarcadero появилась платформа FireMonkey, позволяющая писать приложения сразу под Windows, Mac OS X и iOS. А в дальнейшем нам обещают расширить список поддерживаемых операционных систем.
Сам я не прикасался к программированию на Delphi порядка 8 лет, но когда встала задача написания программы-клиента к моему онлайн сервису, мой выбор остановился именно на платформе FireMonkey. Желание один раз написать ПО сразу под все ОС меня подкупило, так как времени на изучение новых языков программирования под каждую ОС у меня просто нет.
Программы-клиенты имеют одну особенность, они обычно прячутся в системные треи около часов и запускаются при старте ОС. Все эти мелкие фишки реализуются за счет API операционной системы. Если при реализации всех этих фишек в Windows у меня особых проблем не возникло, то с реализацией их на Mac OS X мне пришлось долго возиться.Читать полностью »
Skype 5.5 расшифрован для реверс-инженеринга
2012-03-26 в 11:39, admin, рубрики: Delphi, ida, reverse engineering, skype, взлом, реверс-инженеринг, метки: Delphi, ida, reverse engineering, skype, взлом, реверс-инженеринг
25 марта был опубликован расшифрованный бинарный файл Skype v. 5.5. Теперь появилась возможность запускать Skype в отладчике, чего нельзя было делать раньше, так как оригинальная версия сильно обфусцирована. Цель проекта — создать Skype с открытым исходным кодом.
Сообщение об этом появилось в блоге Ефима Бушманова, который год назад расшифровал протокол Skype версии 1.x/3.x/4.x и опубликовал рабочую версию программы.
Читать полностью »
Сохранение истории изменений файлов
2012-03-20 в 13:50, admin, рубрики: backup, Delphi, web-разработка, Веб-разработка, метки: backup, Delphi, web-разработкаНаверняка почти каждый сталкивался с ситуацией, когда при разработки какого-либо проекта, Вы, случайно сохранили изменения в каком-либо файле по ошибке, и отменить действие — нельзя. Например, я однажды редактировал одну картинку в фотошопе, и при сохранении по невнимательности выбрал для сохранения совсем другой файл, навсегда переписав его. На перерисовку того файла было потрачено полтора часа, и все это из-за того, что делать резервные копии каждые 20 секунд вручную невозможно.
Именно после этого случая мне в голову пришла идея написать программу, которая будет мониторить каждые N секунд указанный каталог и его подкаталоги на предмет добавления новых файлов и изменения старых. В случае если есть новые файлы или изменения в старых, то она сделает резервную копию этого файла в указанную папку под имя_файла_дата_время. При таком раскладе потерять какие-либо данные будет сложно, т.к. есть полная история всех изменений.
Такая программа была написана мною 2 года назад. Она не раз спасала мои проекты от разных случайностей, но вот совсем недавно я внес в нее несколько изменений, и сейчас презентую ее Вам.
Читать полностью »