Разное

Делфи 7 как пользоваться: Delphi 7 как пользоваться • Вэб-шпаргалка для интернет предпринимателей!

Почему я продолжаю использовать устаревшие виртовский Pascal и Delphi-7 / Habr

(О разработке алгоритмов, их описании и программной реализации)


(Модель античного святилища Аполлона в Дельфах)

Почему я продолжаю использовать устаревшие виртовский Pascal и Delphi-7?
Этот вопрос мне часто задают мои коллеги, сослуживцы по работе и здесь на Хабре. Решил ответить сразу всем в этой заметке.

Мои научные интересы в основном принадлежат области математической (или, как еще называют — компьютерной) химии. Это применение теории графов к фундаментальным и прикладным задачам органической химии (немного подробнее см.).

Для решения этих задач я применяю уже известные алгоритмы, иногда их модифицирую, а иногда делаю новые. Решение научной задачи обычно предполагает последующую публикацию в рецензируемом научном издании. Еще до начала работ стоит подумать: в каком виде я собираюсь описать новый алгоритм?

В настоящее время можно выделить четыре распространенных способа такого описания.

1. Описание на естественном языке, пожалуй, самый легкий способ. Это древнейший способ. Евклид (около 300 года до н.э.) и Эратосфен (276 год до н. э.) его использовали. Переводы и пересказы описаний их знаменитых алгоритмов широко применяются по сей день. Но и новейшие алгоритмы часто описывают этим способом. Правда, математических формул в таких описаниях стало сильно больше, по сравнению с древними описаниями. Основной недостаток этого способа — многозначность многих слов естественных языков. Поэтому существует не малый риск, что автора поймут неоднозначно. И т.о. не смогут воспроизвести его алгоритм. А воспроизводимость — одно из основных условий научного метода.

2. Описание на псевдокоде. Тоже очень популярный способ. Тут можно выделить два подхода:

2.1. Изобретение оригинального псевдокода. Так Дональд Кнут для своей знаменитой монографии «Искусство программирования для ЭВМ» специально придумал компьютер MIX и ассемблер MIXAL. Тут явный недостаток — высокий порог входа.

Для первого издания этой монографии в прошлом веке, такой подход, возможно, был оправдан. К настоящему времени создано много эмуляторов MIX, позволяющих увидеть, как работают коды из книги. Но для не очень большой статьи изобретение оригинального языка не представляется оправданным.

2.2. Использование для псевдокода упрощенной версии существующего ЯП. Про этот подход будет сказано ниже.

3. Описание на ЯП. По сути, это уже не описание алгоритма, а его реализация в виде программы. Здесь недостатки очевидны. Если читатель не знаком с применяемым ЯП, то ему может быть сложно (от слова «совсем») понять суть алгоритма. Детализированная публикация программы может вызвать сложности в бумажном издании — недостаток места. А места обычно нужно больше, чем в первых двух способах. И чтение всей программы целиком, потребует больше времени и внимания.

4. Описание с помощью блок-схемы. Этот способ уже довольно давно стал популярным. Еще Эдсгер Дейкстра его использовал в «Заметках по структурному программированию».

Для описаний небольших алгоритмов блок-схемы, безусловно, очень привлекательны своей наглядностью. Но, к сожалению, с ростом числа ветвлений и циклов блок-схема разрастается и повышается трудность восприятия. В случае бумажного представления формат бумаги может оказаться мал для блок-схемы. В связи с этим нужно упомянуть визуальный ЯП ДРАКОН, в котором предприняты меры по преодолению означенных неудобств. Однако применение специального ЯП может вернуть нас к способу 3.

Исходя из сказанного, я выбрал для себя способ 2.2. На мой взгляд, одним из наиболее подходящих для псевдокода является виртовский Pascal. Его, похоже, знают и помнят все программисты, а кто не знает — стесняется в этом признаться. Pascal-образный (Pascal-like) псевдокод интуитивно понятен (всем кто знаком, хотя с одним универсальным ЯП) и обычно хорошо структурирован, если нарочно не засорять его чем-то громоздким, и, конечно же, не использовать пресловутый goto. Для такого псевдокода доступны чекеры, и не только спелл-чекеры для правки комментариев, но и код-чекеры для кода.

