Базовые классы Delphi — среда быстрой разработки, где в качестве языка программирования используется Object Pascal. На сегодняшний день позволяет разрабатывать ПО для Microsoft Windows, Mac OS, iOS и Android и входит в состав Embarcadero RAD Studio https://delphi-hlp.ru/index.php/bazovye-klassy.feed 2022-09-13T04:34:03+07:00 Delphi help info@delphi-hlp.ru Joomla! - Open Source Content Management TComponent 2017-07-17T21:52:58+07:00 2017-07-17T21:52:58+07:00 https://delphi-hlp.ru/index.php/bazovye-klassy/tcomponent.html Super User toto44@inbox.ru <p>Класс TComponent является предком всех компонентов VCL. Он используется в качестве основы для создания невизуальных компонентов и реализует основные механизмы, которые обеспечивают функционирование любого компонента. В нем появляются первые свойства, которые отображаются в Инспекторе объектов. Это свойство</p> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/bazovye-klassy/tcomponent.html">Подробнее...</a></p> <p>Класс TComponent является предком всех компонентов VCL. Он используется в качестве основы для создания невизуальных компонентов и реализует основные механизмы, которые обеспечивают функционирование любого компонента. В нем появляются первые свойства, которые отображаются в Инспекторе объектов. Это свойство</p> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/bazovye-klassy/tcomponent.html">Подробнее...</a></p> TControl 2017-07-18T16:04:22+07:00 2017-07-18T16:04:22+07:00 https://delphi-hlp.ru/index.php/bazovye-klassy/tcontrol.html Super User toto44@inbox.ru <p>Класс TControi является базовым для всех визуальных компонентов и инкапсулирует механизмы отображения компонента на экране. В нем используется множество новых свойств и методов. Недаром в Delphi в Инспекторе объектов появилась категоризация методов и свойств (рис. 2.2). Большинство из них вводятся как раз в классах TControl и TWinControl.</p> <p>Класс TControi является базовым для всех визуальных компонентов и инкапсулирует механизмы отображения компонента на экране. В нем используется множество новых свойств и методов. Недаром в Delphi в Инспекторе объектов появилась категоризация методов и свойств (рис. 2.2). Большинство из них вводятся как раз в классах TControl и TWinControl.</p> TCustomControl 2017-07-18T18:49:05+07:00 2017-07-18T18:49:05+07:00 https://delphi-hlp.ru/index.php/bazovye-klassy/tcustomcontrol.html Super User toto44@inbox.ru <p>Класс TCustomControl предназначен для создания на его основе нестандартных оконных элементов управления. Процесс визуализации в нем упрощен за счет использования специального класса TCanvas, инкапсулирующего канву (см. гл. 11).</p> <p> </p> <p>Доступ к канве осуществляется через свойство</p> <p> </p> <p>property Canvas: TCanvas;</p> <p> </p> <p>Отрисовка элемента управления осуществляется методом</p> <p> </p> <p>procedure PaintWindowfDC: HDC); override;</p> <p> </p> <p>после получения сообщения WM_PAINT.</p> <p> </p> <p>Возможности этого класса унаследовали классы TPanel, TGroupBox, TStringGrid и т. д.</p> <p>Класс TCustomControl предназначен для создания на его основе нестандартных оконных элементов управления. Процесс визуализации в нем упрощен за счет использования специального класса TCanvas, инкапсулирующего канву (см. гл. 11).</p> <p> </p> <p>Доступ к канве осуществляется через свойство</p> <p> </p> <p>property Canvas: TCanvas;</p> <p> </p> <p>Отрисовка элемента управления осуществляется методом</p> <p> </p> <p>procedure PaintWindowfDC: HDC); override;</p> <p> </p> <p>после получения сообщения WM_PAINT.</p> <p> </p> <p>Возможности этого класса унаследовали классы TPanel, TGroupBox, TStringGrid и т. д.</p> TGraphicControl 2017-07-18T21:04:56+07:00 2017-07-18T21:04:56+07:00 https://delphi-hlp.ru/index.php/bazovye-klassy/tgraphiccontrol.html Super User toto44@inbox.ru <p>Класс TGraphicControl предназначен для создания на его основе визуальных компонентов, не получающих фокус в процессе выполнения приложения. Так как непосредственным предком класса является класс TControl, то потомки TGraphicControl умеют реагировать на управляющие воздействия мышью.</p> <p> </p> <p>Наглядный пример элемента управления, которому не нужно получать фокус, — это компонент TLabel, предназначенный для отображения текста, или компонент Timage, предназначенный для визуализации изображений.</p> <p> </p> <p>Для визуализации элементов управления на основе этого класса используется канва, инкапсулированная в классе TCanvas.</p> <p> </p> <p>Доступ к канве осуществляется через свойство</p> <p> </p> <p>property Canvas: TCanvas;</p> <p> </p> <p>Отрисовка элемента управления осуществляется методом</p> <p> </p> <p>procedure PaintWindow(DC: HDC); override;</p> <p> </p> <p>после получения сообщения WM_PAINT.</p> <p>Класс TGraphicControl предназначен для создания на его основе визуальных компонентов, не получающих фокус в процессе выполнения приложения. Так как непосредственным предком класса является класс TControl, то потомки TGraphicControl умеют реагировать на управляющие воздействия мышью.</p> <p> </p> <p>Наглядный пример элемента управления, которому не нужно получать фокус, — это компонент TLabel, предназначенный для отображения текста, или компонент Timage, предназначенный для визуализации изображений.</p> <p> </p> <p>Для визуализации элементов управления на основе этого класса используется канва, инкапсулированная в классе TCanvas.</p> <p> </p> <p>Доступ к канве осуществляется через свойство</p> <p> </p> <p>property Canvas: TCanvas;</p> <p> </p> <p>Отрисовка элемента управления осуществляется методом</p> <p> </p> <p>procedure PaintWindow(DC: HDC); override;</p> <p> </p> <p>после получения сообщения WM_PAINT.</p> TList 2017-07-17T21:06:40+07:00 2017-07-17T21:06:40+07:00 https://delphi-hlp.ru/index.php/bazovye-klassy/tlist.html Super User toto44@inbox.ru <p>Класс TList</p> <p>Класс TList — универсальный список. Он представляет собой массив нетипированных указателей и поэтому годится для хранения набора любых, в том числе разнотипных, данных и объектов. При добавлении/удалении в список данные не создаются и не уничтожаются — эта обязанность лежит на программисте.</p> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/bazovye-klassy/tlist.html">Подробнее...</a></p> <p>Класс TList</p> <p>Класс TList — универсальный список. Он представляет собой массив нетипированных указателей и поэтому годится для хранения набора любых, в том числе разнотипных, данных и объектов. При добавлении/удалении в список данные не создаются и не уничтожаются — эта обязанность лежит на программисте.</p> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/bazovye-klassy/tlist.html">Подробнее...</a></p> TObject 2017-07-17T21:15:35+07:00 2017-07-17T21:15:35+07:00 https://delphi-hlp.ru/index.php/bazovye-klassy/tobject.html Super User toto44@inbox.ru <p>Класс TObject</p> <p> </p> <p>Класс TObject является родоначальником всей иерархии использующихся в Delphi классов VCL. Он реализует функции, которые обязательно будет выполнять любой объект, который может быть создан в среде разработки. Учитывая гигантское разнообразие возможных областей применения объектов в процессе создания приложений, можно сказать, что круг общих для всех классов операций весьма невелик.</p> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/bazovye-klassy/tobject.html">Подробнее...</a></p> <p>Класс TObject</p> <p> </p> <p>Класс TObject является родоначальником всей иерархии использующихся в Delphi классов VCL. Он реализует функции, которые обязательно будет выполнять любой объект, который может быть создан в среде разработки. Учитывая гигантское разнообразие возможных областей применения объектов в процессе создания приложений, можно сказать, что круг общих для всех классов операций весьма невелик.</p> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/bazovye-klassy/tobject.html">Подробнее...</a></p> TPersistent 2017-07-17T21:32:25+07:00 2017-07-17T21:32:25+07:00 https://delphi-hlp.ru/index.php/bazovye-klassy/tpersistent.html Super User toto44@inbox.ru <p>"Persistent" в переводе с английского означает "устойчивый", "постоянный". Что же такого постоянного в одноименном классе? Ответ таков: виртуальный метод</p> <p> procedure Assign(Source: TPersistent);</p> <p> </p> <p>Этот важнейший метод осуществляет копирование содержимого одного объекта (source) в другой (self, т. е. в объект, вызвавший метод Assign). При этом объект-получатель остается самим собой, чего нельзя достигнуть, используя простое присваивание переменных объектного типа:</p> <p class="feed-readmore"><a target="_blank" href ="/index.php/bazovye-klassy/tpersistent.html">Подробнее...</a></p> <p>"Persistent" в переводе с английского означает "устойчивый", "постоянный". Что же такого постоянного в одноименном классе? Ответ таков: виртуальный метод</p> <p> procedure Assign(Source: TPersistent);</p> <p> </p> <p>Этот важнейший метод осуществляет копирование содержимого одного объекта (source) в другой (self, т. е. в объект, вызвавший метод Assign). При этом объект-получатель остается самим собой, чего нельзя достигнуть, используя простое присваивание переменных объектного типа:</p> <p class="feed-readmore"><a target="_blank" href ="/index.php/bazovye-klassy/tpersistent.html">Подробнее...</a></p> TStream несколько функций 2017-07-20T20:59:37+07:00 2017-07-20T20:59:37+07:00 https://delphi-hlp.ru/index.php/bazovye-klassy/tstream.html Super User toto44@inbox.ru <p> </p> <p> </p> <p><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt;">Класс TStream не нов для библиотек фирмы Borland; он и его потомки называются </span><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt; font-style: italic;">потоками.</span><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt;"> Со времен появления в библиотеке Turbo Vision он не претерпел существенных изменений, но теперь потоки стали обязательными составными частями там, где нужно прочитать или передать во внешний источник какую-либо информацию.</span></p> <p><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt;">TStream "является абстрактной моделью совокупности данных, обладающей двумя свойствами </span><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt;">—</span><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt;"> длиной Size и положением текущего элемента Position:</span></p> <p><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt; font-weight: bold;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/bazovye-klassy/tstream.html">Подробнее...</a></p> <p> </p> <p> </p> <p><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt;">Класс TStream не нов для библиотек фирмы Borland; он и его потомки называются </span><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt; font-style: italic;">потоками.</span><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt;"> Со времен появления в библиотеке Turbo Vision он не претерпел существенных изменений, но теперь потоки стали обязательными составными частями там, где нужно прочитать или передать во внешний источник какую-либо информацию.</span></p> <p><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt;">TStream "является абстрактной моделью совокупности данных, обладающей двумя свойствами </span><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt;">—</span><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt;"> длиной Size и положением текущего элемента Position:</span></p> <p><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt; font-weight: bold;"> </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/bazovye-klassy/tstream.html">Подробнее...</a></p> TStrings и TStringList 2017-07-20T21:18:52+07:00 2017-07-20T21:18:52+07:00 https://delphi-hlp.ru/index.php/bazovye-klassy/tstrings-i-tstringlist.html Super User toto44@inbox.ru <h2> </h2> <p style="text-align: center;"><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt; font-weight: bold;">Класс TStrings</span></p> <p><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt; font-style: italic; font-weight: bold;"> </span></p> <p><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt;">Многофункциональный класс, предназначенный для хранения текстовых строк и связанных с ними объектов (любых потомков TObject). TStrings </span><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt;">—</span><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt;"> абстрактный класс; он только описывает методы работы с наборами строк и сопутствующих им объектов, но как именно они хранятся, на его уровне не определено. Его потомки очень многочисленны; они играют основную роль в компонентах-списках (TListBox, TComboBox), редакторе (TMemo) и других. Так что вам чаще всего придется иметь дело с TStrings как со свойством одного из компонентов. В дальнейшем экземпляры этого класса и порожденных от него классов мы-будем называть </span><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt; font-style: italic;">наборами строк.</span><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt;"> Для создания собственных наборов строк вне компонентов предназначен потомок TStrings </span><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt;">—</span><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt;"> TStringList, который будет рассмотрен ниже.</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/bazovye-klassy/tstrings-i-tstringlist.html">Подробнее...</a></p> <h2> </h2> <p style="text-align: center;"><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt; font-weight: bold;">Класс TStrings</span></p> <p><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt; font-style: italic; font-weight: bold;"> </span></p> <p><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt;">Многофункциональный класс, предназначенный для хранения текстовых строк и связанных с ними объектов (любых потомков TObject). TStrings </span><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt;">—</span><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt;"> абстрактный класс; он только описывает методы работы с наборами строк и сопутствующих им объектов, но как именно они хранятся, на его уровне не определено. Его потомки очень многочисленны; они играют основную роль в компонентах-списках (TListBox, TComboBox), редакторе (TMemo) и других. Так что вам чаще всего придется иметь дело с TStrings как со свойством одного из компонентов. В дальнейшем экземпляры этого класса и порожденных от него классов мы-будем называть </span><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt; font-style: italic;">наборами строк.</span><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt;"> Для создания собственных наборов строк вне компонентов предназначен потомок TStrings </span><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt;">—</span><span style="color: #000000; font-family: 'Times New Roman'; font-size: 11pt;"> TStringList, который будет рассмотрен ниже.</span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/bazovye-klassy/tstrings-i-tstringlist.html">Подробнее...</a></p> TWinControl 2017-07-18T16:06:56+07:00 2017-07-18T16:06:56+07:00 https://delphi-hlp.ru/index.php/bazovye-klassy/twincontrol.html Super User toto44@inbox.ru <p>Класс TWinControl обеспечивает создание и использование оконных элементов управления (см. выше). Напомним, что оконный элемент управления имеет системный дескриптор окна hwnd. Однако оконными элементами являются не только формы и диалоги, но и большинство стандартных элементов управления.</p> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/bazovye-klassy/twincontrol.html">Подробнее...</a></p> <p>Класс TWinControl обеспечивает создание и использование оконных элементов управления (см. выше). Напомним, что оконный элемент управления имеет системный дескриптор окна hwnd. Однако оконными элементами являются не только формы и диалоги, но и большинство стандартных элементов управления.</p> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/bazovye-klassy/twincontrol.html">Подробнее...</a></p> Глобальный объект Clipboard 2017-07-18T21:10:16+07:00 2017-07-18T21:10:16+07:00 https://delphi-hlp.ru/index.php/bazovye-klassy/globalnyj-ob-ekt-clipboard.html Super User toto44@inbox.ru <p>Последний глобальный объект, который мы рассмотрим в этой статье будет объект Clipboard, необходимый для работы с буфером обмена. Для того, чтобы начатьработу с этим объектом, необходимо в разделе Uses указать модуль Clipbrd. У этого объекта всего три свойства:</p> <div> <table border="0" cellspacing="0" cellpadding="0"> <tbody> <tr align="left" valign="top"> <td valign="middle" bgcolor="#ffffff" width="312"> <p>Свойство</p> </td> <td valign="middle" bgcolor="#ffffff" width="312"> <p>Описание</p> </td> </tr> <tr align="left" valign="top"> <td valign="middle" width="312"> <p>AsText: string</p> </td> <td valign="middle" width="312"> <p>Используется для обмена информацией втекстовом виде.</p> </td> </tr> <tr align="left" valign="top"> <td valign="middle" width="312"> <p>FormatCount: integer</p> </td> <td valign="middle" width="312"> <p>Содержит общее число форматов, которыенаходятся в буфере обмена в данный момент.</p> </td> </tr> <tr align="left" valign="top"> <td valign="middle" width="312"> <p>Formats [Index: Integer]: Word</p> </td> <td valign="middle" width="312"> <p>Содержит значения идентификаторовформата, Index[0..FormatCount-1].</p> </td> </tr> </tbody> </table> </div> <p>Например, чтобы при загрузке программы, в Memo помещался текст из буфера обмена, в обработчике формы OnCreate, нужно написать следующее:</p> <p class="p_CodeExample"><span class="f_CodeExample">Memo1.Text:=Clipboard.AsText;</span></p> <p>Для работы с буфером обмена существует ряд методов. Для очистки буфера используется метод Clear, для того, чтобы поместить в буфер изображение (*.BMP или *.WMF) нужно воспользоваться методом Assign (Source: TPersistent).</p> <p>(С) Автор статьи: Михаил Христосенко // Development и Дельфи (https://delphid.dax.ru/).</p> <p>Последний глобальный объект, который мы рассмотрим в этой статье будет объект Clipboard, необходимый для работы с буфером обмена. Для того, чтобы начатьработу с этим объектом, необходимо в разделе Uses указать модуль Clipbrd. У этого объекта всего три свойства:</p> <div> <table border="0" cellspacing="0" cellpadding="0"> <tbody> <tr align="left" valign="top"> <td valign="middle" bgcolor="#ffffff" width="312"> <p>Свойство</p> </td> <td valign="middle" bgcolor="#ffffff" width="312"> <p>Описание</p> </td> </tr> <tr align="left" valign="top"> <td valign="middle" width="312"> <p>AsText: string</p> </td> <td valign="middle" width="312"> <p>Используется для обмена информацией втекстовом виде.</p> </td> </tr> <tr align="left" valign="top"> <td valign="middle" width="312"> <p>FormatCount: integer</p> </td> <td valign="middle" width="312"> <p>Содержит общее число форматов, которыенаходятся в буфере обмена в данный момент.</p> </td> </tr> <tr align="left" valign="top"> <td valign="middle" width="312"> <p>Formats [Index: Integer]: Word</p> </td> <td valign="middle" width="312"> <p>Содержит значения идентификаторовформата, Index[0..FormatCount-1].</p> </td> </tr> </tbody> </table> </div> <p>Например, чтобы при загрузке программы, в Memo помещался текст из буфера обмена, в обработчике формы OnCreate, нужно написать следующее:</p> <p class="p_CodeExample"><span class="f_CodeExample">Memo1.Text:=Clipboard.AsText;</span></p> <p>Для работы с буфером обмена существует ряд методов. Для очистки буфера используется метод Clear, для того, чтобы поместить в буфер изображение (*.BMP или *.WMF) нужно воспользоваться методом Assign (Source: TPersistent).</p> <p>(С) Автор статьи: Михаил Христосенко // Development и Дельфи (https://delphid.dax.ru/).</p> Глобальный объект Screen 2017-07-18T21:08:33+07:00 2017-07-18T21:08:33+07:00 https://delphi-hlp.ru/index.php/bazovye-klassy/globalnyj-ob-ekt-screen.html Super User toto44@inbox.ru <p>Этот объект инкапсулирует свойства дисплея. У него очень много свойств, но мы посмотрим только некоторые из них. Вам, наверно, часто приходилось встречать такую вещь: когда программа выполняет какую-нибудь долгую операцию, курсор над формой изменяет свой вид, а потом, когда операция выполнена, становится нормальным. Чтобы реализовать эту штуку, нам придется воспользоваться свойством Cursor, объекта Screen. Это свойство отвечает за вид курсора над вашим приложением. Тогда общий вид какой-нибудь процедуры может быть таким:</p> <p class="feed-readmore"><a target="_blank" href ="/index.php/bazovye-klassy/globalnyj-ob-ekt-screen.html">Подробнее...</a></p> <p>Этот объект инкапсулирует свойства дисплея. У него очень много свойств, но мы посмотрим только некоторые из них. Вам, наверно, часто приходилось встречать такую вещь: когда программа выполняет какую-нибудь долгую операцию, курсор над формой изменяет свой вид, а потом, когда операция выполнена, становится нормальным. Чтобы реализовать эту штуку, нам придется воспользоваться свойством Cursor, объекта Screen. Это свойство отвечает за вид курсора над вашим приложением. Тогда общий вид какой-нибудь процедуры может быть таким:</p> <p class="feed-readmore"><a target="_blank" href ="/index.php/bazovye-klassy/globalnyj-ob-ekt-screen.html">Подробнее...</a></p>