Программирование без VCL, работа с WinAPI Delphi — среда быстрой разработки, где в качестве языка программирования используется Object Pascal. На сегодняшний день позволяет разрабатывать ПО для Microsoft Windows, Mac OS, iOS и Android и входит в состав Embarcadero RAD Studio https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi.feed 2022-09-13T04:40:07+07:00 Delphi help info@delphi-hlp.ru Joomla! - Open Source Content Management Альтернатива для Sleep(), но чтобы приложение не зависало 2017-10-24T17:20:46+07:00 2017-10-24T17:20:46+07:00 https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/alternativa-dlya-sleep-no-chtoby-prilozhenie-ne-zavisalo.html Super User toto44@inbox.ru <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-style: italic;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Часто</span> <span style="color: #000000;">требуется</span> <span style="color: #000000;">организовать</span> <span style="color: #000000;">задержку</span> <span style="color: #000000;">в</span> <span style="color: #000000;">выполнении</span> <span style="color: #000000;">кода</span><span style="color: #000000;">, </span><span style="color: #000000;">но</span> <span style="color: #000000;">что</span> <span style="color: #000000;">бы</span> <span style="color: #000000;">при</span> <span style="color: #000000;">этому</span> <span style="color: #000000;">приложение</span> <span style="color: #000000;">не</span> <span style="color: #000000;">зависало</span><span style="color: #000000;">, </span><span style="color: #000000;">могло</span> <span style="color: #000000;">реагировать</span> <span style="color: #000000;">на</span> <span style="color: #000000;">сообщения</span><span style="color: #000000;"> Windows, </span><span style="color: #000000;">в</span> <span style="color: #000000;">часности</span> <span style="color: #000000;">могло</span> <span style="color: #000000;">перерисовываться</span><span style="color: #000000;">..</span></span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/alternativa-dlya-sleep-no-chtoby-prilozhenie-ne-zavisalo.html">Подробнее...</a></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-style: italic;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Часто</span> <span style="color: #000000;">требуется</span> <span style="color: #000000;">организовать</span> <span style="color: #000000;">задержку</span> <span style="color: #000000;">в</span> <span style="color: #000000;">выполнении</span> <span style="color: #000000;">кода</span><span style="color: #000000;">, </span><span style="color: #000000;">но</span> <span style="color: #000000;">что</span> <span style="color: #000000;">бы</span> <span style="color: #000000;">при</span> <span style="color: #000000;">этому</span> <span style="color: #000000;">приложение</span> <span style="color: #000000;">не</span> <span style="color: #000000;">зависало</span><span style="color: #000000;">, </span><span style="color: #000000;">могло</span> <span style="color: #000000;">реагировать</span> <span style="color: #000000;">на</span> <span style="color: #000000;">сообщения</span><span style="color: #000000;"> Windows, </span><span style="color: #000000;">в</span> <span style="color: #000000;">часности</span> <span style="color: #000000;">могло</span> <span style="color: #000000;">перерисовываться</span><span style="color: #000000;">..</span></span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/alternativa-dlya-sleep-no-chtoby-prilozhenie-ne-zavisalo.html">Подробнее...</a></p> Вывод текста с использованием Windows API функций 2017-10-24T17:42:54+07:00 2017-10-24T17:42:54+07:00 https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/vyvod-teksta-s-ispolzovaniem-windows-api-funktsij.html Super User toto44@inbox.ru <p> </p> <p style="margin: 7px 0px; text-align: justify;"> </p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Вывод текста является одной из основных задач, которую приходится решать в программе при организации вывода данных. Речь пойдет о выводе текста с использованием Windows API функций. Данная статья, безусловно не претендует на полноту обзора этой тематики, но о некоторых "подводных камнях" я все же расскажу.</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Функции, которые позволяют это выполнять, весьма разнообразны, и использовать их, как Вы уже поняли, можно в разных ситуациях и случаях, и собственно говоря, именно Вам и решать, какие использовать. Кроме функций, которые непосредственно выводят текст, также существует внушительный список "подсобных" функций.</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/vyvod-teksta-s-ispolzovaniem-windows-api-funktsij.html">Подробнее...</a></p> <p> </p> <p style="margin: 7px 0px; text-align: justify;"> </p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Вывод текста является одной из основных задач, которую приходится решать в программе при организации вывода данных. Речь пойдет о выводе текста с использованием Windows API функций. Данная статья, безусловно не претендует на полноту обзора этой тематики, но о некоторых "подводных камнях" я все же расскажу.</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Функции, которые позволяют это выполнять, весьма разнообразны, и использовать их, как Вы уже поняли, можно в разных ситуациях и случаях, и собственно говоря, именно Вам и решать, какие использовать. Кроме функций, которые непосредственно выводят текст, также существует внушительный список "подсобных" функций.</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/vyvod-teksta-s-ispolzovaniem-windows-api-funktsij.html">Подробнее...</a></p> Для чего нужен WinAPI 2017-10-24T16:55:21+07:00 2017-10-24T16:55:21+07:00 https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/dlya-chego-nuzhen-winapi.html Super User toto44@inbox.ru <p style="margin: 7px 0px; text-align: justify;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Иногда требуется работать с объектами WINDOWS не используя VCL. Где это может пригодиться?</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Например:</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">При отсутствии у приложения окна - консольный проект.</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Если нужно работать быстро, а известно, что функции WinApi работают на порядок быстрее, чем стандартные классы Delphi.</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Работа с устройствами ввода - вывода. Многие вещи в Дельфи можно делать через только через дескриптор, например чтение сообщений из MailSlot, работа с процессами и thread и т.д.</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Что это такое?</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/dlya-chego-nuzhen-winapi.html">Подробнее...</a></p> <p style="margin: 7px 0px; text-align: justify;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Иногда требуется работать с объектами WINDOWS не используя VCL. Где это может пригодиться?</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Например:</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">При отсутствии у приложения окна - консольный проект.</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Если нужно работать быстро, а известно, что функции WinApi работают на порядок быстрее, чем стандартные классы Delphi.</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Работа с устройствами ввода - вывода. Многие вещи в Дельфи можно делать через только через дескриптор, например чтение сообщений из MailSlot, работа с процессами и thread и т.д.</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Что это такое?</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/dlya-chego-nuzhen-winapi.html">Подробнее...</a></p> Закрыть выбранное окно 2017-10-24T17:18:26+07:00 2017-10-24T17:18:26+07:00 https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/zakryt-vybrannoe-okno.html Super User toto44@inbox.ru <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">PostMessage(FindWindow(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">Nil</span><span class="f_CodeExample" style="color: #000000;">, Pchar(</span><span class="f_CodeExample" style="color: #ff0000;">'Название Окна'</span><span class="f_CodeExample" style="color: #000000;">)), WM_QUIT, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">);</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Автор: <span style="text-decoration: underline;">Radmin</span></span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">PostMessage(FindWindow(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">Nil</span><span class="f_CodeExample" style="color: #000000;">, Pchar(</span><span class="f_CodeExample" style="color: #ff0000;">'Название Окна'</span><span class="f_CodeExample" style="color: #000000;">)), WM_QUIT, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">);</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Автор: <span style="text-decoration: underline;">Radmin</span></span></p> Запись сообщений в журнал событий Windows на Delphi 2017-10-24T17:35:06+07:00 2017-10-24T17:35:06+07:00 https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/zapis-soobshchenij-v-zhurnal-sobytij-windows-na-delphi.html Super User toto44@inbox.ru <p><span style="color: #000000; font-family: 'Times New Roman';"> </span></p> <p style="margin: 7px 0px;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Приложение</span> <span style="color: #000000;">может</span> <span style="color: #000000;">записывать</span> <span style="color: #000000;">сообщения</span> <span style="color: #000000;">в</span> <span style="color: #000000;">журнал</span> <span style="color: #000000;">используя</span> <span style="color: #000000;">следующие</span> <span style="color: #000000;">функции</span><span style="color: #000000;"> WinAPI. </span><span style="color: #000000;">Подробное</span> <span style="color: #000000;">описание</span> <span style="color: #000000;">параметров</span> <span style="color: #000000;">этих</span> <span style="color: #000000;">функций</span> <span style="color: #000000;">содержится</span> <span style="color: #000000;">в</span> <span style="color: #000000;">документации</span> <span style="color: #000000;">к</span><span style="color: #000000;"> API. </span></span></p> <div style="margin: 7px 0px 7px 24px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="line-height: normal;" border="0" cellspacing="0" cellpadding="0"> <tbody> <tr valign="baseline"> <td width="24"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-style: normal; text-decoration: none;">·</span></td> <td><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">RegisterEventSource - </span><span style="color: #000000;">Открывает</span><span style="color: #000000;"> handle </span><span style="color: #000000;">для</span> <span style="color: #000000;">доступа</span> <span style="color: #000000;">к</span> <span style="color: #000000;">журналу</span> <span style="color: #000000;">на</span> <span style="color: #000000;">локальной</span> <span style="color: #000000;">или</span> <span style="color: #000000;">удаленной</span> <span style="color: #000000;">машине</span><span style="color: #000000;">. </span></span></td> </tr> </tbody> </table> </div> <div style="margin: 7px 0px 7px 24px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="line-height: normal;" border="0" cellspacing="0" cellpadding="0"> <tbody> <tr valign="baseline"> <td width="24"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-style: normal; text-decoration: none;">·</span></td> <td><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">ReportEvent - </span><span style="color: #000000;">Собственно</span> <span style="color: #000000;">записывает</span> <span style="color: #000000;">сообщение</span><span style="color: #000000;">. </span></span></td> </tr> </tbody> </table> </div> <p style="margin: 7px 0px;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Для</span> <span style="color: #000000;">записи</span> <span style="color: #000000;">сообщений</span> <span style="color: #000000;">в</span> <span style="color: #000000;">журнал</span> <span style="color: #000000;">в</span> <span style="color: #000000;">упрощенной</span> <span style="color: #000000;">манере</span> <span style="color: #000000;">просто</span> <span style="color: #000000;">произведите</span> <span style="color: #000000;">вызов</span><span style="color: #000000;"> RegisterEventSource </span><span style="color: #000000;">с</span> <span style="color: #000000;">именем</span> <span style="color: #000000;">машины</span><span style="color: #000000;"> (UNC), </span><span style="color: #000000;">в</span> <span style="color: #000000;">журнал</span> <span style="color: #000000;">которой</span> <span style="color: #000000;">вы</span> <span style="color: #000000;">хотите</span> <span style="color: #000000;">поместить</span> <span style="color: #000000;">сообщение</span><span style="color: #000000;"> (nil </span><span style="color: #000000;">для</span> <span style="color: #000000;">локальной</span> <span style="color: #000000;">машины</span><span style="color: #000000;">), </span><span style="color: #000000;">и</span> <span style="color: #000000;">именем</span> <span style="color: #000000;">события</span><span style="color: #000000;">. </span><span style="color: #000000;">Имя</span> <span style="color: #000000;">события</span> <span style="color: #000000;">это</span> <span style="color: #000000;">обычно</span> <span style="color: #000000;">имя</span> <span style="color: #000000;">приложения</span><span style="color: #000000;">, </span><span style="color: #000000;">но</span> <span style="color: #000000;">может</span> <span style="color: #000000;">быть</span> <span style="color: #000000;">чем</span><span style="color: #000000;">-</span><span style="color: #000000;">то</span> <span style="color: #000000;">более</span> <span style="color: #000000;">информативным</span><span style="color: #000000;">. </span><span style="color: #000000;">Как</span> <span style="color: #000000;">только</span> <span style="color: #000000;">источник</span> <span style="color: #000000;">событий</span> <span style="color: #000000;">зарегистрирован</span><span style="color: #000000;">, </span><span style="color: #000000;">можно</span> <span style="color: #000000;">записывать</span> <span style="color: #000000;">события</span> <span style="color: #000000;">при</span> <span style="color: #000000;">помощи</span><span style="color: #000000;"> ReportEvent </span><span style="color: #000000;">с</span><span style="color: #000000;"> handle, </span><span style="color: #000000;">который</span> <span style="color: #000000;">вернула</span><span style="color: #000000;"> RegisterEventSource. </span></span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/zapis-soobshchenij-v-zhurnal-sobytij-windows-na-delphi.html">Подробнее...</a></p> <p><span style="color: #000000; font-family: 'Times New Roman';"> </span></p> <p style="margin: 7px 0px;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Приложение</span> <span style="color: #000000;">может</span> <span style="color: #000000;">записывать</span> <span style="color: #000000;">сообщения</span> <span style="color: #000000;">в</span> <span style="color: #000000;">журнал</span> <span style="color: #000000;">используя</span> <span style="color: #000000;">следующие</span> <span style="color: #000000;">функции</span><span style="color: #000000;"> WinAPI. </span><span style="color: #000000;">Подробное</span> <span style="color: #000000;">описание</span> <span style="color: #000000;">параметров</span> <span style="color: #000000;">этих</span> <span style="color: #000000;">функций</span> <span style="color: #000000;">содержится</span> <span style="color: #000000;">в</span> <span style="color: #000000;">документации</span> <span style="color: #000000;">к</span><span style="color: #000000;"> API. </span></span></p> <div style="margin: 7px 0px 7px 24px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="line-height: normal;" border="0" cellspacing="0" cellpadding="0"> <tbody> <tr valign="baseline"> <td width="24"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-style: normal; text-decoration: none;">·</span></td> <td><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">RegisterEventSource - </span><span style="color: #000000;">Открывает</span><span style="color: #000000;"> handle </span><span style="color: #000000;">для</span> <span style="color: #000000;">доступа</span> <span style="color: #000000;">к</span> <span style="color: #000000;">журналу</span> <span style="color: #000000;">на</span> <span style="color: #000000;">локальной</span> <span style="color: #000000;">или</span> <span style="color: #000000;">удаленной</span> <span style="color: #000000;">машине</span><span style="color: #000000;">. </span></span></td> </tr> </tbody> </table> </div> <div style="margin: 7px 0px 7px 24px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="line-height: normal;" border="0" cellspacing="0" cellpadding="0"> <tbody> <tr valign="baseline"> <td width="24"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-style: normal; text-decoration: none;">·</span></td> <td><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">ReportEvent - </span><span style="color: #000000;">Собственно</span> <span style="color: #000000;">записывает</span> <span style="color: #000000;">сообщение</span><span style="color: #000000;">. </span></span></td> </tr> </tbody> </table> </div> <p style="margin: 7px 0px;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Для</span> <span style="color: #000000;">записи</span> <span style="color: #000000;">сообщений</span> <span style="color: #000000;">в</span> <span style="color: #000000;">журнал</span> <span style="color: #000000;">в</span> <span style="color: #000000;">упрощенной</span> <span style="color: #000000;">манере</span> <span style="color: #000000;">просто</span> <span style="color: #000000;">произведите</span> <span style="color: #000000;">вызов</span><span style="color: #000000;"> RegisterEventSource </span><span style="color: #000000;">с</span> <span style="color: #000000;">именем</span> <span style="color: #000000;">машины</span><span style="color: #000000;"> (UNC), </span><span style="color: #000000;">в</span> <span style="color: #000000;">журнал</span> <span style="color: #000000;">которой</span> <span style="color: #000000;">вы</span> <span style="color: #000000;">хотите</span> <span style="color: #000000;">поместить</span> <span style="color: #000000;">сообщение</span><span style="color: #000000;"> (nil </span><span style="color: #000000;">для</span> <span style="color: #000000;">локальной</span> <span style="color: #000000;">машины</span><span style="color: #000000;">), </span><span style="color: #000000;">и</span> <span style="color: #000000;">именем</span> <span style="color: #000000;">события</span><span style="color: #000000;">. </span><span style="color: #000000;">Имя</span> <span style="color: #000000;">события</span> <span style="color: #000000;">это</span> <span style="color: #000000;">обычно</span> <span style="color: #000000;">имя</span> <span style="color: #000000;">приложения</span><span style="color: #000000;">, </span><span style="color: #000000;">но</span> <span style="color: #000000;">может</span> <span style="color: #000000;">быть</span> <span style="color: #000000;">чем</span><span style="color: #000000;">-</span><span style="color: #000000;">то</span> <span style="color: #000000;">более</span> <span style="color: #000000;">информативным</span><span style="color: #000000;">. </span><span style="color: #000000;">Как</span> <span style="color: #000000;">только</span> <span style="color: #000000;">источник</span> <span style="color: #000000;">событий</span> <span style="color: #000000;">зарегистрирован</span><span style="color: #000000;">, </span><span style="color: #000000;">можно</span> <span style="color: #000000;">записывать</span> <span style="color: #000000;">события</span> <span style="color: #000000;">при</span> <span style="color: #000000;">помощи</span><span style="color: #000000;"> ReportEvent </span><span style="color: #000000;">с</span><span style="color: #000000;"> handle, </span><span style="color: #000000;">который</span> <span style="color: #000000;">вернула</span><span style="color: #000000;"> RegisterEventSource. </span></span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/zapis-soobshchenij-v-zhurnal-sobytij-windows-na-delphi.html">Подробнее...</a></p> Запретить в выбранном окне кнопку закрытия x 2017-10-24T17:17:44+07:00 2017-10-24T17:17:44+07:00 https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/zapretit-v-vybrannom-okne-knopku-zakrytiya-x.html Super User toto44@inbox.ru <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">EnableMenuItem(GetSystemMenu(FindWindow(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">Nil</span><span class="f_CodeExample" style="color: #000000;">, Pchar(</span><span class="f_CodeExample" style="color: #ff0000;">'Название Окна'</span><span class="f_CodeExample" style="color: #000000;">)),False)</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> ,SC_CLOSE,MF_BYCOMMAND </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">or</span><span class="f_CodeExample" style="color: #000000;"> MF_GRAYED);</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="color: #ff6600; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;"><span style="color: #333333; font-family: Tahoma;"> </span></span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Автор: <span style="text-decoration: underline;">Radmin</span></span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">EnableMenuItem(GetSystemMenu(FindWindow(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">Nil</span><span class="f_CodeExample" style="color: #000000;">, Pchar(</span><span class="f_CodeExample" style="color: #ff0000;">'Название Окна'</span><span class="f_CodeExample" style="color: #000000;">)),False)</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> ,SC_CLOSE,MF_BYCOMMAND </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">or</span><span class="f_CodeExample" style="color: #000000;"> MF_GRAYED);</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="color: #ff6600; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;"><span style="color: #333333; font-family: Tahoma;"> </span></span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Автор: <span style="text-decoration: underline;">Radmin</span></span></p> Использование Debug API 2017-10-24T17:44:45+07:00 2017-10-24T17:44:45+07:00 https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/ispolzovanie-debug-api.html Super User toto44@inbox.ru <p style="margin: 7px 0px; text-align: justify;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">С чего все начиналось:</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> С начала. Мне нужно было написать перехватчик вызовов WinSock. Дабы любая программа могла работать через SOCKS5-проксик. Я посчитал, что перехват вызовов DLL'ки проще, чем судорожные попытки написать драйвер (да и сейчас так считаю). Енота, правда, ехидно улыбалась и говорила "ну-ну", но я-таки справился. SOCKS сниффер еще пишу, но в принципах перехвата уже разобрался :-) [Енота: разобраться-то он действительно разобрался, а соксифиера нет до сих пор...]</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Как все будет:</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/ispolzovanie-debug-api.html">Подробнее...</a></p> <p style="margin: 7px 0px; text-align: justify;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">С чего все начиналось:</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> С начала. Мне нужно было написать перехватчик вызовов WinSock. Дабы любая программа могла работать через SOCKS5-проксик. Я посчитал, что перехват вызовов DLL'ки проще, чем судорожные попытки написать драйвер (да и сейчас так считаю). Енота, правда, ехидно улыбалась и говорила "ну-ну", но я-таки справился. SOCKS сниффер еще пишу, но в принципах перехвата уже разобрался :-) [Енота: разобраться-то он действительно разобрался, а соксифиера нет до сих пор...]</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Как все будет:</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/ispolzovanie-debug-api.html">Подробнее...</a></p> Использование функций перечисления WinAPI 2017-10-24T17:14:44+07:00 2017-10-24T17:14:44+07:00 https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/ispolzovanie-funktsij-perechisleniya-winapi.html Super User toto44@inbox.ru <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Для получения информации о множественных объектах Windows (окнах, принтерах, шрифтах, настройках экрана и так далее - всего несколько десятков вариантов) используются функции, начинающиеся с Enum. Эти функции работают по принципу, аналогичному итератору TCollection.FirstThat, то есть они вызывают функцию, переданную им в качестве параметра для каждого перечисляемого объекта, передавая ей в параметрах данные объекта и, в последнем параметре, указатель на пользовательские данные, переданный функции EnumXXX. Перечисление продолжается до тех пор, пока не будут перечислены все объекты. Немедленно прекратить перечисление можно, возвратив False. Ниже приведен пример заполнения списка ListBox1 данными по всем окнам Windows в виде " класс - заголовок" по нажатию кнопки Button1. </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/ispolzovanie-funktsij-perechisleniya-winapi.html">Подробнее...</a></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Для получения информации о множественных объектах Windows (окнах, принтерах, шрифтах, настройках экрана и так далее - всего несколько десятков вариантов) используются функции, начинающиеся с Enum. Эти функции работают по принципу, аналогичному итератору TCollection.FirstThat, то есть они вызывают функцию, переданную им в качестве параметра для каждого перечисляемого объекта, передавая ей в параметрах данные объекта и, в последнем параметре, указатель на пользовательские данные, переданный функции EnumXXX. Перечисление продолжается до тех пор, пока не будут перечислены все объекты. Немедленно прекратить перечисление можно, возвратив False. Ниже приведен пример заполнения списка ListBox1 данными по всем окнам Windows в виде " класс - заголовок" по нажатию кнопки Button1. </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/ispolzovanie-funktsij-perechisleniya-winapi.html">Подробнее...</a></p> Как заставить приложение Delphi отвечать на сообщения Windows? 2017-10-24T17:14:03+07:00 2017-10-24T17:14:03+07:00 https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/kak-zastavit-prilozhenie-delphi-otvechat-na-soobshcheniya-windows.html Super User toto44@inbox.ru <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Используем WM_WININICHANGED в качестве примера :</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;"> </span><span style="color: #000000;">Объявление метода в TForm позволит вам обрабатывать сообщение WM_WININICHANGED:</span></span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #008000; font-weight: bold;">procedure</span> WMWinIniChange(<span style="color: #008000; font-weight: bold;">var</span> <span style="color: #008000; font-weight: bold;">Message</span>: TMessage); <span style="color: #008000; font-weight: bold;">message</span> WM_WININICHANGE;</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;"> </span><span style="color: #000000;">Код в implementation может выглядеть так:</span></span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/kak-zastavit-prilozhenie-delphi-otvechat-na-soobshcheniya-windows.html">Подробнее...</a></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Используем WM_WININICHANGED в качестве примера :</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;"> </span><span style="color: #000000;">Объявление метода в TForm позволит вам обрабатывать сообщение WM_WININICHANGED:</span></span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #008000; font-weight: bold;">procedure</span> WMWinIniChange(<span style="color: #008000; font-weight: bold;">var</span> <span style="color: #008000; font-weight: bold;">Message</span>: TMessage); <span style="color: #008000; font-weight: bold;">message</span> WM_WININICHANGE;</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;"> </span><span style="color: #000000;">Код в implementation может выглядеть так:</span></span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/kak-zastavit-prilozhenie-delphi-otvechat-na-soobshcheniya-windows.html">Подробнее...</a></p> Как использовать WinAPI? 2017-10-24T16:43:27+07:00 2017-10-24T16:43:27+07:00 https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/kak-ispolzovat-winapi.html Super User toto44@inbox.ru <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">WinAPI - это те функции которыми управляется работа приложений в Windows. Они являются частью системы, и подгружаются вместе с виндос в библиотеке kernel32.dll.</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">В Делфи эти функции приемущественно описанны в библиотеке Windows, которая автоматически включается в ваш новый проект. Вы можете открыть эту библиотеку и посмотреть сами. Большая часть VCL - это надстройка над WinAPI.</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Для каждого запущенного приложения создается процесс и в этом процессе основной поток (приложение может создавать свои дополнитльные потоки - все они будут принадлежать его процессу), а уж потоки создают окна. Каждый поток имеет уникальный числовой индификатор называемый ThreadID. Это просто целое число которое дается (ассоциируется) этому потоку. Точно так же имеет свой уникальный индификатор каждое окно в системе, называемый Handle. Он обозначается обычно типом HWND, но это просто целое. 4-х байтное.</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/kak-ispolzovat-winapi.html">Подробнее...</a></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">WinAPI - это те функции которыми управляется работа приложений в Windows. Они являются частью системы, и подгружаются вместе с виндос в библиотеке kernel32.dll.</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">В Делфи эти функции приемущественно описанны в библиотеке Windows, которая автоматически включается в ваш новый проект. Вы можете открыть эту библиотеку и посмотреть сами. Большая часть VCL - это надстройка над WinAPI.</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Для каждого запущенного приложения создается процесс и в этом процессе основной поток (приложение может создавать свои дополнитльные потоки - все они будут принадлежать его процессу), а уж потоки создают окна. Каждый поток имеет уникальный числовой индификатор называемый ThreadID. Это просто целое число которое дается (ассоциируется) этому потоку. Точно так же имеет свой уникальный индификатор каждое окно в системе, называемый Handle. Он обозначается обычно типом HWND, но это просто целое. 4-х байтное.</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/kak-ispolzovat-winapi.html">Подробнее...</a></p> Как писать Win32API приложения на Delphi 2017-10-24T17:08:57+07:00 2017-10-24T17:08:57+07:00 https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/kak-pisat-win32api-prilozheniya-na-delphi.html Super User toto44@inbox.ru <p style="margin: 7px 0px; text-align: justify;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Главная пробема, возникающая при написании WinAPI приложений - это неудобство ручного создания всех окон приложения. Требуется вызывать функцию CreateWindow для каждого (в том числе и дочернго) окна программы, а затем еще и менять шрифт в некоторых из них. Лучшим на мой взгляд выходом из этой ситуации является использование ресурсов диалоговых окон (dialog box resources) для соэдания всех окон приложения. В этой статье я расскажу как это делается в Delphi на примере простоо приложения с одним главным и двумя (модальными) окнами.</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/kak-pisat-win32api-prilozheniya-na-delphi.html">Подробнее...</a></p> <p style="margin: 7px 0px; text-align: justify;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Главная пробема, возникающая при написании WinAPI приложений - это неудобство ручного создания всех окон приложения. Требуется вызывать функцию CreateWindow для каждого (в том числе и дочернго) окна программы, а затем еще и менять шрифт в некоторых из них. Лучшим на мой взгляд выходом из этой ситуации является использование ресурсов диалоговых окон (dialog box resources) для соэдания всех окон приложения. В этой статье я расскажу как это делается в Delphi на примере простоо приложения с одним главным и двумя (модальными) окнами.</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/kak-pisat-win32api-prilozheniya-na-delphi.html">Подробнее...</a></p> Как получить описание кода, полученного GetLastError? 2017-10-24T17:15:14+07:00 2017-10-24T17:15:14+07:00 https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/kak-poluchit-opisanie-koda-poluchennogo-getlasterror.html Super User toto44@inbox.ru <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Функция RTL SysErrorMessage(GetLastError).</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 7px 0px; padding: 0px; text-align: justify; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button1Click(Sender: TObject);</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">{Cause a Windows system error message to be logged}</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> ShowMessage(IntToStr(lStrLen(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">nil</span><span class="f_CodeExample" style="color: #000000;">)));</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> ShowMessage(SysErrorMessage(GetLastError));</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Функция RTL SysErrorMessage(GetLastError).</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 7px 0px; padding: 0px; text-align: justify; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button1Click(Sender: TObject);</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">{Cause a Windows system error message to be logged}</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;"> ShowMessage(IntToStr(lStrLen(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">nil</span><span class="f_CodeExample" style="color: #000000;">)));</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> ShowMessage(SysErrorMessage(GetLastError));</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> Как с помощью API поместить Label на Form? 2017-10-24T17:12:07+07:00 2017-10-24T17:12:07+07:00 https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/kak-s-pomoshchyu-api-pomestit-label-na-form.html Super User toto44@inbox.ru <p><span style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">hLabel : HWND ;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">...</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">hLabel := CreateWindow ( </span><span class="f_CodeExample" style="color: #ff0000;">'STATIC'</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #ff0000;">'test'</span><span class="f_CodeExample" style="color: #000000;">, WS_CHILD </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">or</span><span class="f_CodeExample" style="color: #000000;"> WS_VISIBLE, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">200</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">40</span><span class="f_CodeExample" style="color: #000000;">, hWnd, NULL, hInstance, NULL ); </span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Автор ответа: Baa  Примечание: Vit</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Скорее всего последний параметр не "NULL", а "Nil" (NULL в паскале - варианта для обозначения пустого поля в базе данных).</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/kak-s-pomoshchyu-api-pomestit-label-na-form.html">Подробнее...</a></p> <p><span style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">hLabel : HWND ;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">...</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">hLabel := CreateWindow ( </span><span class="f_CodeExample" style="color: #ff0000;">'STATIC'</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #ff0000;">'test'</span><span class="f_CodeExample" style="color: #000000;">, WS_CHILD </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">or</span><span class="f_CodeExample" style="color: #000000;"> WS_VISIBLE, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">200</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #800000;">40</span><span class="f_CodeExample" style="color: #000000;">, hWnd, NULL, hInstance, NULL ); </span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Автор ответа: Baa  Примечание: Vit</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Скорее всего последний параметр не "NULL", а "Nil" (NULL в паскале - варианта для обозначения пустого поля в базе данных).</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/kak-s-pomoshchyu-api-pomestit-label-na-form.html">Подробнее...</a></p> Механизм вызова удаленных процедур - RPC 2017-10-24T17:39:41+07:00 2017-10-24T17:39:41+07:00 https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/mekhanizm-vyzova-udalennykh-protsedur-rpc.html Super User toto44@inbox.ru <p style="margin: 7px 0px; text-align: justify;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Программы</span><span style="color: #000000;">, </span><span style="color: #000000;">общающиеся</span> <span style="color: #000000;">через</span> <span style="color: #000000;">сеть</span><span style="color: #000000;">, </span><span style="color: #000000;">нуждаются</span> <span style="color: #000000;">в</span> <span style="color: #000000;">механизме</span> <span style="color: #000000;">связи</span><span style="color: #000000;">. </span><span style="color: #000000;">На</span> <span style="color: #000000;">нижнем</span> <span style="color: #000000;">уровне</span> <span style="color: #000000;">по</span> <span style="color: #000000;">поступлении</span> <span style="color: #000000;">пакетов</span> <span style="color: #000000;">подается</span> <span style="color: #000000;">сигнал</span><span style="color: #000000;">, </span><span style="color: #000000;">обрабатываемый</span> <span style="color: #000000;">сетевой</span> <span style="color: #000000;">программой</span> <span style="color: #000000;">обработки</span> <span style="color: #000000;">сигналов</span><span style="color: #000000;">. </span><span style="color: #000000;">На</span> <span style="color: #000000;">верхнем</span> <span style="color: #000000;">уровне</span> <span style="color: #000000;">работает</span> <span style="color: #000000;">механизм</span><span style="color: #000000;"> rendezvous (</span><span style="color: #000000;">рандеву</span><span style="color: #000000;">), </span><span style="color: #000000;">принятый</span> <span style="color: #000000;">в</span> <span style="color: #000000;">языке</span> <span style="color: #000000;">Ада</span><span style="color: #000000;">. </span><span style="color: #000000;">В</span><span style="color: #000000;"> NFS </span><span style="color: #000000;">используется</span> <span style="color: #000000;">механизм</span> <span style="color: #000000;">вызова</span> <span style="color: #000000;">удаленных</span> <span style="color: #000000;">процедур</span><span style="color: #000000;"> (RPC), </span><span style="color: #000000;">в</span> <span style="color: #000000;">котором</span> <span style="color: #000000;">клиент</span> <span style="color: #000000;">взаимодействует</span> <span style="color: #000000;">с</span> <span style="color: #000000;">сервером</span><span style="color: #000000;"> (</span><span style="color: #000000;">см</span><span style="color: #000000;">. </span><span style="color: #000000;">Рисунок</span><span style="color: #000000;"> 1). </span><span style="color: #000000;">В</span> <span style="color: #000000;">соответствии</span> <span style="color: #000000;">с</span> <span style="color: #000000;">этим</span> <span style="color: #000000;">процессом</span> <span style="color: #000000;">клиент</span> <span style="color: #000000;">сначала</span> <span style="color: #000000;">обращается</span> <span style="color: #000000;">к</span> <span style="color: #000000;">процедуре</span><span style="color: #000000;">, </span><span style="color: #000000;">посылающей</span> <span style="color: #000000;">запрос</span> <span style="color: #000000;">на</span> <span style="color: #000000;">сервер</span><span style="color: #000000;">. </span><span style="color: #000000;">По</span> <span style="color: #000000;">прибытии</span> <span style="color: #000000;">пакета</span> <span style="color: #000000;">с</span> <span style="color: #000000;">запросом</span> <span style="color: #000000;">сервер</span> <span style="color: #000000;">вызывает</span> <span style="color: #000000;">процедуру</span> <span style="color: #000000;">его</span> <span style="color: #000000;">вскрытия</span><span style="color: #000000;">, </span><span style="color: #000000;">выполняет</span> <span style="color: #000000;">запрашиваемую</span> <span style="color: #000000;">услугу</span><span style="color: #000000;">, </span><span style="color: #000000;">посылает</span> <span style="color: #000000;">ответ</span><span style="color: #000000;">, </span><span style="color: #000000;">и</span> <span style="color: #000000;">управление</span> <span style="color: #000000;">возвращается</span> <span style="color: #000000;">клиенту</span><span style="color: #000000;">. </span></span></p> <p style="margin: 7px 0px;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/mekhanizm-vyzova-udalennykh-protsedur-rpc.html">Подробнее...</a></p> <p style="margin: 7px 0px; text-align: justify;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Программы</span><span style="color: #000000;">, </span><span style="color: #000000;">общающиеся</span> <span style="color: #000000;">через</span> <span style="color: #000000;">сеть</span><span style="color: #000000;">, </span><span style="color: #000000;">нуждаются</span> <span style="color: #000000;">в</span> <span style="color: #000000;">механизме</span> <span style="color: #000000;">связи</span><span style="color: #000000;">. </span><span style="color: #000000;">На</span> <span style="color: #000000;">нижнем</span> <span style="color: #000000;">уровне</span> <span style="color: #000000;">по</span> <span style="color: #000000;">поступлении</span> <span style="color: #000000;">пакетов</span> <span style="color: #000000;">подается</span> <span style="color: #000000;">сигнал</span><span style="color: #000000;">, </span><span style="color: #000000;">обрабатываемый</span> <span style="color: #000000;">сетевой</span> <span style="color: #000000;">программой</span> <span style="color: #000000;">обработки</span> <span style="color: #000000;">сигналов</span><span style="color: #000000;">. </span><span style="color: #000000;">На</span> <span style="color: #000000;">верхнем</span> <span style="color: #000000;">уровне</span> <span style="color: #000000;">работает</span> <span style="color: #000000;">механизм</span><span style="color: #000000;"> rendezvous (</span><span style="color: #000000;">рандеву</span><span style="color: #000000;">), </span><span style="color: #000000;">принятый</span> <span style="color: #000000;">в</span> <span style="color: #000000;">языке</span> <span style="color: #000000;">Ада</span><span style="color: #000000;">. </span><span style="color: #000000;">В</span><span style="color: #000000;"> NFS </span><span style="color: #000000;">используется</span> <span style="color: #000000;">механизм</span> <span style="color: #000000;">вызова</span> <span style="color: #000000;">удаленных</span> <span style="color: #000000;">процедур</span><span style="color: #000000;"> (RPC), </span><span style="color: #000000;">в</span> <span style="color: #000000;">котором</span> <span style="color: #000000;">клиент</span> <span style="color: #000000;">взаимодействует</span> <span style="color: #000000;">с</span> <span style="color: #000000;">сервером</span><span style="color: #000000;"> (</span><span style="color: #000000;">см</span><span style="color: #000000;">. </span><span style="color: #000000;">Рисунок</span><span style="color: #000000;"> 1). </span><span style="color: #000000;">В</span> <span style="color: #000000;">соответствии</span> <span style="color: #000000;">с</span> <span style="color: #000000;">этим</span> <span style="color: #000000;">процессом</span> <span style="color: #000000;">клиент</span> <span style="color: #000000;">сначала</span> <span style="color: #000000;">обращается</span> <span style="color: #000000;">к</span> <span style="color: #000000;">процедуре</span><span style="color: #000000;">, </span><span style="color: #000000;">посылающей</span> <span style="color: #000000;">запрос</span> <span style="color: #000000;">на</span> <span style="color: #000000;">сервер</span><span style="color: #000000;">. </span><span style="color: #000000;">По</span> <span style="color: #000000;">прибытии</span> <span style="color: #000000;">пакета</span> <span style="color: #000000;">с</span> <span style="color: #000000;">запросом</span> <span style="color: #000000;">сервер</span> <span style="color: #000000;">вызывает</span> <span style="color: #000000;">процедуру</span> <span style="color: #000000;">его</span> <span style="color: #000000;">вскрытия</span><span style="color: #000000;">, </span><span style="color: #000000;">выполняет</span> <span style="color: #000000;">запрашиваемую</span> <span style="color: #000000;">услугу</span><span style="color: #000000;">, </span><span style="color: #000000;">посылает</span> <span style="color: #000000;">ответ</span><span style="color: #000000;">, </span><span style="color: #000000;">и</span> <span style="color: #000000;">управление</span> <span style="color: #000000;">возвращается</span> <span style="color: #000000;">клиенту</span><span style="color: #000000;">. </span></span></p> <p style="margin: 7px 0px;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/mekhanizm-vyzova-udalennykh-protsedur-rpc.html">Подробнее...</a></p> Написание программ на чистом WinAPI 2017-10-24T16:53:15+07:00 2017-10-24T16:53:15+07:00 https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/napisanie-programm-na-chistom-winapi.html Super User toto44@inbox.ru <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-style: italic;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Попробуем написать с Вами программу, которая не будет пользоваться VCL, а будет использовать вызовы функций Windows API.</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Приложения такого типа нужны, когда размер исполняемого файла является критичным. Например, в инсталяторах, деинсталяторах, самораспаковывающихся архивах и т.п. В крайнем случае, для того чтобы посмотреть какую работу выполняет за нас VCL, и что из себя представляет Windows-программа.</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> На самом деле все очень просто...</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Для этого нам необходимо:</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/napisanie-programm-na-chistom-winapi.html">Подробнее...</a></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-style: italic;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Попробуем написать с Вами программу, которая не будет пользоваться VCL, а будет использовать вызовы функций Windows API.</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Приложения такого типа нужны, когда размер исполняемого файла является критичным. Например, в инсталяторах, деинсталяторах, самораспаковывающихся архивах и т.п. В крайнем случае, для того чтобы посмотреть какую работу выполняет за нас VCL, и что из себя представляет Windows-программа.</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> На самом деле все очень просто...</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Для этого нам необходимо:</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/napisanie-programm-na-chistom-winapi.html">Подробнее...</a></p> Основы работы с Windows API 2017-10-24T16:49:27+07:00 2017-10-24T16:49:27+07:00 https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/osnovy-raboty-s-windows-api.html Super User toto44@inbox.ru <h1 style="text-align: center;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Введение.</span></h1> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Цель этого обзора - помочь человеку перейти от использования средств Delphi к функциям Win API. Предполагается, что читатель уже неплохо владеет Delphi, поэтому будет подчёркиваться, прежде всего, разница между этими двумя инструментами. Кроме того, многие авторы книг по Delphi не уделяют достаточно внимания функциям Win API, предназначенным для работы с окнами и графикой, потому что считают, что VCL Delphi достаточно хорошо справляется с этими задачами. Так что часто приходится учиться работе с Win API по книгам по 16-разрядному Borland Pascal'ю. Поэтому я буду обращать внимание и на отличие 32-разрядных версий от 16-разрядных. Но я не буду без особой необходимости останавливаться на подробном описании конкретных функций, так как это всё сделано в справочной системе. Я также остановлюсь и на этой самой справочной системе, потому что начинающему программисту может оказаться не очень просто разобраться с ней.</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/osnovy-raboty-s-windows-api.html">Подробнее...</a></p> <h1 style="text-align: center;"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Введение.</span></h1> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Цель этого обзора - помочь человеку перейти от использования средств Delphi к функциям Win API. Предполагается, что читатель уже неплохо владеет Delphi, поэтому будет подчёркиваться, прежде всего, разница между этими двумя инструментами. Кроме того, многие авторы книг по Delphi не уделяют достаточно внимания функциям Win API, предназначенным для работы с окнами и графикой, потому что считают, что VCL Delphi достаточно хорошо справляется с этими задачами. Так что часто приходится учиться работе с Win API по книгам по 16-разрядному Borland Pascal'ю. Поэтому я буду обращать внимание и на отличие 32-разрядных версий от 16-разрядных. Но я не буду без особой необходимости останавливаться на подробном описании конкретных функций, так как это всё сделано в справочной системе. Я также остановлюсь и на этой самой справочной системе, потому что начинающему программисту может оказаться не очень просто разобраться с ней.</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/osnovy-raboty-s-windows-api.html">Подробнее...</a></p> Отображение формы выбранного окна 2017-10-24T17:16:09+07:00 2017-10-24T17:16:09+07:00 https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/otobrazhenie-formy-vybrannogo-okna.html Super User toto44@inbox.ru <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">{</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">SW_MAXIMIZE - Развёрнуть форму</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">SW_MINIMIZE - Минимизировать форму</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">SW_SHOW - Показать форму</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">SW_HIDE - Спрятать форму</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">}</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">ShowWindow(FindWindow(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">Nil</span><span class="f_CodeExample" style="color: #000000;">,Pchar(</span><span class="f_CodeExample" style="color: #ff0000;">'Название Окна'</span><span class="f_CodeExample" style="color: #000000;">)),SW_MAXIMIZE);</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Автор: Radmin</span></p> <p><span style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-style: italic;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">{</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">SW_MAXIMIZE - Развёрнуть форму</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">SW_MINIMIZE - Минимизировать форму</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">SW_SHOW - Показать форму</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">SW_HIDE - Спрятать форму</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">}</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">ShowWindow(FindWindow(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">Nil</span><span class="f_CodeExample" style="color: #000000;">,Pchar(</span><span class="f_CodeExample" style="color: #ff0000;">'Название Окна'</span><span class="f_CodeExample" style="color: #000000;">)),SW_MAXIMIZE);</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Автор: Radmin</span></p> <p><span style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-style: italic;"> </span></p> Перехват нажатия на системные кнопки формы (закрытие , минимизация окна и т.д.) 2017-10-24T17:13:03+07:00 2017-10-24T17:13:03+07:00 https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/perekhvat-nazhatiya-na-sistemnye-knopki-formy-zakrytie-minimizatsiya-okna-i-t-d.html Super User toto44@inbox.ru <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Перехват нажатия на системные кнопки формы (закрытие , минимизация окна и т.д.) </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   Сообщение WM_SYSCOMMAND приходит перед выполнением соответствующей команды,</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    что дает возможность переопределить код.</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   Описание :</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   WM_SYSCOMMAND </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   uCmdType = wParam;        // type of system command requested </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   xPos = LOWORD(lParam);    // horizontal postion, in screen coordinates </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   yPos = HIWORD(lParam);    // vertical postion, in screen coordinates </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/perekhvat-nazhatiya-na-sistemnye-knopki-formy-zakrytie-minimizatsiya-okna-i-t-d.html">Подробнее...</a></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Перехват нажатия на системные кнопки формы (закрытие , минимизация окна и т.д.) </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   Сообщение WM_SYSCOMMAND приходит перед выполнением соответствующей команды,</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">    что дает возможность переопределить код.</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   Описание :</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   WM_SYSCOMMAND </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   uCmdType = wParam;        // type of system command requested </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   xPos = LOWORD(lParam);    // horizontal postion, in screen coordinates </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">   yPos = HIWORD(lParam);    // vertical postion, in screen coordinates </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/perekhvat-nazhatiya-na-sistemnye-knopki-formy-zakrytie-minimizatsiya-okna-i-t-d.html">Подробнее...</a></p> Поменять заголовок выбранного окна 2017-10-24T17:19:56+07:00 2017-10-24T17:19:56+07:00 https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/pomenyat-zagolovok-vybrannogo-okna.html Super User toto44@inbox.ru <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">SetWindowText(FindWindow(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">Nil</span><span class="f_CodeExample" style="color: #000000;">,Pchar(</span><span class="f_CodeExample" style="color: #ff0000;">'Старый Заголовок'</span><span class="f_CodeExample" style="color: #000000;">)),pchar(</span><span class="f_CodeExample" style="color: #ff0000;">'Новый заголовок'</span><span class="f_CodeExample" style="color: #000000;">));</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Автор: <span style="text-decoration: underline;">Radmin</span></span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">SetWindowText(FindWindow(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">Nil</span><span class="f_CodeExample" style="color: #000000;">,Pchar(</span><span class="f_CodeExample" style="color: #ff0000;">'Старый Заголовок'</span><span class="f_CodeExample" style="color: #000000;">)),pchar(</span><span class="f_CodeExample" style="color: #ff0000;">'Новый заголовок'</span><span class="f_CodeExample" style="color: #000000;">));</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Автор: <span style="text-decoration: underline;">Radmin</span></span></p> Пример приложений на чистом API 2017-10-24T17:01:46+07:00 2017-10-24T17:01:46+07:00 https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/primer-prilozhenij-na-chistom-api.html Super User toto44@inbox.ru <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">В этом выпуске мы попробуем написать с Вами программу, которая не будет пользоваться VCL, а будет использовать вызовы функций Windows API. Приложения такого типа нужны, когда размер исполняемого файла является критичным. Например, в инсталяторах, деинсталяторах, самораспаковывающихся архивах и т.п. В крайнем случае, для того чтобы посмотреть какую работу выполняет за нас VCL, и что из себя представляет Windows-программа. На самом деле все очень просто...</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Для этого нам необходимо:</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/primer-prilozhenij-na-chistom-api.html">Подробнее...</a></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">В этом выпуске мы попробуем написать с Вами программу, которая не будет пользоваться VCL, а будет использовать вызовы функций Windows API. Приложения такого типа нужны, когда размер исполняемого файла является критичным. Например, в инсталяторах, деинсталяторах, самораспаковывающихся архивах и т.п. В крайнем случае, для того чтобы посмотреть какую работу выполняет за нас VCL, и что из себя представляет Windows-программа. На самом деле все очень просто...</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Для этого нам необходимо:</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/primer-prilozhenij-na-chistom-api.html">Подробнее...</a></p> Присвоение форме выбранного окна свойства Disabled / Enabled 2017-10-24T17:16:52+07:00 2017-10-24T17:16:52+07:00 https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/prisvoenie-forme-vybrannogo-okna-svojstva-disabled-enabled.html Super User toto44@inbox.ru <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">{в конце процедуры: false для запрета true для разрешения}</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">EnableWindow(FindWindow(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">Nil</span><span class="f_CodeExample" style="color: #000000;">,Pchar(</span><span class="f_CodeExample" style="color: #ff0000;">'Название Окна'</span><span class="f_CodeExample" style="color: #000000;">)), false);</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Автор: p0s0l</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">{в конце процедуры: false для запрета true для разрешения}</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">EnableWindow(FindWindow(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">Nil</span><span class="f_CodeExample" style="color: #000000;">,Pchar(</span><span class="f_CodeExample" style="color: #ff0000;">'Название Окна'</span><span class="f_CodeExample" style="color: #000000;">)), false);</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Автор: p0s0l</span></p> Программирование на основе Win32 API в Delphi (статья) 2017-10-24T16:42:27+07:00 2017-10-24T16:42:27+07:00 https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/programmirovanie-na-osnove-win32-api-v-delphi-statya.html Super User toto44@inbox.ru <h1 style="text-align: center;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Введение</span></h1> <p> </p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Любую современную программу или программную технологию можно представить как совокупность программных "слоев". Каждый из этих слоев производит свою собственную работу, которая заключается в повышении уровня абстракции производимых операций. Так, самый низший слой (слои) вводит понятия, которые позволяют абстрагироваться от используемого оборудования; следующий слой (слои) позволяет программисту абстрагироваться от сложной последовательности вызовов функций, вводя такое понятие как протокол и т.д. Практически в любом современном программном продукте можно обнаружить и выделить около десятка последовательных слоев абстракции. </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/programmirovanie-na-osnove-win32-api-v-delphi-statya.html">Подробнее...</a></p> <h1 style="text-align: center;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Введение</span></h1> <p> </p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Любую современную программу или программную технологию можно представить как совокупность программных "слоев". Каждый из этих слоев производит свою собственную работу, которая заключается в повышении уровня абстракции производимых операций. Так, самый низший слой (слои) вводит понятия, которые позволяют абстрагироваться от используемого оборудования; следующий слой (слои) позволяет программисту абстрагироваться от сложной последовательности вызовов функций, вводя такое понятие как протокол и т.д. Практически в любом современном программном продукте можно обнаружить и выделить около десятка последовательных слоев абстракции. </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/programmirovanie-na-osnove-win32-api-v-delphi-statya.html">Подробнее...</a></p> Сделать форму выбранного окна поверх остальных 2017-10-24T17:19:13+07:00 2017-10-24T17:19:13+07:00 https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/sdelat-formu-vybrannogo-okna-poverkh-ostalnykh.html Super User toto44@inbox.ru <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">SetForegroundWindow(FindWindow(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">Nil</span><span class="f_CodeExample" style="color: #000000;">,Pchar(</span><span class="f_CodeExample" style="color: #ff0000;">'Название Окна'</span><span class="f_CodeExample" style="color: #000000;">)));</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Автор: <span style="text-decoration: underline;">Radmin</span></span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <div style="margin: 0px; padding: 0px; text-align: left; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">SetForegroundWindow(FindWindow(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">Nil</span><span class="f_CodeExample" style="color: #000000;">,Pchar(</span><span class="f_CodeExample" style="color: #ff0000;">'Название Окна'</span><span class="f_CodeExample" style="color: #000000;">)));</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Автор: <span style="text-decoration: underline;">Radmin</span></span></p> Что такое сообщения Windows? 2017-10-24T17:29:34+07:00 2017-10-24T17:29:34+07:00 https://delphi-hlp.ru/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/chto-takoe-soobshcheniya-windows.html Super User toto44@inbox.ru <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-style: italic;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Потребности</span> <span style="color: #000000;">программиста</span> <span style="color: #000000;">на</span><span style="color: #000000;"> Delphi </span><span style="color: #000000;">практически</span> <span style="color: #000000;">полностью</span> <span style="color: #000000;">удовлетворяются</span> <span style="color: #000000;">возможностями</span> <span style="color: #000000;">работы</span> <span style="color: #000000;">с</span> <span style="color: #000000;">событиями</span><span style="color: #000000;">, </span><span style="color: #000000;">предоставляемыми</span><span style="color: #000000;"> VCL. </span><span style="color: #000000;">Но</span> <span style="color: #000000;">при</span> <span style="color: #000000;">создании</span> <span style="color: #000000;">серьёзных</span> <span style="color: #000000;">нестандартных</span> <span style="color: #000000;">приложений</span> <span style="color: #000000;">и</span> <span style="color: #000000;">особенно</span> <span style="color: #000000;">при</span> <span style="color: #000000;">разработке</span> <span style="color: #000000;">компонентов</span><span style="color: #000000;"> Delphi </span><span style="color: #000000;">вам</span><span style="color: #000000;">, </span><span style="color: #000000;">безусловно</span> <span style="color: #000000;">потребуется</span> <span style="color: #000000;">непосредственно</span> <span style="color: #000000;">обрабатывать</span> <span style="color: #000000;">сообщения</span><span style="color: #000000;"> Windows, </span><span style="color: #000000;">после</span> <span style="color: #000000;">чего</span> <span style="color: #000000;">генерировать</span> <span style="color: #000000;">события</span><span style="color: #000000;">, </span><span style="color: #000000;">соответствующие</span> <span style="color: #000000;">этим</span> <span style="color: #000000;">сообщениям</span><span style="color: #000000;">. </span><span style="color: #000000;">Что</span> <span style="color: #000000;">же</span> <span style="color: #000000;">такое</span> <span style="color: #000000;">сообщение</span><span style="color: #000000;">? </span><span style="color: #000000;">Сообщение</span><span style="color: #000000;"> - </span><span style="color: #000000;">это</span> <span style="color: #000000;">извещение</span> <span style="color: #000000;">о</span> <span style="color: #000000;">некотором</span> <span style="color: #000000;">имевшем</span> <span style="color: #000000;">место</span> <span style="color: #000000;">событии</span><span style="color: #000000;">, </span><span style="color: #000000;">посылаемое</span> <span style="color: #000000;">системой</span><span style="color: #000000;"> Windows </span><span style="color: #000000;">в</span> <span style="color: #000000;">адрес</span> <span style="color: #000000;">приложения</span><span style="color: #000000;">. </span><span style="color: #000000;">Любые</span> <span style="color: #000000;">действия</span> <span style="color: #000000;">пользователя</span><span style="color: #000000;"> - </span><span style="color: #000000;">щелчок</span> <span style="color: #000000;">мышью</span><span style="color: #000000;">, </span><span style="color: #000000;">изменение</span> <span style="color: #000000;">размеров</span> <span style="color: #000000;">окна</span> <span style="color: #000000;">приложения</span><span style="color: #000000;">, </span><span style="color: #000000;">нажатие</span> <span style="color: #000000;">клавиши</span> <span style="color: #000000;">на</span> <span style="color: #000000;">клавиатуре</span><span style="color: #000000;"> - </span><span style="color: #000000;">вынуждают</span><span style="color: #000000;"> Windows </span><span style="color: #000000;">отправить</span> <span style="color: #000000;">приложению</span> <span style="color: #000000;">сообщение</span><span style="color: #000000;">, </span><span style="color: #000000;">извещающее</span> <span style="color: #000000;">о</span> <span style="color: #000000;">том</span><span style="color: #000000;">, </span><span style="color: #000000;">что</span> <span style="color: #000000;">же</span> <span style="color: #000000;">произошло</span> <span style="color: #000000;">в</span> <span style="color: #000000;">системе</span><span style="color: #000000;">. </span><span style="color: #000000;">Сообщение</span> <span style="color: #000000;">представляет</span> <span style="color: #000000;">собой</span> <span style="color: #000000;">определённую</span> <span style="color: #000000;">запись</span><span style="color: #000000;">, </span><span style="color: #000000;">объявленную</span> <span style="color: #000000;">в</span> <span style="color: #000000;">модуле</span><span style="color: #000000;"> Windows </span><span style="color: #000000;">так</span><span style="color: #000000;">: </span></span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/chto-takoe-soobshcheniya-windows.html">Подробнее...</a></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-style: italic;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Потребности</span> <span style="color: #000000;">программиста</span> <span style="color: #000000;">на</span><span style="color: #000000;"> Delphi </span><span style="color: #000000;">практически</span> <span style="color: #000000;">полностью</span> <span style="color: #000000;">удовлетворяются</span> <span style="color: #000000;">возможностями</span> <span style="color: #000000;">работы</span> <span style="color: #000000;">с</span> <span style="color: #000000;">событиями</span><span style="color: #000000;">, </span><span style="color: #000000;">предоставляемыми</span><span style="color: #000000;"> VCL. </span><span style="color: #000000;">Но</span> <span style="color: #000000;">при</span> <span style="color: #000000;">создании</span> <span style="color: #000000;">серьёзных</span> <span style="color: #000000;">нестандартных</span> <span style="color: #000000;">приложений</span> <span style="color: #000000;">и</span> <span style="color: #000000;">особенно</span> <span style="color: #000000;">при</span> <span style="color: #000000;">разработке</span> <span style="color: #000000;">компонентов</span><span style="color: #000000;"> Delphi </span><span style="color: #000000;">вам</span><span style="color: #000000;">, </span><span style="color: #000000;">безусловно</span> <span style="color: #000000;">потребуется</span> <span style="color: #000000;">непосредственно</span> <span style="color: #000000;">обрабатывать</span> <span style="color: #000000;">сообщения</span><span style="color: #000000;"> Windows, </span><span style="color: #000000;">после</span> <span style="color: #000000;">чего</span> <span style="color: #000000;">генерировать</span> <span style="color: #000000;">события</span><span style="color: #000000;">, </span><span style="color: #000000;">соответствующие</span> <span style="color: #000000;">этим</span> <span style="color: #000000;">сообщениям</span><span style="color: #000000;">. </span><span style="color: #000000;">Что</span> <span style="color: #000000;">же</span> <span style="color: #000000;">такое</span> <span style="color: #000000;">сообщение</span><span style="color: #000000;">? </span><span style="color: #000000;">Сообщение</span><span style="color: #000000;"> - </span><span style="color: #000000;">это</span> <span style="color: #000000;">извещение</span> <span style="color: #000000;">о</span> <span style="color: #000000;">некотором</span> <span style="color: #000000;">имевшем</span> <span style="color: #000000;">место</span> <span style="color: #000000;">событии</span><span style="color: #000000;">, </span><span style="color: #000000;">посылаемое</span> <span style="color: #000000;">системой</span><span style="color: #000000;"> Windows </span><span style="color: #000000;">в</span> <span style="color: #000000;">адрес</span> <span style="color: #000000;">приложения</span><span style="color: #000000;">. </span><span style="color: #000000;">Любые</span> <span style="color: #000000;">действия</span> <span style="color: #000000;">пользователя</span><span style="color: #000000;"> - </span><span style="color: #000000;">щелчок</span> <span style="color: #000000;">мышью</span><span style="color: #000000;">, </span><span style="color: #000000;">изменение</span> <span style="color: #000000;">размеров</span> <span style="color: #000000;">окна</span> <span style="color: #000000;">приложения</span><span style="color: #000000;">, </span><span style="color: #000000;">нажатие</span> <span style="color: #000000;">клавиши</span> <span style="color: #000000;">на</span> <span style="color: #000000;">клавиатуре</span><span style="color: #000000;"> - </span><span style="color: #000000;">вынуждают</span><span style="color: #000000;"> Windows </span><span style="color: #000000;">отправить</span> <span style="color: #000000;">приложению</span> <span style="color: #000000;">сообщение</span><span style="color: #000000;">, </span><span style="color: #000000;">извещающее</span> <span style="color: #000000;">о</span> <span style="color: #000000;">том</span><span style="color: #000000;">, </span><span style="color: #000000;">что</span> <span style="color: #000000;">же</span> <span style="color: #000000;">произошло</span> <span style="color: #000000;">в</span> <span style="color: #000000;">системе</span><span style="color: #000000;">. </span><span style="color: #000000;">Сообщение</span> <span style="color: #000000;">представляет</span> <span style="color: #000000;">собой</span> <span style="color: #000000;">определённую</span> <span style="color: #000000;">запись</span><span style="color: #000000;">, </span><span style="color: #000000;">объявленную</span> <span style="color: #000000;">в</span> <span style="color: #000000;">модуле</span><span style="color: #000000;"> Windows </span><span style="color: #000000;">так</span><span style="color: #000000;">: </span></span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/programmirovanie-bez-vcl-rabota-s-winapi/chto-takoe-soobshcheniya-windows.html">Подробнее...</a></p>