ConvUtils в Delphi


Функции Delphi

Предлагаем список функций смешанных модулей, используемых в среде разработки Delphi.

Модуль Classes

Bounds Передаёт координаты вершин объекта типа TRect (прямоугольник)
Point Генерирует значение TPoint из значений X и Y
PointsEqual Сравнивает два значения TPoint на предмет равенства
Rect Создаёт величину TRect с указанием 2 точек или 4 координат

Модуль StdConvs

CelsiusToFahrenheit Конвертирует значение температуры из Цельсия в Фаренгейта
FahrenheitToCelsius Конвертирует температуру из Фаренгейта в Цельсий

Модуль FileCtrl

SelectDirectory Выводит диалоговое окно, с помощью которого пользователь может выбрать директорию
ProcessPath Разделяет строку диск/путь/имя файла на ее составляющие части

Модуль ConvUtils

Convert Преобразует одну величину измерения в другую

Модуль Types

PtInRect Проверяет, находится ли точка в пределах прямоугольника

Модуль Variants

VarType Возвращает текущий тип Variant переменной

Printer Возвращает ссылку к глобальному объекту Printer

AssignPrn Обрабатывает принтер как текстовый файл — простой способ печати текста

Как свойства ModalResult Делфи конвертировано?

Надеюсь, это быстрый один, и «Легко, если вы знаете, как» .

Я пишу какую — то сериализации класса / сценариев для создания форм на лету, я попытался установить в TColor другой день , и получил ошибку clBtnFace is not a valid integer value или что — то подобное , и обнаружили , что константы , используемые в свойствах регистрируются так , что они могут быть преобразованы до целого числа, и поэтому я добавил код , чтобы принести конвертер и использовать его.

Теперь сегодня у меня есть аналогичный вопрос с собственностью ModalResult , но я не могу работать, как DFM десериализатор обрабатывает это свойство? Любые идеи , как она превращается mrOK в целое число?

редактировать

Существует не так много, чтобы дать пример:

Где в этом случае Instance является TButton, PropertyName является «ModalResult» и PropertyValue является «Mrok»

TModalResult в виде некоторым образом поддиапазона из Integer и Mrok это просто постоянная Integer.

Не очень хочется, чтобы ответить на мой собственный вопрос, но так как никто другой не имеет .

Там нет конвертера для ModalResults, Delphi сохраняет представление Integer в DFM как VilleK говорит в комментарии к этому вопросу. В качестве решения я зарегистрировал новый конвертер

Оба ваших примеров , которые вы дали в суб диапазоны числовых значений. Таким образом RTTI только действительно знает Базового Integer. Другие примеры включают в себя TCursor , TFontCharset и TTabOrder .

Если у вас есть тип, как это:

Вы можете использовать RTTI для получения и установки ‘exOne’ , ‘exTwo’ а ‘exThree’ также струнных.

Это можно сделать с помощью этих методов в TypInfo.pas

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

TColor реализует статический словарь под названием цвета, который может быть использован, если вы используете только 52 цветов, которые он поддерживает.

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

Затем вы могли бы перебрать элементы в массиве цветов, чтобы определить значение для данного имени.

Блог GunSmoker-а

. when altering one’s mind becomes as easy as programming a computer, what does it mean to be human.


30 апреля 2010 г.

Работа с текстовыми файлами в любой кодировке из Delphi до 2009

Как должно быть известно любому программисту, не существует такой вещи как «просто текстовый файл». Если вы не знаете, в какой кодировке хранится строка, вы не только не сможете её показать, но даже определить, где она заканчивается.

Мир вокруг нас уже давно не ограничивается ANSI, а уж тем более ASCII. На фоне этого ваши древние ANSI-программы выглядят не очень-то хорошо. Потому что они молчаливо игнорируют существование альтернативных кодировок вообще. Для них существует только текущая кодовая страница ANSI, не больше и не меньше.

Хотя самое нормальное решение включает в себя переход на Delphi 2010, часто вас и пользователей устраивает ваше ANSI-приложение, если бы. оно работало бы с любыми текстовыми файлами. Как это достигается? Ну, в начале текстового файла вставляется метка BOM (Byte Order Mask), указывающая на кодировку файла. Это означает, что если вы хотите загрузить произвольный текстовый файл, то вам нужно прочитать несколько байт в начале файла, после чего определить формат файла и преобразовать его в нужный вам — это довольно много работы, не так ли?

