| « Поставить закладку » « Сделать стартовой » | |||
|
|||
|
Создание компонент в DELPHI
Перед созданием своего компонента нужно выбрать для него предка. Кто же может быть предком для вашего компонента? Как правило, используются в виде предков TComponent, TControl, TWinControl,
TGraphicControl, TCustomXXXXXX, а также все компоненты палитры компонентов. unit OurOpenDialog;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics,
Controls, Forms, Dialogs;
type
TOurOpenDialog = class(TOpenDialog)
private
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
published
{ Published declarations }
end;
procedure register;
implementation
procedure register;
begin
RegisterComponents('Samples', [TOurOpenDialog]);
end;
{ TOurOpenDialog }
constructor TOurOpenDialog.Create(AOwner: TComponent);
begin
inherited Create(AOwner); {Вызываем
унаследованный конструктор}
Options := Options + [ofFileMustExist, ofPathMustExist];
{Выполняем необходимые нам действия}
end;
end.
Объявление компонента состоит из секций, таких как private, protected,
public и published. Что они означают? СвойстваСвойства типа масив - обычные массива Object Pascal, но в отличии от последних могут индексироваться не только числовыми значениями но и строковыми. К сожалению этот тип свойства требует пользовательского редактора свойств (в инспекторе объектов редактор свойства имеет кнопку с тремя точками [...]), по-этому в указанном ниже примере свойство ArrayProp объявлено в секции public. type
TOurComponent = class(TComponent)
private
{ Private declarations }
FArrayProp: array[0..9] of integer;
function GetArrayProp(aIndex: integer): integer;
procedure SetArrayProp(aIndex: integer; const
Value: integer);
protected
{ Protected declarations }
public
{ Public declarations }
property ArrayProp[aIndex: integer]: integer read
GetArrayProp
write SetArrayProp;
published
{ Published declarations }
end;
Спецификаторы свойствСпецификатор default указывает сохранять значение свойства в файле формы или нет. Если значение свойства совпадает со значением default - значение в файле формы не сохраняется, если значения не равны - сохраняется. Это можно проверить, положив компонент на форму и выбрать правой кнопкой мыши пункт меню "View as Text". Default не устанавливает первоначальное значение свойства к указанному. Это необходимо сделать в конструкторе компонента. unit OurComponent;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls;
type
TOurComponent = class(TComponent)
private
{ Private declarations }
FMyInteger: Integer;
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
published
{ Published declarations }
property MyInteger: Integer read FMyInteger
write FMyInteger default 10;
end;
implementation
constructor TOurComponent.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FInteger := 10;
end;
end.
Спецификатор nodefault отменяет заданное по умолчанию
значение свойства. Этот спецификатор, как правило, используется для отмены
заданого по умолчанию значения унаследованного свойства. Спецификатор stored указывает когда сохранять в файле формы значение свойства. После stored может стоять true (всегда сохранять), false (никогда не сохранять) или название функции, которая возвращает логический результат. property OneProp: integer read FOneProp
write
SetOneProp
stored False;
property TwoProp: integer read FTwoProp
write
SetTwoProp
stored True;
property ThreeProp: integer read FThreeProp
write SetThreeProp
stored Fuct;
И последнее:Чтобы добавить картинку в компонент для демонстрации в панели компонентов надо: - создать ее размером 24*24 с именем файла.dcr (в ресурсе имя картинки равно имени компонента, заглавными буками) - картинку положить рядом с компонентом. Рубрика: Примеры на Delphi
Вышел MySQL 5.1.30, первый стабильный рели....
После публикации 29 тестовых версий анонсирован первый стабильный релиз MySQL 5.1, пригодный для промышленной эксплуатации и обеспечивающий увеличение производительности для "тяжелых" SQL запросов, по сравнению с MySQL 5.0, примерно на 15-20%. Главные новшества появившиеся в MySQL 5.1:
Подробнее... |
Рубрика: MySQL
| Добавлено: 28.11.2008
Тестирование параллельных программ.
Тестирование параллельного программного обеспечения представляет собой более сложную задачу по сравнению с тестированием последовательной программы. Программист должен знать о подводных камнях при тестировании параллельного кода, имеющихся методологиях и инструментарии.
Подробнее... |
Рубрика: Тестирование
| Добавлено: 28.11.2008
Архитектура AMD64 (EM64T).
Аннотация. В статье кратко рассматривается архитектура AMD64 компании AMD и ее реализация EM64T компании Intel. Описаны особенности архитектуры, ее возможности, достоинства и недостатки.
Подробнее... |
Рубрика: Архитектура AMD
| Добавлено: 27.11.2008
Остальные статьи: |
Цитата дня (все,добавить):
|
Realcoding.NET
© 2003-2008 |
Контакты |
Реклама на сайте
|