1 Исследовательский раздел 4


Листинг созданного VCL-компонента



страница73/75
Дата06.06.2019
Размер1.28 Mb.
Название файла12.doc
1   ...   67   68   69   70   71   72   73   74   75

4.1.2Листинг созданного VCL-компонента.

unit DBSearchEdit;

interface

uses


Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, DBTables,

DB,stdctrls;

type

TDBSearchEdit = class(TEdit)



procedure onchange_ (sender : TObject);

procedure onkeypress_ (Sender: TObject; var Key: Char);

private

needsearch_ : boolean;



table1_ : Ttable;

keyFieldName_,textFieldName_ : TField;

indexname_ : string;

onchange2 : tnotifyevent;

srch,ch : integer;

onkeypress2 : TKeyPressEvent;

{ Private declarations }

protected

{ Protected declarations }

public


constructor Loaded;

constructor Create(aOwner: TComponent); override;

destructor destroy;
{ Public declarations }

published

property needsearch : boolean read needsearch_ write needsearch_;

property Dataset : Ttable read table1_ write table1_;

property KeyFieldName : TField read keyfieldname_ write keyfieldname_;

property TextFieldName : TField read textfieldname_ write textfieldname_;

property indexname : string read indexname_ write indexname_;

property newonkeypress : TKeyPressEvent read onkeypress2 write onkeypress2;

property newonchange : TNotifyEvent read onchange2 write onchange2;

{ Published declarations }

end;
procedure Register;
implementation

function compress(s : shortstring):shortstring;

var

s2 : shortstring;



x : integer;

begin


s2 :='';

for x:=1 to length(s) do if s[x]<>' ' then s2:=s2+s[x];

s2:=s2+#0;

s2:=ansistrupper(@s2[1]);

compress:=s2;

end;
constructor TDBSearchEdit.Loaded;

begin

inherited loaded;



end;
procedure TDBSearchEdit.onchange_(sender : tobject);

var


s1,s : shortstring;

poz : integer;

begin

if srch=0 then exit;



srch:=0;

if ch=1 then exit;

ch:=1;

if assigned(onchange2) then onchange2(sender);



if not TDBSearchEdit(sender).needsearch_ then exit;

try


s1:=table1_.Indexname;

table1_.indexname:=indexname_;

s:=compress(TDBSearchEdit(sender).text);

table1_.findnearest([s]);

if pos(s,table1_.fieldbyname(keyfieldname_.fieldname).asstring)=1 then

begin


poz:=length(TDBSearchEdit(sender).text);

TDBSearchEdit(sender).text:=Table1_.fieldbyname(textfieldname_.fieldname).asstring;

TDBSearchEdit(sender).perform(em_setsel,poz,length(TDBSearchEdit(sender).text));

end


else begin beep; beep; beep; beep; beep; beep; end;

finally


try

ch:=0;


table1_.indexname:=s1

except


end;

end;


end;
procedure TDBSearchEdit.onkeypress_(Sender: TObject; var Key: Char);

begin


if assigned(onkeypress2) then onkeypress2(sender,key);

if key<>#8 then srch:=1;

end;
constructor TDBSearchEdit.Create(aOwner: TComponent);

begin


inherited create(aOwner);

needsearch:=true;

onchange:=onchange_;

onkeypress:=onkeypress_;

end;
destructor TDBSearchEdit.destroy;

begin


inherited destroy;

end;
procedure Register;

begin

RegisterComponents('Diplom',[TDBSearchEdit]);



end;

end.



Топология звезда
Основные принципы работы.


Поделитесь с Вашими друзьями:
1   ...   67   68   69   70   71   72   73   74   75


База данных защищена авторским правом ©genew.ru 2017
обратиться к администрации

    Главная страница
Контрольная работа
Курсовая работа
Лабораторная работа
Методические указания
Рабочая программа
Теоретические основы
Практическая работа
Методические рекомендации
Пояснительная записка
Общая характеристика
Учебное пособие
Общие сведения
История развития
Федеральное государственное
Физическая культура
Теоретическая часть
Теоретические аспекты
Практическое задание
Направление подготовки
Дипломная работа
Техническое обслуживание
государственное бюджетное
Образовательная программа
квалификационная работа
Общие положения
Техническое задание
Выпускная квалификационная
Методическая разработка
Самостоятельная работа
Технологическая карта
Решение задач
Общие требования
учебная программа
Общая часть
Краткая характеристика
Рабочая учебная
История возникновения
История создания
Основная часть
Организация работы
Методическое пособие
Метрология стандартизация
государственное автономное
Государственное регулирование
Название дисциплины
Экономическая теория
Автономная некоммерческая
Рабочая тетрадь
Внеклассное мероприятие
некоммерческая образовательная
Информационная безопасность