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
обратиться к администрации

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