В роли последних выступают компиляторы и интерпретаторы Pascal. Например, очень удобен Dr Pascal. Превратить текст на псевдокоде в съедобный для транслятора обычно труда не составляет. Мне представляется очень важным, что Pascal — жестко типизированный ЯП, последовательно реализующий принципы защитного программирования. – На этапах разработки и проверки алгоритма, средства минимизации багов очень важны. А вот трюки, типа неявных преобразований бывают вредными.

Два слова про комментарии: считаю, что комментировать нужно уже в описании алгоритма. Причем комментировать достаточно подробно – это поможет поиску ошибок, и при написании статьи. Бывают трудные задачи, которые непонятно, как решать. Тогда я начинаю со способа 1. Записываю идеи решения в текстовой файл. Далее пытаюсь детализировать эти записи, выделить подзадачи и перейти к способу 2.2. Аналогично поступаю, если есть ТЗ. Правлю копию ТЗ с целью перейти к способу 2.2. Фразы от способа 1 оформляю комментариями. Такой прием помогает выбрать значимые имена.

Если работа не на заказ, то сам пишу себе ТЗ. Описание алгоритма нужно и в случае, если не собираетесь его публиковать. Проходит время, и вы с удивлением смотрите на исходный код, реализующий алгоритм, который вам был когда-то совершенно понятен.

Еще про значимые имена – они очень важны, но комментарии не отменяют. Попробуйте впихнуть в значимое имя фразу: загрузить из архивного файла, записи для товарных вагонов, расшифровать их, пустые вагоны добавить в таблицу свободных вагонов. Получите довольно длинное имя, которое либо каждый раз безошибочно набирать, либо копировать, что может потребовать частые промотки текста. Код с такими много раз повторяющимися именами будет объемнее, чем код с единственным комментарием.

Следующим шагом после написания и описания нового алгоритма может быть его реализация и испытания полученной программы. Иногда это оправдано до доказательства корректности и теоретических оценок эффективности. — Зачем оценивать алгоритм, который врет. Для реализации использую IDE Delphi-7. Здесь у меня личная историческая причина. К примеру, если мой алгоритм на графах, то для испытаний нужно будет грузить графы. Их быстрее набирать в виде списка смежности, а для алгоритма нужна матрица смежности. Ну не писать же мне для каждого алгоритма процедуры трансляции списка в матрицу? — Понятно, что возьму эти процедуры из своего старого кода. Но почему Delphi-7, а не более новое? — К сожалению, проблемы несовместимости. Ну, а зачем с виртовского Pascal переносить на ОО Pascal Delphi? — Он ОО; зачастую даже для испытаний полезен или, даже, нужен GUI; иногда нужно испытать параллельный алгоритм и т. д. Использую не только свои старые процедуры I/O, но и, к примеру, реализацию поиска кратчайшего пути в графе, сортировку и т.д.

Но, конечно, «устарелость» Delphi-7 дает себя знать. OpenCV удалось применить и надписи в GUI Юникодом сделать (иначе под Windows 10 у моего любезного тестера не читались), а вот для CUDA пришлось переходить на C++. Отмечу, что когда программирую, то offline под Windows ХР SP 3 (с отсутствием Юникода в Delphi-7 проблем не возникает), а для online гружу другую ОС.

Говоря про испытания алгоритма, нужно отметить, что удачная работа программы — это хорошо, но, зачастую, не достаточно. Обычно нужно математически строгое доказательство.

Если лень или не удается строго доказать (самому или с чьей-то помощью), то иногда автор алгоритма объявляет его эвристическим. В общем, это может быть не страшно плохо. Есть задачи, для которых никто не нашел строгого решения. Есть такие, где ошибки не катастрофичны, например, в играх. Но есть и другие задачи. Например, поиск изоморфизма двух графов. Это известная открытая проблема, где нужно доказать, что эту задачу можно решить за полиномиальное время от числа вершин графа или, что такого решения быть не может. Притом, что открытой является и проблема P ?= NP. Предложено много эвристических алгоритмов поиска изоморфизма графов, только они никому не нужны.

После успешной проверки можно причесать программу. Сделать GUI удобным, подумать об оптимизации.

Здесь я написал про свой подход. Он, конечно, не единственный.

Некоторые математики, не умея программировать и не зная ни одного ЯП, предлагают прекрасные алгоритмы для самых разных задач. Для описания алгоритма используют обычно способ 1 — естественный язык с большим количеством математических формул. Я же придерживаюсь взгляда, что CS — экспериментальная наука, разделяя мнения Аллена Ньюэлла и Герберта А. Саймона (Newell, Allen; Simon, H. A. (1976), «Computer Science as Empirical Inquiry: Symbols and Search» (1975 ACM Turing Award Lecture), Communications of the ACM, 19).

