Ниже приведён исходник базы данных:
unit UnitPiter;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, ExtCtrls, StdCtrls, DBCtrls, Mask,jpeg;

type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Table1: TTable;
DataSource1: TDataSource;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBMemo1: TDBMemo;
DBEdit3: TDBEdit;
Image1: TImage;
DBNavigator1: TDBNavigator;
procedure Table1AfterScroll(DataSet: TDataSet);
procedure DBEdit3KeyPress(Sender: TObject; var Key: Char);
procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
procedure Table1BeforeOpen(DataSet: TDataSet);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
BmpPath:string;

implementation

{$R *.dfm}

procedure showFoto(foto: string);
begin
try
Form1.Image1.Picture.LoadFromFile(BmpPath+foto);
Form1.Image1.Visible:= True;
except
on EFOpenError do
begin
MessageDlg('файл иллюстрации  '+foto+' не найден.', mtInformation,
[mbOk], 0);
end;
end;
end;

 

procedure TForm1.Table1AfterScroll(DataSet: TDataSet);
begin
if form1.DBEdit3.Visible then
begin
form1.DBEdit3.Visible :=False;
form1.Label5.Visible:=False;
end;
if Form1.DBEdit3.Text <> ''
then ShowFoto(Form1.DBEdit3.Text)
else form1.Image1.Visible:=False;

end;

procedure TForm1.DBEdit3KeyPress(Sender: TObject; var Key: Char);
begin
if (key = #13) then
if Form1.DBEdit3.Text <> ''
then ShowFoto(Form1.DBEdit3.Text)
else form1.Image1.Visible:=False;

end;

procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
begin
case Button of
nbInsert: begin
Image1.Visible:= False;
DBEdit3.Visible:=True;
Label5.Visible:=True;
end;
end;
end;

procedure TForm1.Table1BeforeOpen(DataSet: TDataSet);
begin
BmpPath:=ExtractFilePath (ParamStr(0))+'data\';

end;

end.
Вызов процедуры вывода фотографии  (showFoto) во время просмотра базы данных выполняет процедура TForm1.Table1AfterScroll, которая обеспечивает обработку события AfterScroll для компонента Table1. Событие AfterScroll происходит всякий раз после перехода к другой  записи таблицы как результат щелчка пользователя на соответствующей кнопке компонента  DBNavigator. Процедура TForm1.Table1AfterScroll анализирует содержимое поля (Photo ) Form1.DBEdit3.Text и, если оно не пустое, что свидетельствует о наличии ссылки на файл фотографии, выводит иллюстрацию.
При просмотре базы данных поле имени файла иллюстрации (DBEdit3) и его заголовок  (Label4) на форме не отображаются. Если пользователь нажимает одну из кнопок компонента  DBNavigator  , то как результат обработки события OnClick вызывается процедура TForm1.DBNavigator1Click, которая при щелчке на кнопке добавить или редактировать делает доступным поле DBdit3,тем самым позволяя пользователю ввести и ли изменить имя файла иллюстрации.
Процедура TForm1.DBEdit3KeyPress обрабатывает событие  On KeyPress для компонента DBEdit3. Если пользователь ввёл в поле Edit3(Photo) имя файла иллюстрации и нажал клавишу “Enter”, то процедура TForm1.DBEdit3KeyPress выводит иллюстрацию путём вызова прцедуры showFoto.

Скачать исходник база данных в Delphi »:

 

Добавить комментарий


Защитный код
Обновить