Как это реализуется в Delphi? В Delphi 2009 и выше у вас появляется класс TEncoding, позволяющий работать с различными кодировками. Класс TStrings (и TStringList) используют TEncoding для определения кодировки файла и всех преобразований.

Было бы неплохо заиметь такую штуку, скажем в Delphi 7 или Delphi 2007? К счастью, это очень просто сделать (эй, это заняло примерно 8 минут моего времени, включая проверку). Нужно просто вытащить из Delphi 2010 код TEncoding и новые методы LoadFromFile(Stream)/SaveToFile(Stream).

Представляю вашему вниманию два модуля: Encoding.pas — здесь сидит новый класс TEncoding — штука, полезная сама по себе, даже если вы не используете её для работы с текстовыми файлами.

Второй модуль, StringListUnicodeSupport.pas методом Geo добавляет в обычный TStringList поддержку произвольной кодировки, а также перегруженные варианты методов загрузки и сохранения, позволяющие указать кодировку явно (SaveToFile/Stream сохраняют в ANSI, если вам нужна другая кодировка, вы должны указать её вторым параметром).

Вам достаточно подключить StringListUnicodeSupport в uses и вы волшебным образом получаете возможность работы с любыми текстовыми файлами:
Как пользователи динозаврических Delphi вы, вероятно, не знакомы с TEncoding и перегруженным вариантом методов TStrings. Что ж, к счастью, вы можете воспользоваться online-справкой: TEncoding, использование TEncoging, LoadFromFile, SaveToFile.

Delphi Convert возвращает недопустимые типы

Я пытаюсь выполнить простейшие преобразования в delphi, используя встроенную функцию преобразования.

Просто преобразовать галлоны в литры.

Однако delphi возвращает недопустимый тип при преобразовании. единиц.

Галлоны и литры имеют вид TConvTypes

Илон Маск рекомендует:  Что такое код ncurses_noecho

Однако delphi возвращает следующее, когда я пытаюсь выполнить code.

Это должна быть самая простая операция после прочтения документации Embarcadero, следующие должны работать. На данный момент я не могу понять, что происходит.

Может ли кто-нибудь указать мне правильное направление?

Я отредактировал пост, чтобы включить полный код устройства

ConvUtils в Delphi

88 просмотра

1 ответ

8 Репутация автора

Я пытаюсь выполнить самые простые преобразования в Delphi, используя встроенную функцию Convert.

Просто конвертировать галлоны в литры.

Однако delphi возвращает недопустимый тип в единицах преобразования.

Галлоны и литры в форме как TConvTypes

Однако delphi возвращает следующее, когда я пытаюсь выполнить код.

Это должно быть самой простой операцией после прочтения документации Embarcadero, следующее должно просто работать. На данный момент я не могу понять, что происходит.

Может ли кто-нибудь указать мне правильное направление?

Я отредактировал пост, чтобы включить полный код единицы

Ответы (1)

2 плюса

533007 Репутация автора

Ваша программа должна изменять значения vuUKGallons и vuLiters или использовать разные. Эта программа:

Но эта программа:

Как делает эта программа:


Вы должны использовать vuXXX переменные, определенные в System.StdConvs модуле.

Обновить

Увидев ваш полный код, теперь понятно, что произошло.

Converting Delphi 7 property editor to Delphi XE2

First of all, I have never written a property editor from scratch, but had some help with one in another question. Refer to the accepted answer there. This was in Delphi 7, and now I have started using XE2 and I have to make sure my property editor is compatible with both 7 and XE2.

It’s essentially a collection editor, with the difference that each collection item has its own named component in the parent form. Is there anything new about the property editors in XE2 since 7, since it is a huge version jump?

I do NOT want to make a complete copy of my unit for different versions. I want to maintain all possible versions in one unit.

Edit

It appears that Delphi XE2 has the same property editors as Delphi 7, but the issue I was facing was that although I was including DesignIDE in my package, it could not find anything, so I had to add the ToolsAPI folder to my library path.

However, now I have a new issue after this.

[DCC Fatal Error] ToolsAPI.pas(18): F1026 File not found: ‘DockForm.dcu’

I’m lost in the whole concept of BPL packages and requiring others, etc.

Convert Delphi to C#

Delivering you an intelligent and high quality result in due time!

Automated Application Conversion