Как установить Delphi 7 на Windows 7

Delphi 7 – интегрированная среда на языке Delphi, предназначения для разработки ПО для Microsoft Windows. Но прежде чем вы станете разработчиком, вам необходимо правильно установить и настроить  Delphi 7, чтобы не возникало проблем с совместимостью.

Особенно это актуально для пользователей, которые установили Windows 7 – здесь ошибки появляются так часто, что без инструкции не разобраться. Поэтому давайте посмотрим, как установить Delphi 7 на Windows 7.

Установка

Если вы не хотите решать проблемы с совместимостью, настоятельно рекомендуете задуматься об установке более современной версии Delphi.

Вставьте диск или смонтируйте образ. Если установщик не запустится автоматически, откройте его вручную.

На экране появится сообщение об обнаружении проблем совместимости. Можно нажать «Поиск решений», однако вряд ли вам поможет эта функция. Поэтому просто нажмите «Запуск программы», чтобы приступить к инсталляции.

В главном меню выберите «Delphi 7», чтобы запустить мастера установки.Никаких неожиданностей при инсталляции не будет: серийный номер, лицензионное соглашение, тип установки (полный, компактный, ручной). Единственный момент – выбор папки, в которую сохранятся все файлы программы. Здесь есть два варианта:

  1. Оставить путь по умолчанию (Program Files), тогда вам придется выполнить два дополнительных действия, чтобы заставить программу работать корректно.
  2. Выбрать любую папку, не требующую для записи прав администратора (например, «Мои документы»). Этот способ проще, но использовать его не рекомендуется.

Дальше нужно лишь дождаться окончания инсталляции и попытаться запустить Delphi 7 на Windows 7.

После инсталляции

При попытке включить программу появится сообщение об обнаружении ошибки совместимости. Поиск решения в интернете ничего не даст, поэтому надеяться нужно только на свои силы.

Если вы выбрали вариант со стандартной установкой и скопировали все файлы приложения в директорию «Program Files», вам нужно изменить разрешения.

Для этого:

  1. Пройдите по пути C:\Program Files\Borland\Delphi 7.
  2. Найдите папку «Bin» и щелкните на неё правой кнопкой.
  3. Откройте «Свойства» и перейдите на вкладку «Безопасность».
  4. Нажмите «Изменить» и установите для группы пользователи галочку «Разрешить» в строке «Изменение».
  5. Выйдите, нажав кнопку «ОК».

Первый запуск программы необходимо  произвести от имени администратора. Второй и последующий старт Delphi 7 можно делать в обычном режиме.

Дело в том, что во время первого запуска перезаписываются файлы в директории с программой. Современные же системы Windows по умолчанию запрещают любые манипуляции с этими файлами, что в итоге приводит к появлению ошибок.

Добавление справочной системы

После изменения разрешений Delphi 7 можно использовать для написания программ. Но если вы нажмете клавишу F1, чтобы вызвать справку, то получите сообщение о том, что старая справочная система больше не является частью Windows.

В сообщении должна быть ссылка на статью из базы знаний Microsoft. Перейдите в неё и скачайте обновления для справочной системы. Важно правильно указать версию Windows, а также пройти проверку подлинности ОС.

После этого Delphi 7 будет работать в привычном режиме, не выдавая больше никаких ошибок совместимости.

Подготовка Delphi 7 и 2005 Заявки для тестирования

Применяются к Testleft 15. 40, последнее изменение 17 марта 2022 г.

TestLeft раскрывает Public , Опубликовано , Защищенные и Private членов объектов в Delphi. приложение компилируется с отладочной информацией. В этом разделе объясняется, как включить отладочную информацию в приложения, созданные с помощью Borland Delphi v. 7 или Borland Delphi 2005 для Win32.

Компилятор Delphi генерирует отладочную информацию в формате TD32, которая компилируется в двоичные модули приложения. Однако можно извлечь отладочную информацию в отдельные файлы .tds с помощью утилиты StripTDS.

TestLeft может работать с обоими форматами. Тем не менее, мы рекомендуем вам создавать внешние файлы .tds для выпускных сборок ваших продуктов. Это уменьшит общий размер вашего приложения. Формат отладочной информации TD32 можно использовать для промежуточных или специальных сборок.

