![]()  | 
![]() ![]() ![]() ![]()  | 
   
 | 
Великолепный метод PerformDelphi , ОС и Железо , Сообщения WindowsВеликолепный метод Perform
Автор: Михаил Христосенко В этой статье я постараюсь показать что можно делать с помощью метода Perform, и какие интересные вещи скрываются в VCL кодах (в частности messages.pas). Метод Perform дает вам возможность посылать сообщения различным компонентам. Все сообщения описаны в файле Messages.pas (настоятельно рекомендую вам его посмотреть!!!). Данный метод надо вызывать по такой схеме: 
 Начнем с самого простого. Попробуем закрыть форму. Для этого поставьте на форму одну кнопку и в обработчике ее события OnClick напишите: 
 Теперь попробуем изменить иконку вашей программы. Поставьте на форму компонент Image и загрузите в него какую-нибудь иконку. Будем использовать сообщение WM_SETICON. А поскольку в качестве параметров необходима величина типа Integer, то мы воспользуемся указателем на иконку (handle). Теперь обработчик нажатия кнопки может иметь вид: 
 Теперь попробуем осуществить программный клик по кнопке 1. Поставьте на форму еще одну кнопку и в ее обработчике события OnClick, напишите: 
 А можно и попроще реализовать: 
 Объясняю почему два обработчика. Вначале посылается сообщение, что кнопка нажата, затем сообщение - что отпущена, тогда то и происходит клик. Если вы все сделали правильно и ничего с формы не убирали, то иконка вашего приложения вновь поменяется. Теперь маленько коснемся компонентов для работы с текстом. Для начала установите на форму компонент Memo. Будем делать с ним разные стандартные вещи: добавлять символы, копировать, вставлять, вырезать, отменять и т.д. Начнем с вырезания текста. Обработчик кнопки поменяйте на: 
 С начала выделяется весь текст, а потом вырезается и помещается в буфер. Также можно и копировать текст, только надо изменить сообщение на: WM_COPY. Соответственно, чтобы вставить текст из буфера напишите: 
 Для очистки содержимого Memo, воспользуйтесь сообщением WM_CLEAR с параметрами 0,0. Для того, чтобы отменить введенный текст напишите следующее: 
 Чтобы добавить символ в Memo нужно написать так: 
 где 192, номер символа 'A', этот вызов метода Perform, можно заменить на аналогичный: 
 Здесь значение символа 'A' как тип Char преобразуется в тип LongInt, а затем добавляется в Memo. Теперь будем разбираться с Listbox' ами. Для этого добавьте его на форму а событие OnClick кнопки замените на: 
 Если заменить LB_ADDSTRING на LB_INSERTSTRING, то строка будет вставляться в зависимости от первого параметра, который равен 0 в первом случае. Для того, чтобы выделить какую-нибудь строку в Listbox'e зная ее имя нужно написать следующий код: 
 С помощью приведенной выше строчки кода можно реализовать поиск в ListBox'e, наподобие того, как это делается в FontDialog. В текстовом поле ввода вы вводите текст, и наиболее похожий по шрифт выделяется. Чтобы это осуществить поставьте на форму компонент Edit. А в обработчике его события OnChange напишите: 
 Ну вот кратенький обзор метода Perform подошел к концу. Хочется посоветовать только одного, смотрите файл Messages.pas, ищите новые решения и не бойтесь пробовать, а вдруг сработает!!! Метод Perform позволяет отправлять сообщения различным компонентам в VCL, позволяя изменять поведение формы и ее элементов. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш  :: Главная :: Сообщения Windows :: 
  | 
|||||||||||||||||
 ©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007  | |||||||||||||||||