Do you need to convert your Delphi application to C#? In this case, Ispirer products will be the perfect solution for your project!
Human-written code in each project has its own specifics. It may seem difficult to obtain a high level of automated conversion. With Ispirer it will be a smooth transition. The main advantage of Ispirer MnMTK is the personalization for your conversion project. As a result, you will replace the old technology with all its downsides. Outcome will be a new application without any middleware used afterwards.

How it Works

Ispirer Migration and Modernization Toolkit (Ispirer MnMTK)

Automated conversion of Delphi to C# with the help of our tool makes it possible to significantly reduce the time and expenses as compared to manual rewriting of the application. The following approach allows to ensure high quality of automated conversion:

1. Preliminary Stage

The stage is carried out to determine the current conversion level of Ispirer MnMTK. The level of conversion depends on the complexity of the source code and the requirements for the target application. You can independently perform the analysis of the source code of your Delphi application, as well as try to convert it to C# using the demo license. Besides, our experts can perform the source code analysis and provide you with examples of its conversion.
If your application is quite specific and large, we recommend to perform PoC to determine the maximum level of automated conversion of your project.
As a result, we will find out whether the extension stage is required or you can directly proceed to the conversion.

2. Ispirer MnMTK Extension Stages

If this stage is necessary, we will perform the extension to thoroughly prepare the toolkit for the conversion according to your project requirements. We will take a part of a representative code that amounts ussually to

100,000 lines. The Ispirer technical team will add all the required conversion rules into the tool to achieve the highest possible level of automation or even to get a compilable result. As a delivery, we will provide conversion results of the scope of this Extension Stage. The customer will get customized and updated tool according to his specific project needs.

3. Use of Ispirer MnMTK

At this stage, you perform the conversion yourself. As to pricing, we apply project-based licensing. Prices depend on its scope and duration. The license includes support as well. If necessary, the conversion may be further improved even at this stage. As a result, Extension Requests, each of which is processed within 1-3 business days, are added to the license. Our experts will recommend the optimal number of requests considering the complexity and requirements of your project.

Ispirer MnMTK 2020
Delphi to C#
Free Demo License

Ispirer Migration and Modernization Service (Ispirer Service)

Our experienced team can provide you with a turnkey migration service and convert your entire Delphi application to C#, delivering you a ready-to-use application in due time. Our responsibilities include not only professional analysis, assessment, performance and testing of your migration, but also services such as adding new or changing existing functionality of the application.

If you want to get an intermediate result of the converted Delphi code in the C# language, the Ispirer team will be glad to provide you with a basic migration service. As a result, you will get code that is optimized to the compilable level. Further, you will have to independently bring the application to a fully functional state in accordance with your requirements.

You are free to choose a preferred option. Nevertheless, we can provide an estimate of both the Tool and the Service, and give professional advice.

Conversion Overview

Ispirer MnMTK automates the entire project conversion from Delphi to C#. The tool processes the project file, automatically finds and converts all its contents. Ispirer offers conversion to a .NET application based not only on the desktop, but also on the Web architecture.

Илон Маск рекомендует:  strncmp - Сравнение первых n символов строк без учета регистра

Conversion features

C#
Project Files Files DPR Files CSPROJ, USER
Business Logic Code in Pascal Code in C#
GUI Forms DFM Desktop (WinForms, WPF), Web (ReactJS, AngularJS)
Database Access BDE, ADO ADO.NET, LINQ


Сhoosing Ispirer MnMTK to migrate Delphi to C# you eliminate most of associated risks and considerably reduce internal efforts.
You will definitely convert your current Delphi technology to C# without any middleware used after the process. All these benefits are available at reasonable and competitive costs that makes Ispirer MnMTK even more attractive conversion tool for this project type.

Delphi to C# Conversion Demo

Check out how Ispirer MnMTK automatically converts Delphi to C# application.

Drop us a line, if you have any business inquiries or questions regarding your Delphi to C# conversion project. Ispirer experts will demonstrate our solutions and answer any questions you may have!

Get a Quote

Ispirer MnMTK

Reach the maximum level of automation and quality of your conversion with the help of Ispirer Migration and Modernization Toolkit! Based on your requirements, the Ispirer team will process all extension requests for your Delphi to C# conversion project. We offer several types of Ispirer MnMTK licenses, among which you will find the one that is suitable for you. Each conversion project is considered and discussed separately, prices depend on its scope, duration and complexity.

Delphi 2005

Для профессионалов


Автор: Кэнту М.
Издательство: Питер, 2006
912 страниц


Материал предоставил: Издательство »Питер»

Аннотация

Последний релиз Borland Delphi подвергся значительным изменениям и вобрал в себя множество новых возможностей. Delphi 2005 позволяет создавать как традиционные Win32-приложения, так и программы для платформы .NET. Эта книга поможет вам идти в ногу со временем, независимо от уровня владения программной средой. Автор книги, признанный во всем мире экперт по Delphi, рассказывает о том, как наилучшим образом использовать преимущества новой программной среды: ее простой язык, быстрые методы разработки, переносимость кода и дополнительный инструментарий, созданный сторонними фирмами. Книга будет одинаково полезна как начинающим программистам, впервые сталкивающимся с Delphi, так и профессионалам, в совершенстве владеющим предыдущими версиями борландовского продукта.

Содержание


Введение

Год 2005 ознаменовался выходом новой версии Delphi и десятилетним юбилеем этого продукта. Официальный дебют Delphi состоялся 14 февраля 1995 года, как указано на моей личной странице юбилея Delphi (www.marcocantu.com/delphibirth).

Примерно за год до того Зак Арлокер (Zack Urlocker) впервые показал мне еще не вышедший продукт с условным названием Delphi, и я немедленно осознал, что он изменит мою работу, а также работу множества других программистов. В те времена я боролся с библиотеками C++ для Windows, и среда Delphi была и до сих пор остается наилучшим сочетанием объектно-ориентированного и визуального программирования не только для платформах Win16 и Win32, но и в операционной системе Linux и на платформе Microsoft .NET Framework.

Среда Delphi 2005 построена на этих традициях и прочном фундаменте VCL, но в ней также произошел целый ряд революционных изменений, включая спроектированную заново интегрированную среду разработки (IDE), существенно расширенный язык объектно-ориентированного программирования и включение множества средств разработчика Borland для всего жизненного цикла разработки программного продукта. Еще более важная и неповторимая особенность заключается в том, что Delphi теперь не только позволяет разрабатывать версии программ для Win32 и .NET в одной среде, но и строить программы для обеих платформ с использованием единого исходного кода.

Разработка Delphi затрагивает практически все области: простые автономные программы, обработку графики, разработку баз данных, клиент-серверные и многозвенные бизнес-приложения, интрасетевое и интернет-программирование, XML и веб-службы. Независимо от того, чего вы ищете — богатства возможностей, высокой производительности или просто удобства — среда Delphi предоставит вам все желаемое.

Девять версий

Среди исходных особенностей Delphi особенно привлекательными мне показались: общий подход, основанный на применении форм и объектно-ориентированных методов, чрезвычайно быстрый компилятор, превосходная поддержка баз данных, интеграция с Windows-программированием и компонентная технология. Но самым важным элементом был язык Object Pascal (теперь называемый языком Delphi), который заложил основу для всего остального.

Среда Delphi 2 стала еще лучше! Среди важнейших нововведений можно выделить появление объекта Multi-Record и улучшенной сетки для работы с базами данных, поддержки OLE Automation и универсального типа данных, полную поддержку и интеграцию с Windows 95, длинный строковый тип данных и визуальное наследование форм. В Delphi 3 к этому добавились технология Code Insight, поддержка отладки DLL, шаблоны компонентов, технологии TeeChart, WebgBroker, пакеты компонентов, ActiveForms и великолепная интеграция с COM благодаря применению интерфейсов.

Версия Delphi 4 дала нам редактор AppBrowser, новые возможности Windows 98, улучшенную поддержку OLE и COM, расширенные компоненты баз данных и много дополнений в основные классы VCL, включая поддержку пристыковки (docking), ограничений и привязки элементов. Delphi 5 добавила к общей картине множество улучшений IDE, расширила поддержку баз данных (наборами данных ADO и InterBase), улучшенную версию MIDAS (теперь DataSnap) с поддержкой Интернета, средства локализации, концепцию фреймов и новые компоненты.

В Delphi 6 ко всем существующим возможностям добавилась поддержка кросс-платформенной разработки с использованием Component Library for Cross-Platform (CLX, сейчас не поддерживается), расширенная библиотека времени выполнения, механизм работы с базами данных dbExpress, мощная технология WebSnap, дальнейшие улучшения IDE и ряд новых компонентов и классов.

Среда Delphi 7 повысила надежность некоторых архитектур за счет улучшения и исправления (например, SOAP и DataSnap), а также обеспечила поддержку ряда новых технологий (таких, как темы Windows XP и UDDI). Одним из важнейших новшеств стало появление интересного инструментария сторонних производителей: процессора отчетов RAVE, технологии программирования веб-приложений IntraWeb и среды конструирования ModelMaker.

Delphi 8 для Microsoft .NET Framework открыла совершенно новый мир, предоставив первый компилятор Borland для языка Pascal/Delphi, ориентированный не на процессор компании Intel, а на платформу .NET CIL. Компилятор поддерживал все основные возможности .NET Framework, включая ADO.NET, WinForms и особенно ADO.NET. В Delphi 8 также появились некоторые технологии управления жизненным циклом приложения, приобретенные компанией Borland (такие, как StarTeam и Caliber).

Теперь Delphi 2005 объединяет все перечисленные возможности, предоставляя одну версию IDE для разработок Win32 и .NET, а также обеспечивая поддержку нескольких языков программирования, включая Delphi и C#. Delphi все еще остается одним из основных конкурентов в области ускоренной разработки (RAD), но теперь среда также вошла в мир MDA (Model Driven Architecture) со своей технологией ECO. Как я уже упоминал, Delphi 2005 содержит заново спроектированную версию IDE с бесчисленными новыми возможностями и функциями, упрощающими программирование, а также расширенным языком программирования для Win32 и .NET.

Структура книги

В главе 1 представлены новые возможности интегрированной среды разработки (IDE), в главе 2 рассматриваются две целевые платформы (Win32 и .NET), после чего следует описание языка Delphi (главы 3 и 4), библиотеки времени выполнения (глава 5) и VCL (главы 6-8). Первая часть завершается обзором .NET Framework Class Library (глава 9).

Следующие главы охватывают переработку кода, модульное тестирование, архитектуру динамических Delphi-приложений, COM и взаимодействие .NET с COM и Win32.

Затем углубленно рассматриваются элементы, ориентированные на работу с данными, клиент-серверное программирование, dbExpress, InterBase, ADO, ADO.NET и многозвенные архитектуры с использованием технологий DataSnap и ADO.NET. В последней главе третьей части читатель познакомится с архитектурой ECO (Enterprise Core Objects).

В последних двух главах рассматривается XML и разработка веб-служб.

Вкратце можно сказать, что в книге рассматриваются темы, представляющие интерес для всех пользователей Delphi с любым уровнем подготовки и почти во всех областях. Я попытался обойтись без справочного материала и полностью сосредоточиться на методах эффективного использования Delphi. Поскольку Delphi содержит обширную электронную документацию, приводить в книге списки методов и свойств было бы излишне; кроме того, при малейшем изменении продукта материал перестал бы соответствовать действительности. Я рекомендую читать книгу, имея под рукой справочную документацию Delphi, чтобы без труда найти необходимую информацию.

Однако я сделал все возможное, чтобы книгу можно было читать вдали от компьютера, если вам так удобнее. В этом вам помогут копии экрана и ключевые фрагменты листингов. Для удобства в книге используется минимальное количество условных обозначений: исходный код выделяется вот таким шрифтом, а фрагменты кода форматируются так, как они выглядят в редакторе Delphi (ключевые слова — жирным шрифтом, комментарии и строковые литералы — курсивом).

Бесплатный исходный код в Сети

Основное внимание в книге уделяется практическим примерам. После представления каждой концепции приводится работоспособный пример программы (иногда не один), демонстрирующий ее использование. В книге представлено свыше 300 примеров, большая часть из которых существует в версиях для Win32 и .NET. Программы можно загрузить в одном zip-файле объемом более 3 Мбайт на сайте Sybex (www.sybex.com) и на моем сайте (www.marcocantu.com). Как правило, примеры очень просты и посвящены одному конкретному аспекту Delphi. Более сложные примеры строятся поэтапно, при этом промежуточные этапы содержат частичные решения и обеспечивают постепенное наращивание возможностей.


ПРИМЕЧАНИЕ

Некоторые приложения баз данных требуют установки файлов-примеров баз данных Delphi; эти файлы входят в комплект стандартной установки Delphi. Для других примеров необходима база данных EMPLOYEE, относящаяся к InterBase (и сам сервер InterBase, конечно). Для некоторых примеров веб-программирования потребуется установленный веб-сервер.