Ниже приведены подробные инструкции по изменению параметров проекта для использования нужного формата отладочной информации.

Примечание: TestLeft несовместим со средствами, меняющими формат отладочной информации (например, EurekaLog 7). Мы рекомендуем отключать такие инструменты перед компиляцией приложений, которые будут тестироваться с помощью TestLeft.

Компиляция приложений Delphi с внешней отладочной информацией (файлы TDS)

Файлы .tds создаются на основе исполняемых файлов и библиотек DLL, скомпилированных с включенной отладочной информацией TD32. Чтобы удалить отладочную информацию из модулей и сохранить ее в отдельных файлах .tds, вы можете использовать утилиту StripTDS, поставляемую с TestLeft.

Для создания файлов .tds необходимо сначала скомпилировать протестированное приложение Delphi с отладочной информацией, а затем обработать скомпилированные модули утилитой StripTDS:

  1. Измените настройки проекта для компиляции приложения с отладочной информацией TD32:

    • Откройте свой проект в Borland Delphi.

    • Выбрать проект | Параметры из главного меню Delphi. Откроется диалоговое окно «Параметры проекта».

    • Перейдите на вкладку «Компилятор» и проверьте параметры «Отладочная информация» и «Локальные символы» в группе «Отладка»:

      Примечание: Вы можете оставить локальные символы отключенными, но TestLeft UI Spy не будет отображать имена некоторых параметров метода.
    • Перейдите на вкладку Компоновщик и включите параметр Включить отладочную информацию TD32 в группе параметров EXE и DLL:

    • Нажмите OK, чтобы сохранить изменения и закрыть диалоговое окно «Параметры проекта».

    • Пересоберите приложение.

  2. Примените утилиту StripTDS к каждому скомпилированному исполняемому файлу и DLL. Например, для обработки всех файлов EXE и DLL в папке C:\MyApp и ее подпапках можно использовать следующую командную строку:

    StripTDS. exe -r -w C:\MyApp\*.exe;C:\MyApp\*.dll

    Утилита удалит отладочную информацию из исполняемых файлов и сохранит ее в отдельные файлы .tds. Утилита работает только с теми разделами бинарного файла, которые содержат отладочную информацию. Он не изменяет разделы кода и данных, поэтому ваш модуль будет работать так, как он был разработан. Дополнительные сведения об изменениях и аргументах командной строки утилиты StripTDS см. в разделе О StripTDS.

Примечания:

  • Файлы .tds, содержащие отладочную информацию, должны находиться в тех же папках, что и соответствующие модули тестируемого приложения.

  • Даже если приложение скомпилировано с включенной опцией Локальные символы, имена некоторых параметров метода могут не отображаться в TestLeft UI Spy. Если вам важен просмотр названий параметров (например, если вы разрабатываете новые тесты), скомпилируйте протестированное приложение Delphi с внутренней отладочной информацией TD32 (см. ниже).

  • Нет необходимости распространять сгенерированные файлы .tds вместе с вашим приложением.

Компиляция приложений Delphi с внутренней отладочной информацией (TD32)

  1. Выбрать проект | Опции из главного меню.

  2. В появившемся диалоговом окне «Параметры проекта» перейдите на вкладку «Компилятор». Включите параметр «Отладочная информация» в группе «Отладка», чтобы включить отладочную информацию:

    .
  3. Чтобы увидеть имена параметров метода в панели TestLeft UI Spy, отключите параметр «Оптимизация» и включите параметр «Локальные символы». При использовании Delphi 7.0 или более поздней версии также включите параметр «Использовать отладочные DCU»:

  4. Перейдите на вкладку Компоновщик и включите параметр Включить отладочную информацию TD32 в группе параметров EXE и DLL:

  5. Рекомендуется отключить параметр «Сборка с пакетами среды выполнения» на вкладке «Пакеты»:

    Если выбрано это свойство, Delphi создает файлы библиотеки пакетов Borland (. bpl) при компиляции приложения. TestLeft не может получить доступ к отладочной информации в этих файлах и некоторых элементах управления. Если это свойство не выбрано, вся информация включается в один исполняемый файл и доступна для TestLeft.

    Если по какой-либо причине вы не можете отключить параметр «Сборка с пакетами среды выполнения», TestLeft может не получить доступ к внутренним методам и свойствам приложения.
  6. Выполнив эти шаги, нажмите кнопку «ОК», чтобы сохранить изменения и закрыть диалоговое окно «Параметры проекта».

  7. Перекомпилируйте приложение.

Не забудьте перекомпилировать версию выпуска вашего приложения без отладочной информации TD32, чтобы уменьшить размер приложения.

См. также

Подготовка приложений Delphi к тестированию

Очередь электронной почты с помощью службы EASendMail

В следующих примерах кода delphi показано, как отправлять электронную почту с помощью очереди EASendMail.

Служба очереди SMTP

Служба SMTP EASendMail — это легкая и быстрая служба доставки электронной почты, которая работает с EASendMail. Компонент SMTP, позволяющий вашему приложению отправлять массовые электронные письма в фоновой очереди. служба .

Наряду со способностью выбирать получателей из базы данных в фоновом режиме и отправки электронной почты в указанное время и дату, это облегчает вашу задачу по разработке приложение электронной почты, такое как приложение для рассылки новостей. Мы настоятельно рекомендуем вам использовать Служба EASendMail с вашим ASP.NET/веб-приложением.

Важно

Для работы с сервисом EASendMail загрузите EASendMail и EASendMail Service, а затем установите оба на свой компьютер. Если вы используете службу веб-хостинга и у вас нет разрешения на установку службы на этот сервер, служба EASendMail вам не подходит.

Благодаря функции очереди электронной почты EASendMail вам не нужно кодировать несколько потоков. Служба EASendMail может автоматически отправлять электронную почту в фоновом режиме с несколькими потоками. Вам просто нужно настроить максимальное количество рабочих потоков в EASendMail Service Manager. для повышения производительности. Нажмите здесь, чтобы узнать больше о сервисе EASendMail.

Секции:

  • Установка
  • Добавить ссылку
  • Delphi — отправка электронной почты с использованием службы очередей — пример
  • Протокол TLS 1.2
  • 32-разрядная/x64 библиотека ActiveX
  • Распределение

Установка

EASendMail — это компонент SMTP, поддерживающий все операции протоколов SMTP/ESMTP. (RFC 821, RFC 822, RFC 2554). Прежде чем вы сможете использовать следующие примеры кодов, Вам следует сначала загрузить установщик EASendMail и установить его на свой компьютер.

Добавить ссылку

Чтобы использовать объект EASendMail SMTP ActiveX в вашем проекте Delphi, первым шагом будет «Добавить модульный файл EASendMail в ваш проект». Перейдите по адресу C:\Program Files\EASendMail\Include\delphi или C:\Program Files (x86)\EASendMail\Include\delphi папка, найдите EASendMailObjLib_TLB.pas , а затем скопируйте этот файл в папку вашего проекта.

 Единица Единица 1;
интерфейс
// включить модуль EASendMailObjLib_TLB в ваш проект Delphi
использует
Windows, сообщения, SysUtils, варианты, классы, графика, элементы управления, формы,
Диалоги, EASendMailObjLib_TLB, StdCtrls;
 

Вы также можете вручную создать «EASendMailObjLib_TLB.pas» следующим образом:

  • Delphi 7

    Выберите меню -> Проект -> Библиотека типов импорта и выберите EASendMailObj ActiveX Object , нажмите Create Unit , ссылка на объект EASendMail ActiveX будет добавлена ​​в ваш проект.

  • Делфи ХЕ

    Если вы используете Delphi XE для импорта библиотеки типов, выберите меню -> Component -> Import Component -> Import Type Library -> и выберите EASendMailObj ActiveX Object -> установите флажок Generate Component Wrapper -> Create Unit.

После этого вы можете начать использовать его в своем проекте Delphi.

Протокол TLS 1.2

TLS является преемником SSL, все больше и больше SMTP-серверов теперь требуют шифрования TLS 1.2 .

Если ваша операционная система Windows XP/Vista/Windows 7/Windows 2003/2008/2008 R2/2012/2012 R2 , вам необходимо включите протокол TLS 1.2 в вашей операционной системе следующим образом:

Включите TLS 1.2 в Windows XP/Vista/7/10/Windows 2008/2008 R2/2012

32-разрядная/x64 ActiveX DLL

Отдельные сборки библиотеки времени выполнения для Платформа 32 и x64

Файл Платформа
Путь установки\Lib\native\x86\EASendMailObj.dll 32 бита
Путь установки\Lib\native\x64\EASendMailObj.dll 64 бит

Распределение

  • Стандартный EXE

    Для VB6, C++, Delphi или другого стандартного exe-приложения вы можете распространять EASendMailObj.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *