Взаимодействие с другими языками Delphi — среда быстрой разработки, где в качестве языка программирования используется Object Pascal. На сегодняшний день позволяет разрабатывать ПО для Microsoft Windows, Mac OS, iOS и Android и входит в состав Embarcadero RAD Studio https://delphi-hlp.ru/index.php/vzaimodejstvie-s-drugimi-yazykami.feed 2022-09-13T04:33:55+07:00 Delphi help info@delphi-hlp.ru Joomla! - Open Source Content Management Программирование АССЕМБЛЕРОМ в Delphi 2017-07-05T21:34:15+07:00 2017-07-05T21:34:15+07:00 https://delphi-hlp.ru/index.php/vzaimodejstvie-s-drugimi-yazykami/programmirovanie-assemblerom-v-delphi.html Super User toto44@inbox.ru <h1><strong>Программирование АССЕМБЛЕРОМ в Delphi</strong></h1> <p>Автор: Александр Баранецкий</p> <p> </p> <p>Каждый день множество программистов (кроме опытных) в Delphi, используя код высокого уровня, пишут свои программы. Как правило, пренебрегая таким понятием как Assembler, имеется ввиду в строенный в DELPHI. Конечно, тяжело сказать, что на голом «асе» можно сотворить великолепный шедевр имеется ввиду красота - VCL (Visual Component Library). Особенно относительно начинающих программистов, которые только начинают учить IDE. Но зато можно повысить скорость какого нибудь математического или системного алгоритма.</p> <p> </p> <p>Сегодня я представляю на ваш суд статью по «асу». Скорее всего, она будет интересна начинающим программерам. Я не мастер, но сеже.</p> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/vzaimodejstvie-s-drugimi-yazykami/programmirovanie-assemblerom-v-delphi.html">Подробнее...</a></p> <h1><strong>Программирование АССЕМБЛЕРОМ в Delphi</strong></h1> <p>Автор: Александр Баранецкий</p> <p> </p> <p>Каждый день множество программистов (кроме опытных) в Delphi, используя код высокого уровня, пишут свои программы. Как правило, пренебрегая таким понятием как Assembler, имеется ввиду в строенный в DELPHI. Конечно, тяжело сказать, что на голом «асе» можно сотворить великолепный шедевр имеется ввиду красота - VCL (Visual Component Library). Особенно относительно начинающих программистов, которые только начинают учить IDE. Но зато можно повысить скорость какого нибудь математического или системного алгоритма.</p> <p> </p> <p>Сегодня я представляю на ваш суд статью по «асу». Скорее всего, она будет интересна начинающим программерам. Я не мастер, но сеже.</p> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/vzaimodejstvie-s-drugimi-yazykami/programmirovanie-assemblerom-v-delphi.html">Подробнее...</a></p> Аналог функции С memcmp 2015-12-08T20:40:21+06:00 2015-12-08T20:40:21+06:00 https://delphi-hlp.ru/index.php/vzaimodejstvie-s-drugimi-yazykami/analog-funktsii-s-memcmp.html Super User toto44@inbox.ru <p><span style="color: #000000;">Я создал следующие две функции, существенно повышающие производительность в приложениях, активно работающих с данными. Вам нужно всего лишь обеспечить контроль типов и границ допустимого диапазона, все остальное они сделают с любым типом данных лучше нас :-) . </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/vzaimodejstvie-s-drugimi-yazykami/analog-funktsii-s-memcmp.html">Подробнее...</a></p> <p><span style="color: #000000;">Я создал следующие две функции, существенно повышающие производительность в приложениях, активно работающих с данными. Вам нужно всего лишь обеспечить контроль типов и границ допустимого диапазона, все остальное они сделают с любым типом данных лучше нас :-) . </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/vzaimodejstvie-s-drugimi-yazykami/analog-funktsii-s-memcmp.html">Подробнее...</a></p> Вызов cи-шной функции с переменным числом параметров 2015-12-08T15:51:46+06:00 2015-12-08T15:51:46+06:00 https://delphi-hlp.ru/index.php/vzaimodejstvie-s-drugimi-yazykami/vyzov-ci-shnoj-funktsii-s-peremennym-chislom-parametrov.html Super User toto44@inbox.ru <p class="p_Heading1"><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt; font-weight: bold;">Вызов cи-шной функции с переменным числом параметров</span></p> <p> <span style="color: #000000;">Автор: Владимир Переплетчик </span></p> <p><span style="color: #000000;">Комментарий к статье по поводу wsprintf </span></p> <p><span style="color: #000000;"> </span><span style="color: #000000;">Сама по себе статья вызывает мало интереса, кроме того, что поднята интересная проблема - вызов с-шной функции с переменным числом параметров. В ответах с использованием массивов вообще, IMHO, ошибка - на стек попадет адрес массива, а в с это совсем не то. Но решение проблемы существует, правда надо ручками повозиться со стеком. Приводимая ниже функция на скорую руку переделывается из работающей в реальном проекте похожего буфера с-паскаль, но там функция в dll имеет тип вызова cdecl и другие обязательные параметры, в связи с чем возможны "опечатки"</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/vzaimodejstvie-s-drugimi-yazykami/vyzov-ci-shnoj-funktsii-s-peremennym-chislom-parametrov.html">Подробнее...</a></p> <p class="p_Heading1"><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt; font-weight: bold;">Вызов cи-шной функции с переменным числом параметров</span></p> <p> <span style="color: #000000;">Автор: Владимир Переплетчик </span></p> <p><span style="color: #000000;">Комментарий к статье по поводу wsprintf </span></p> <p><span style="color: #000000;"> </span><span style="color: #000000;">Сама по себе статья вызывает мало интереса, кроме того, что поднята интересная проблема - вызов с-шной функции с переменным числом параметров. В ответах с использованием массивов вообще, IMHO, ошибка - на стек попадет адрес массива, а в с это совсем не то. Но решение проблемы существует, правда надо ручками повозиться со стеком. Приводимая ниже функция на скорую руку переделывается из работающей в реальном проекте похожего буфера с-паскаль, но там функция в dll имеет тип вызова cdecl и другие обязательные параметры, в связи с чем возможны "опечатки"</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/vzaimodejstvie-s-drugimi-yazykami/vyzov-ci-shnoj-funktsii-s-peremennym-chislom-parametrov.html">Подробнее...</a></p> Вызов Delphi DLL из MS Visual C++ 2015-12-08T15:55:40+06:00 2015-12-08T15:55:40+06:00 https://delphi-hlp.ru/index.php/vzaimodejstvie-s-drugimi-yazykami/vyzov-delphi-dll-iz-ms-visual-c.html Super User toto44@inbox.ru <p><span style="color: #000000;">Во-первых, Вам необходимо объявить все экспортируемые в Delphi DLL функции с ключевыми словами export; stdcall; </span></p> <p><span style="color: #000000;">Во-вторых, файл заголовка VC++ должен объявить все функции как тип __declspec(dllexport) __stdcall (применяйте двойное подчеркивание в секции объявления прототипа функции extern "C" { ... }. (вместо этого можно также использовать __declspec(dllimport)...). Для примера:</span></p> <p><span style="color: #000000;"> </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: 'Times New Roman'; 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><span style="color: #008000; font-family: 'Courier New'; font-size: 9pt; font-weight: bold;">extern</span> <span style="color: #ff0000; font-family: 'Courier New'; font-size: 9pt;">"C"</span><span style="font-family: 'Courier New'; font-size: 9pt;"> {</span></p> <p><span style="color: #008000; font-family: 'Courier New'; font-size: 9pt; font-weight: bold;">int</span> <span style="color: #008000; font-family: 'Courier New'; font-size: 9pt; font-weight: bold;">__declspec</span><span style="font-family: 'Courier New'; font-size: 9pt;">(dllexport)     </span><span style="color: #008000; font-family: 'Courier New'; font-size: 9pt; font-weight: bold;">__stdcall</span><span style="font-family: 'Courier New'; font-size: 9pt;"> plusone(</span><span style="color: #008000; font-family: 'Courier New'; font-size: 9pt; font-weight: bold;">int</span><span style="font-family: 'Courier New'; font-size: 9pt;">); } </span></p> </td> </tr> </tbody> </table> </div> <p><span style="color: #000000;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/vzaimodejstvie-s-drugimi-yazykami/vyzov-delphi-dll-iz-ms-visual-c.html">Подробнее...</a></p> <p><span style="color: #000000;">Во-первых, Вам необходимо объявить все экспортируемые в Delphi DLL функции с ключевыми словами export; stdcall; </span></p> <p><span style="color: #000000;">Во-вторых, файл заголовка VC++ должен объявить все функции как тип __declspec(dllexport) __stdcall (применяйте двойное подчеркивание в секции объявления прототипа функции extern "C" { ... }. (вместо этого можно также использовать __declspec(dllimport)...). Для примера:</span></p> <p><span style="color: #000000;"> </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: 'Times New Roman'; 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><span style="color: #008000; font-family: 'Courier New'; font-size: 9pt; font-weight: bold;">extern</span> <span style="color: #ff0000; font-family: 'Courier New'; font-size: 9pt;">"C"</span><span style="font-family: 'Courier New'; font-size: 9pt;"> {</span></p> <p><span style="color: #008000; font-family: 'Courier New'; font-size: 9pt; font-weight: bold;">int</span> <span style="color: #008000; font-family: 'Courier New'; font-size: 9pt; font-weight: bold;">__declspec</span><span style="font-family: 'Courier New'; font-size: 9pt;">(dllexport)     </span><span style="color: #008000; font-family: 'Courier New'; font-size: 9pt; font-weight: bold;">__stdcall</span><span style="font-family: 'Courier New'; font-size: 9pt;"> plusone(</span><span style="color: #008000; font-family: 'Courier New'; font-size: 9pt; font-weight: bold;">int</span><span style="font-family: 'Courier New'; font-size: 9pt;">); } </span></p> </td> </tr> </tbody> </table> </div> <p><span style="color: #000000;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/vzaimodejstvie-s-drugimi-yazykami/vyzov-delphi-dll-iz-ms-visual-c.html">Подробнее...</a></p> Изучаем ассемблер в Delphi 2015-12-08T15:43:14+06:00 2015-12-08T15:43:14+06:00 https://delphi-hlp.ru/index.php/vzaimodejstvie-s-drugimi-yazykami/izuchaem-assembler-v-delphi.html Super User toto44@inbox.ru <p><span style="color: #000000; font-family: 'Times New Roman';">Основное предназначение этой статьи, заполнить пробелы в оригинальной документации по Borland Delphi Developer, при этом весь программный код, а так же теория, полность совместимы со всеми версиями Delphi.</span></p> <p><span style="color: #000000; font-family: 'Times New Roman';"> </span><span class="f_Heading1">Использование Ассемблера в Борландовком Delphi</span></p> <p><span style="color: #000000; font-family: 'Times New Roman';">Перед тем, как начать, хотелось бы определиться с уровнем знаний, необходимых для нормального усвоения данного материала. Необходимо быть знакомым со встроенными средствами отладки в Delphi. Так же необходимо иметь представление о таких терминах как тип реализации (instantiation), null pointer и распределение памяти. Если в чём-то из вышеупомянутого Вы сомневаетесь, то постарайтесь быть очень внимательны и осторожны при воплощении данного материала на практике. Кроме того, будет обсуждаться только 32-битный код, так что понадобится компилятор не ниже Delphi 2.0.</span></p> <p><span style="color: #000000; font-family: 'Times New Roman';"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/vzaimodejstvie-s-drugimi-yazykami/izuchaem-assembler-v-delphi.html">Подробнее...</a></p> <p><span style="color: #000000; font-family: 'Times New Roman';">Основное предназначение этой статьи, заполнить пробелы в оригинальной документации по Borland Delphi Developer, при этом весь программный код, а так же теория, полность совместимы со всеми версиями Delphi.</span></p> <p><span style="color: #000000; font-family: 'Times New Roman';"> </span><span class="f_Heading1">Использование Ассемблера в Борландовком Delphi</span></p> <p><span style="color: #000000; font-family: 'Times New Roman';">Перед тем, как начать, хотелось бы определиться с уровнем знаний, необходимых для нормального усвоения данного материала. Необходимо быть знакомым со встроенными средствами отладки в Delphi. Так же необходимо иметь представление о таких терминах как тип реализации (instantiation), null pointer и распределение памяти. Если в чём-то из вышеупомянутого Вы сомневаетесь, то постарайтесь быть очень внимательны и осторожны при воплощении данного материала на практике. Кроме того, будет обсуждаться только 32-битный код, так что понадобится компилятор не ниже Delphi 2.0.</span></p> <p><span style="color: #000000; font-family: 'Times New Roman';"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/vzaimodejstvie-s-drugimi-yazykami/izuchaem-assembler-v-delphi.html">Подробнее...</a></p> Использование массивов Visual Basic в Delphi 2015-12-08T20:46:59+06:00 2015-12-08T20:46:59+06:00 https://delphi-hlp.ru/index.php/vzaimodejstvie-s-drugimi-yazykami/ispolzovanie-massivov-visual-basic-v-delphi.html Super User toto44@inbox.ru <p> <span style="color: #000000;"> </span><span style="color: #000000;">Arrays can be passed as variants:</span></p> <p><span style="color: #000000;"> </span><span style="color: #000000;">VB module code:</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: 'Times New Roman'; 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><span style="font-family: 'Courier New'; font-size: 9pt;">Attribute VB_Name = </span><span style="color: #ff0000; font-family: 'Courier New'; font-size: 9pt;">"Module1"</span></p> <p><span style="color: #008000; font-family: 'Courier New'; font-size: 9pt; font-weight: bold;">Declare</span> <span style="color: #008000; font-family: 'Courier New'; font-size: 9pt; font-weight: bold;">Function</span><span style="font-family: 'Courier New'; font-size: 9pt;"> TestMin </span><span style="color: #008000; font-family: 'Courier New'; font-size: 9pt; font-weight: bold;">Lib</span> <span style="color: #ff0000; font-family: 'Courier New'; font-size: 9pt;">"c:\windows\system\NoelSArr"</span></p> <p><span style="font-family: 'Courier New'; font-size: 9pt;">   (Nums </span><span style="color: #008000; font-family: 'Courier New'; font-size: 9pt; font-weight: bold;">As</span> <span style="color: #008000; font-family: 'Courier New'; font-size: 9pt; font-weight: bold;">Variant</span><span style="font-family: 'Courier New'; font-size: 9pt;">) </span><span style="color: #008000; font-family: 'Courier New'; font-size: 9pt; font-weight: bold;">As</span> <span style="color: #008000; font-family: 'Courier New'; font-size: 9pt; font-weight: bold;">Integer</span></p> </td> </tr> </tbody> </table> </div> <p><span style="color: #000000;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/vzaimodejstvie-s-drugimi-yazykami/ispolzovanie-massivov-visual-basic-v-delphi.html">Подробнее...</a></p> <p> <span style="color: #000000;"> </span><span style="color: #000000;">Arrays can be passed as variants:</span></p> <p><span style="color: #000000;"> </span><span style="color: #000000;">VB module code:</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: 'Times New Roman'; 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><span style="font-family: 'Courier New'; font-size: 9pt;">Attribute VB_Name = </span><span style="color: #ff0000; font-family: 'Courier New'; font-size: 9pt;">"Module1"</span></p> <p><span style="color: #008000; font-family: 'Courier New'; font-size: 9pt; font-weight: bold;">Declare</span> <span style="color: #008000; font-family: 'Courier New'; font-size: 9pt; font-weight: bold;">Function</span><span style="font-family: 'Courier New'; font-size: 9pt;"> TestMin </span><span style="color: #008000; font-family: 'Courier New'; font-size: 9pt; font-weight: bold;">Lib</span> <span style="color: #ff0000; font-family: 'Courier New'; font-size: 9pt;">"c:\windows\system\NoelSArr"</span></p> <p><span style="font-family: 'Courier New'; font-size: 9pt;">   (Nums </span><span style="color: #008000; font-family: 'Courier New'; font-size: 9pt; font-weight: bold;">As</span> <span style="color: #008000; font-family: 'Courier New'; font-size: 9pt; font-weight: bold;">Variant</span><span style="font-family: 'Courier New'; font-size: 9pt;">) </span><span style="color: #008000; font-family: 'Courier New'; font-size: 9pt; font-weight: bold;">As</span> <span style="color: #008000; font-family: 'Courier New'; font-size: 9pt; font-weight: bold;">Integer</span></p> </td> </tr> </tbody> </table> </div> <p><span style="color: #000000;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/vzaimodejstvie-s-drugimi-yazykami/ispolzovanie-massivov-visual-basic-v-delphi.html">Подробнее...</a></p> Как присвоить значение полям записи с помощью Assemblera 2015-12-09T16:14:53+06:00 2015-12-09T16:14:53+06:00 https://delphi-hlp.ru/index.php/vzaimodejstvie-s-drugimi-yazykami/kak-prisvoit-znachenie-polyam-zapisi-s-pomoshchyu-assemblera.html Super User toto44@inbox.ru <p>Как присвоить значение полям записи с помощью Assemblera</p> <p class="feed-readmore"><a target="_blank" href ="/index.php/vzaimodejstvie-s-drugimi-yazykami/kak-prisvoit-znachenie-polyam-zapisi-s-pomoshchyu-assemblera.html">Подробнее...</a></p> <p>Как присвоить значение полям записи с помощью Assemblera</p> <p class="feed-readmore"><a target="_blank" href ="/index.php/vzaimodejstvie-s-drugimi-yazykami/kak-prisvoit-znachenie-polyam-zapisi-s-pomoshchyu-assemblera.html">Подробнее...</a></p> Основное отличие EXE-файлов созданных Delphi и Visual Basic 2015-12-08T20:56:40+06:00 2015-12-08T20:56:40+06:00 https://delphi-hlp.ru/index.php/vzaimodejstvie-s-drugimi-yazykami/osnovnoe-otlichie-exe-fajlov-sozdannykh-delphi-i-visual-basic.html Super User toto44@inbox.ru <p>Основное отличие EXE-файлов созданных Delphi и Visual Basic</p> <p> </p> <p>Существует два важных различия между файлами EXE, созданными в Delphi, и файлами EXE, созданными VB. Delphi создает чисто машинный код, непосредственно исполняемый компьютером, в то время как VB транслирует исходный код в промежуточную форму (р-код). Файл EXE, сгенерированный VB, в действительности является программой-интерпретатором р-кода с добавленным в конце р-кодом программы пользователя.</p> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/vzaimodejstvie-s-drugimi-yazykami/osnovnoe-otlichie-exe-fajlov-sozdannykh-delphi-i-visual-basic.html">Подробнее...</a></p> <p>Основное отличие EXE-файлов созданных Delphi и Visual Basic</p> <p> </p> <p>Существует два важных различия между файлами EXE, созданными в Delphi, и файлами EXE, созданными VB. Delphi создает чисто машинный код, непосредственно исполняемый компьютером, в то время как VB транслирует исходный код в промежуточную форму (р-код). Файл EXE, сгенерированный VB, в действительности является программой-интерпретатором р-кода с добавленным в конце р-кодом программы пользователя.</p> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/vzaimodejstvie-s-drugimi-yazykami/osnovnoe-otlichie-exe-fajlov-sozdannykh-delphi-i-visual-basic.html">Подробнее...</a></p> Соответствие типов С++ и Delphi 2015-12-08T20:42:24+06:00 2015-12-08T20:42:24+06:00 https://delphi-hlp.ru/index.php/vzaimodejstvie-s-drugimi-yazykami/sootvetstvie-tipov-s-i-delphi.html Super User toto44@inbox.ru <p>C Data Type | Object Pascal |  Description</p> <p>----------------------------------------------</p> <p>LPSTR       PAnsiChar;  String &gt;pointer</p> <p>LPCSTR      PAnsiChar;  String &gt;pointer</p> <p>DWORD       Integer;    Whole numbers</p> <p>BOOL        LongBool;   Boolean values</p> <p>PBOOL       ^BOOL;      Pointer to a Boolean value</p> <p>Pbyte       ^Byte;      Pointer to a byte value</p> <p class="feed-readmore"><a target="_blank" href ="/index.php/vzaimodejstvie-s-drugimi-yazykami/sootvetstvie-tipov-s-i-delphi.html">Подробнее...</a></p> <p>C Data Type | Object Pascal |  Description</p> <p>----------------------------------------------</p> <p>LPSTR       PAnsiChar;  String &gt;pointer</p> <p>LPCSTR      PAnsiChar;  String &gt;pointer</p> <p>DWORD       Integer;    Whole numbers</p> <p>BOOL        LongBool;   Boolean values</p> <p>PBOOL       ^BOOL;      Pointer to a Boolean value</p> <p>Pbyte       ^Byte;      Pointer to a byte value</p> <p class="feed-readmore"><a target="_blank" href ="/index.php/vzaimodejstvie-s-drugimi-yazykami/sootvetstvie-tipov-s-i-delphi.html">Подробнее...</a></p> Что Delphi знает об ассемблере 2017-07-05T21:38:10+07:00 2017-07-05T21:38:10+07:00 https://delphi-hlp.ru/index.php/vzaimodejstvie-s-drugimi-yazykami/chto-delphi-znaet-ob-assemblere.html Super User toto44@inbox.ru <h1>Что Delphi знает об ассемблере</h1> <p>Автор: Павел</p> <p>Сегодня мы рассмотрим вопрос применения ассемблера в программах, написанных на Delphi.</p> <p>Итак, что же Delphi "знает" об ассемблере?</p> <p> Команды процесора</p> <p> Ура, начиная с шестой версии, в популярном продукте Borland реализована поддержка всех команд процессора, включая команды расширений MMX, SSE, 3DNow! Теперь нет необходимости вместо простой команды rdtsc писать dw 310Fh .</p> <p class="feed-readmore"><a target="_blank" href ="/index.php/vzaimodejstvie-s-drugimi-yazykami/chto-delphi-znaet-ob-assemblere.html">Подробнее...</a></p> <h1>Что Delphi знает об ассемблере</h1> <p>Автор: Павел</p> <p>Сегодня мы рассмотрим вопрос применения ассемблера в программах, написанных на Delphi.</p> <p>Итак, что же Delphi "знает" об ассемблере?</p> <p> Команды процесора</p> <p> Ура, начиная с шестой версии, в популярном продукте Borland реализована поддержка всех команд процессора, включая команды расширений MMX, SSE, 3DNow! Теперь нет необходимости вместо простой команды rdtsc писать dw 310Fh .</p> <p class="feed-readmore"><a target="_blank" href ="/index.php/vzaimodejstvie-s-drugimi-yazykami/chto-delphi-znaet-ob-assemblere.html">Подробнее...</a></p> Эквивалент функции DoEvents из Visual Basic в Delphi 2015-12-08T20:55:58+06:00 2015-12-08T20:55:58+06:00 https://delphi-hlp.ru/index.php/vzaimodejstvie-s-drugimi-yazykami/ekvivalent-funktsii-doevents-iz-visual-basic-v-delphi.html Super User toto44@inbox.ru <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: 'Times New Roman'; 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;">Application.ProcessMessages</span></p> </td> </tr> </tbody> </table> <p> </p> <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: 'Times New Roman'; 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;">Application.ProcessMessages</span></p> </td> </tr> </tbody> </table> <p> </p> Эквивалент функции SendKeys из Visual Basic в Delphi 2015-12-08T20:54:15+06:00 2015-12-08T20:54:15+06:00 https://delphi-hlp.ru/index.php/vzaimodejstvie-s-drugimi-yazykami/ekvivalent-funktsii-sendkeys-iz-visual-basic-v-delphi.html Super User toto44@inbox.ru <p><span style="color: #000000;">The following example demonstrates procedures that provide the capibility of sending keystrokes to any window control capable of receiving keyboard input. You may use this technique to toggle the num lock, caps lock, and scroll lock keys under Windows NT. This same technique works for toggling caps lock and scroll lock keys under Windows 95, but it will not work for num lock.</span></p> <p><span style="color: #000000;"> </span></p> <p><span style="color: #000000;">Note that there are four procedures provided: SimulateKeyDown(), SimulateKeyUp(), SimulateKeystroke(), and SendKeys(), to allow greater control in your ability to send keystrokes.</span></p> <p><span style="color: #000000;"> </span></p> <p><span style="color: #000000;">The SimulateKeyDown(), SimulateKeyUp(), and SimulateKeystroke() procedures expect a virtural key code (like VK_F1). The SimulateKeystroke() procedure accepts an extra parameter that is useful when simulating the PrintScreen key. When extra is set to zero, the entire screen will be captured to the windows clipboard. When extra is set to one, only the active window will be captured.</span></p> <p><span style="color: #000000;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/vzaimodejstvie-s-drugimi-yazykami/ekvivalent-funktsii-sendkeys-iz-visual-basic-v-delphi.html">Подробнее...</a></p> <p><span style="color: #000000;">The following example demonstrates procedures that provide the capibility of sending keystrokes to any window control capable of receiving keyboard input. You may use this technique to toggle the num lock, caps lock, and scroll lock keys under Windows NT. This same technique works for toggling caps lock and scroll lock keys under Windows 95, but it will not work for num lock.</span></p> <p><span style="color: #000000;"> </span></p> <p><span style="color: #000000;">Note that there are four procedures provided: SimulateKeyDown(), SimulateKeyUp(), SimulateKeystroke(), and SendKeys(), to allow greater control in your ability to send keystrokes.</span></p> <p><span style="color: #000000;"> </span></p> <p><span style="color: #000000;">The SimulateKeyDown(), SimulateKeyUp(), and SimulateKeystroke() procedures expect a virtural key code (like VK_F1). The SimulateKeystroke() procedure accepts an extra parameter that is useful when simulating the PrintScreen key. When extra is set to zero, the entire screen will be captured to the windows clipboard. When extra is set to one, only the active window will be captured.</span></p> <p><span style="color: #000000;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/vzaimodejstvie-s-drugimi-yazykami/ekvivalent-funktsii-sendkeys-iz-visual-basic-v-delphi.html">Подробнее...</a></p>