На моем сайте также имеется HTML-версия исходного кода с полным синтаксическим выделением и перекрестными ссылками ключевых слов и идентификаторов (классов, функций, методов, имен свойств и т. п.). Перекрестные ссылки находятся в HTML-файле, поэтому вы сможете быстро найти в браузере ключевое слово или идентификатор (не полноценная поисковая система, но довольно близко к ней).

Структура каталогов примеров очень простра. Каждая глава книги представлена отдельной папкой, в которой находятся вложенные папки для каждого примера (например, 05\FilesList). В тексте ссылки на примеры осуществляются просто по имени (например, FilesList).

ПРИМЕЧАНИЕ

Обязательно прочитайте файл readme в архиве с примерами исходного кода. В нем содержится важная информация о том, как законно и эффективно использовать приведенные примеры.

Thread: Convert small function C to Delphi

Thread Tools
Display
  • Linear Mode
  • Switch to Hybrid Mode
  • Switch to Threaded Mode

Convert small function C to Delphi

Hey all, any1 can help convert small function writen on C to Delphi ?

PS: Sorry if wrong section

Hi,
I’m not sure, but here is a draft conversion

Please, post your questions on forum, not by PM or mail

I spend my time, so please pay a little bit of your time to keep world in equilibrium

DelphiComponent.ru — бесплатно видеоуроки по Delphi, статьи, исходники

Указатели в Delphi

Указатель — это всего лишь специальная переменная. В отличие от обычных переменных, которые хранят значение определенного типа, указатель хранит ад­рес ячейки памяти. Название «указатель» обусловлено тем, что указатель не со­держит конкретного значения, а указывает на ячейку памяти, в которой хранится 1 нужное значение.

В Delphi существует два типа указателей: типизированные и нетипизированные (общие). Типизированные указатели можно использовать только с перемен­ными конкретного типа, в то время как нетипизированные указатели могут указы­вать на любые данные.

Закажи видеокурс по Delphi и получи 106 видеоуроков. Детальное объяснение каждого момента программирования. Кликни на картинку:

ЗАКАЗАТЬ

Для объявления типизированного указателя перед идентификатором типа дан­ных потребуется поместить символ ^:

Указатель P может использоваться для указания на любую ячейку памяти, ко­торая содержит целочисленное значение.

Пока не стоит пытаться использовать указатель Р. поскольку он не инициали­зирован. Когда указатель не инициализирован, он указывает на случайную ячейку памяти. Попытка использования указателя, который указывает на неверную ячейку памяти, подобна попытке прыжка с высоты без парашюта. Вряд ли это можно считать приятным времяпрепровождением.

Чтобы инициализировать указатель, ему следует присвоить адрес ячейки па­мяти. Для чтения адреса переменной можно использовать операцию @ или функ­цию Addr:

Теперь указатель Р указывает на ячейку памяти переменной I. Если требуется выяснить точное местоположения переменной I в памяти, необходимо преобразо­вать тип указателя в целое число и отобразить его на экране:

После того, как указателю присвоен адрес, указатель можно использовать для изменения значения переменной, на которую он указывает. Для получения досту­па к переменной, на которую указывает указатель, потребуется разыменовать ука­затель, записав символ ^после имени указателя, как продемонстрировано в лис­тинге 9.1.

Листинг 9.1. Использование простого типизированного указателя

01. program Project1;

Чтобы изменить ячейку, на которую указывает указатель, указателю необходи­мо присвоить адрес. Однако для изменения значения, хранящегося в ячейке памя­ти, на которую указывает указатель, потребуется разыменовать указатель. Проце­дура WriteLn правильно отображает значение, поскольку указатель Р является типизированным и после разыменования в действительности представляет цело­численное значение.

Вторым типом указателя в Delphi является Pointer. Pointer представляет собой тип нетипизированного указателя, который может использоваться для указания на переменную любого типа данных. Чтобы работать со значением, на которое указы­вает нетипизированньил указатель, вначале нетипизированный указатель нужно привести к другому типу указателя и выполнить его разыменование. Приведение к другому типу указателя не представляет особой сложности, поскольку в Delphi каж­дый тип данных уже обладает соответствующим типом указателя. Например, указа­телем на переменную типа Char является PChar, указателем на строку — PString. указателем на целочисленную переменную — PInteger и так далее.

В листинге 9.2 демонстрируется использование типа Pointer и его приведение к другим типам указателей.

Листинг 9.2. Использование нетилизированного указателя

Илон Маск рекомендует:  5 принципов написания великолепной статьи
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL