Базовые классыDelphi — среда быстрой разработки, где в качестве языка программирования используется Object Pascal. На сегодняшний день позволяет разрабатывать ПО для Microsoft Windows, Mac OS, iOS и Android и входит в состав Embarcadero RAD Studiohttps://delphi-hlp.ru/index.php/bazovye-klassy.feed2022-09-13T04:34:03+07:00Delphi helpinfo@delphi-hlp.ruJoomla! - Open Source Content ManagementTComponent2017-07-17T21:52:58+07:002017-07-17T21:52:58+07:00https://delphi-hlp.ru/index.php/bazovye-klassy/tcomponent.htmlSuper Usertoto44@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>TControl2017-07-18T16:04:22+07:002017-07-18T16:04:22+07:00https://delphi-hlp.ru/index.php/bazovye-klassy/tcontrol.htmlSuper Usertoto44@inbox.ru<p>Класс TControi является базовым для всех визуальных компонентов и инкапсулирует механизмы отображения компонента на экране. В нем используется множество новых свойств и методов. Недаром в Delphi в Инспекторе объектов появилась категоризация методов и свойств (рис. 2.2). Большинство из них вводятся как раз в классах TControl и TWinControl.</p><p>Класс TControi является базовым для всех визуальных компонентов и инкапсулирует механизмы отображения компонента на экране. В нем используется множество новых свойств и методов. Недаром в Delphi в Инспекторе объектов появилась категоризация методов и свойств (рис. 2.2). Большинство из них вводятся как раз в классах TControl и TWinControl.</p>TCustomControl2017-07-18T18:49:05+07:002017-07-18T18:49:05+07:00https://delphi-hlp.ru/index.php/bazovye-klassy/tcustomcontrol.htmlSuper Usertoto44@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>TGraphicControl2017-07-18T21:04:56+07:002017-07-18T21:04:56+07:00https://delphi-hlp.ru/index.php/bazovye-klassy/tgraphiccontrol.htmlSuper Usertoto44@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>TList2017-07-17T21:06:40+07:002017-07-17T21:06:40+07:00https://delphi-hlp.ru/index.php/bazovye-klassy/tlist.htmlSuper Usertoto44@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>TObject2017-07-17T21:15:35+07:002017-07-17T21:15:35+07:00https://delphi-hlp.ru/index.php/bazovye-klassy/tobject.htmlSuper Usertoto44@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>TPersistent2017-07-17T21:32:25+07:002017-07-17T21:32:25+07:00https://delphi-hlp.ru/index.php/bazovye-klassy/tpersistent.htmlSuper Usertoto44@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:002017-07-20T20:59:37+07:00https://delphi-hlp.ru/index.php/bazovye-klassy/tstream.htmlSuper Usertoto44@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 и TStringList2017-07-20T21:18:52+07:002017-07-20T21:18:52+07:00https://delphi-hlp.ru/index.php/bazovye-klassy/tstrings-i-tstringlist.htmlSuper Usertoto44@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>TWinControl2017-07-18T16:06:56+07:002017-07-18T16:06:56+07:00https://delphi-hlp.ru/index.php/bazovye-klassy/twincontrol.htmlSuper Usertoto44@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>Глобальный объект Clipboard2017-07-18T21:10:16+07:002017-07-18T21:10:16+07:00https://delphi-hlp.ru/index.php/bazovye-klassy/globalnyj-ob-ekt-clipboard.htmlSuper Usertoto44@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>Глобальный объект Screen2017-07-18T21:08:33+07:002017-07-18T21:08:33+07:00https://delphi-hlp.ru/index.php/bazovye-klassy/globalnyj-ob-ekt-screen.htmlSuper Usertoto44@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>