9. События формы. Лабораторные Delphi, C++ (5)



|
Событие
|
Описание
|
|
OnActivate
|
Возникает после того, как форма становится активной - при первоначальном запуске приложения или когда форма после потери фокуса при перемещении фокуса к другой форме того же приложения вновь получает фокус.
|
|
OnClick
|
Возникает, когда пользователь щелкает левой кнопкой мыши по форме. Появляется после события OnMouseDown. Событие будет отправлено приложению лишь после того, как пользователь отпустит кнопку мыши.
|
|
OnClose
|
Возникает непосредственно перед закрытием формы, после события OnCloseQuery.
|
|
OnCloseQuery
|
Возникает до закрытия формы перед событием OnClose. В обработчике этого события можно на основании действий пользователя разрешить или отменить закрытие формы. Обработчику события передается параметр CanClose типа Boolean. Чтобы отменить закрытие формы свойству CanClose следует присвоить значение False. Значением по умолчанию является True - форма будет закрыта.
|
|
OnCreate
|
Возникает всего один раз в момент создания формы. Предшествует событиям OnShow и OnActivate.
|
|
OnDeactivate
|
Возникает при деактивации формы - при потере фокуса, когда клиент переключается на другую форму того же приложения.
|
|
OnDblClick
|
Возникает, когда пользователь дважды щелкает левой кнопкой мыши по форме. В этом случае порядок появления событий следующий:
· OnMouseDown
· OnClick
· OnMouseUp
· OnDblClick
· OnMouseDown
· OnMouseUp.
Событие будет отправлено приложению лишь после того, как пользователь второй раз отпустит кнопку мыши. |
|
OnKeyDown
|
Возникает при нажатии пользователем на клавиатуре любой клавиши, включая ту, которая не вводит никаких символов (Ctrl, Shift, Alt и т.д.). Предшествует событию OnKeyPress.
|
|
OnKeyPress
|
Возникает при нажатии пользователем на клавиатуре клавиши, которая позволяет ввести отображаемый символ. Происходит сразу после OnKeyDown.
|
|
OnKeyUp
|
Возникает, когда пользователь отпускает нажатую клавишу, включая ту, которая не вводит никаких символов (Ctrl, Shift, Alt и т.д.). Происходит после событий OnKeyDown и OnKeyPress.
|
|
OnMouseDown
|
Возникает, когда пользователь нажимает на форме любую кнопку мыши. Предшествует событию OnClick.
|
|
OnMouseEnter
|
Событие происходит, когда пользователь переводит указатель мыши на поверхность формы - перемещая его с другого компонента формы или из-за пределов формы.
|
|
OnMouseLeave
|
Возникает, когда указатель мыши покидает форму.
|
|
OnMouseMove
|
Возникает, когда указатель мыши перемещается на форме.
|
|
OnMouseUp
|
Событие возникает, когда пользователь нажимает любую кнопку мыши, а потом ее отпускает. Перед этим могут происходить все сопутствующие события.
|
|
OnMouseWeel
|
Событие возникает, когда пользователь вращает колесо мыши.
|
|
OnMouseWeelDown
|
Событие возникает, когда пользователь вращает колесо мыши вниз.
|
|
OnMouseWeelUp
|
Событие возникает, когда пользователь вращает колесо мыши вверх.
|
|
OnPaint
|
Возникает при прорисовке формы, когда размеры формы увеличиваются.
|
|
OnResize
|
Возникает при любом изменении размеров формы как в сторону увеличения, так и в сторону уменьшения.
|
|
OnShow
|
Возникает при начальной загрузке формы перед событием OnActivate, а также в случае, когда форма становится видимой (свойству Visible присваивается значение True).
|

Всем привет дорогие друзья. Совсем недавно передо мной встала одна проблема: создание слайдов (слайд-шоу) в собственном приложении. Другими словами, необходимо было организовать рекламу из картинок, с различными красивыми переходами, задержкой и так далее.
Если честно, то я не знал, как мне лучше всего поступить: либо делать самому какие-то варианты решения задачи, либо искать готовый вариант.
Немного поковырялся в сети Интернет и нашел достаточно интересных вариантов, в том числе как платных, так и бесплатных. Особенно мне приглянулся компонент PicShow, который является бесплатным и имеет в свое вооружении более 176 различных эффектов (переходов между слайдами, картинками). Особых проблем с установкой компонента не было, а также не было и проблем с его работой, ведь в архив с компонентом было отличное демо, представленное разработчиками, по которому можно сделать отличный собственный проект и понять, как компонент PicShow работает.
Начнем со скачивания компонента, а затем его установки. Скачать можно с официального сайта, пройдя по следующей ссылке. С установкой также не должно быть проблем, так как внутри архива (или на сайте) имеется отличная инструкция для установки. Но если все делать по-быстрому, то заходим Component-Install Component, переходим во вкладку Into new package и там указываем путь к нашим pas-файлам компонента PicShow, после чего устанавливаем как обычный компонент и у нас должна появится новая вкладку Delphi Area, на которой и размещены:
Первый компонент непосредственно работает с изображениями, размещенные на локальном компьютере, а второй компонент предназначен для работы с картинками из базы данных. Для того чтобы проиграть слайд с определенным эффектом, то мы можем это сделать при помощи следующего кода:
PicShow1.StyleName:=имя эффекта слайда;
PicShow1.Picture.LoadFromFile(Filenames.Strings[count]);
PicShow1.Execute;
Первой строкой мы задаем имя нашего эффекта слайда, то есть эффект, который будет появляться при смене изображения. Второй строкой мы задаем путь к нашему слайду, то есть изображения, а при помощи последней строки кода, мы запускаем (выполняем) наш слайд. Чтобы это все было эффектно, красиво и с задержкой, данный код следует поместить на таймер и задать ему определенный интервал.
Для получения полного списка эффектов слайдов, можно воспользоваться следующей функцией:
GetStyleNames(Names: TStrings):Integer
Она возвратит список эффектов слайдов, которые Вы можете использовать в своем проекте, чтобы не прописывать их вручную. Кроме этого, можно задавать не имя самого эффекта, а его номер, это делается при помощи свойства Style:TShowStyle.
Как я уже сказал, ничего сложного в этом всем нет. Имеется отличное демо, инструкция по установке, официальный сайт, пример и простой компонент, из которого Вы можете делать эффектные, красивые слайды, примерно следующего формата:
Этот способ позволяет программным образом управлять реакцией на щелчок мыши по объектам в предварительном просмотре и ограничивается только фантазией программиста/пользователя и возможностями языка программирования.
Например, если в скрипте написать «Memo.URL := ‘@5’;», то свойство Memo.Kind будет равно hkPageNumber, а Memo.Value равно «5» и по клику мышкой по нему в предварительном просмотре отчета будет сделан переход на 5-ю страницу.
В приведенном выше списке варианты экспорта расположены в порядке возрастания размера получаемого файла, а значит в порядке убывания ценности в рамках поставленной задачи. Поэтому мой выбор тогда пал на RareFind FastReport Export Filters. Но к моему сожалению, эта библиотека повторила судьбу многих библиотек для Delphi — она давно «умерла» (последняя версия вышла в феврале 2006). Я думаю, что в наше время и на перспективу стоит рассматривать только экспорт входящий в поставку FastReport, т.к. он «умрет» только вместе с FastReport.
| Версия FastReport | EmbeddedFonts=False | EmbeddedFonts=True | Увеличение в, раз |
| 4.11 | 2 367 | 520 294 | 220 |
| 4.15 | 2 357 | 80 933 | 34 |
| 5.04 | 2 351 | 77 905 | 33 |
Размер полученного файла очень сильно зависит от встраиваемого шрифта. Например, если в этом шаблоне «Arial» заменить на «Times New Roman», то размер PDF-файла вырастет на 1%, а если «Arial» заменить на «Forte», то уменьшится в 10 раз.
| Версия FastReport | EmbeddedFonts=False | EmbeddedFonts=True | Увеличение в, раз |
| 4.11 | 13 316 | 9 762 210 | 733 |
| 4.15 | 13 386 | 750 136 | 56 |
| 5.04 | 13 307 | 730 183 | 55 |

В данной статье будет рассмотрено построение защиты приложения с использованием различных программных «трюков» таких как: сброс точки входа в ноль, шифрование тела файла и дешифровшик
Потом у FastReports, Inc был договор с Embarcadero Technologies, Inc о включении FastReport в качестве штатного генератора в Embarcadero RAD Studio XE2. Затем последовали выпуск FastReport RAD Edition, FastReport FMX, FastReport Mono и других продуктов… Итак, не сложно догадаться, разработчикам компании было не до FastReport VCL 5. И вот, согласно народной мудрости «Обещанного три года ждут» (с 2011-го по 2014-й), читаю:Мы приняли решение перенести релиз FastReport VCL 5 на начало 2011-го года. Работы над FastReport VCL v.5 и FastCube VCL v.2 повлекли за собой серьёзные внутренние архитектурные изменения обоих продуктов (в том числе — для обеспечения бесшовной совместимости), в силу которых альфа-версия FastReport VCL v.5 отправлена на доработку. Мы приносим извинения за перенос сроков выпуска продукта.
Надеюсь, что «Новые иконки в окне предпросмотра и в Дизайнере отчетов» — это не основное новшество в FastReport VCL 5. На следующей неделе обновлю свою версию FastReport 4 до 5-ки и узнаю, так ли это. Обещаю написать об этом в апреле (год на всякий случай не называю).«Рады сообщить вам, что новая долгожданная версия FastReport VCL 5 выпущена!
Рассылка специально идёт 2 апреля — ведь это не шутка!
Обратите внимание на полный список нововведений:
…
Если вы ещё не попробовали FastReport 5 — воспользуйтесь нашим спецпредложением для наших клиентов на обновление до 5й версии: http://cp.fast-report.com/upgrades
P.S. FastReports, Inc, спасибо за долгожданный релиз FastReport VCL 5! Извините, если слишком резко высказал свои мысли.


Обещанного 3 года ждут. А план таков, что программку для детей мы всё-равно еще не скоро допишем (сомневаюсь что есть смысл её дописывать). Поэтому давайте

Обещанного 3 года ждут. А план таков, что программку для детей мы всё-равно еще не скоро допишем (сомневаюсь что есть смысл её дописывать).
Поэтому давайте зафигачим что-нибудь простенькое и бесполезное. Например что-то типа эмулятора кнута Индианы Джонса. As seen on tv. Типа того, что показывали в Теории Большого Взрыва много лет сезонов назад. Только вместо кнута будем использовать колокольчик. А назовём проект LazyShaker.
Для тех, кто предпочитает не засорять сознание ситкомами расскажу суть. Программка должна воспроизводить звук при встряхивании. Всё. Способы применения — самые разнообразные, но в основном одинаково бесполезные и ограничивающиеся привлечением внимания.
Исходный код проекта я выложил на github. А собранное приложение на Google Play.
Под катом объяснение того…
[[ This is a content summary only. Visit my website for full links, other content, and more! ]]
