Производная TIntegerField

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

Это то, что вы хотите. Создайте следующий молуль:

MICRON.PAS:

unit

micron; interface

uses

DB, DBTables, Classes; type

TMicronField = class

(TIntegerField) public

function

IsValidChar(Ch: Char): Boolean; override

; end

; procedure

Register

; implementation

function

TMicronField.IsValidChar(Ch: Char): Boolean; begin

Result := Ch in

['+', '-', '0'..'9', '.']; end

; procedure

Register

; begin

RegisterFields([TMicronField]); end

; end

.

Поместите данный модуль в ваш каталог lib и добавьте это поле, используя диалог установки компонент. Затем, используя "DataSet designer", свяжите TMicronField с нужными вам полями, после чего вы увидите, что список типов полей включает теперь "Micron". (для отображения полей на новый тип поля, сначала вам необходимо удалить все TIntegerFields).

Другое решение, более простое (но так-же работающее), заключается в изменении исходного кода DBTables и простой замене существующей функции IsValidChar на TIntegerField.

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com