⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 book.pas

📁 这是一个DELPHI7应用案例开发篇有配套程序种子光盘
💻 PAS
字号:
unit Book;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, StdCtrls, ExtCtrls, DBCtrls, Menus, Clipbrd, Jpeg,
  DB, DBTables;

type
  TfrmBook = class(TForm)
    DBNavigator1: TDBNavigator;
    Panel1: TPanel;
    Button1: TButton;
    Panel2: TPanel;
    DBGrid1: TDBGrid;
    Splitter1: TSplitter;
    Panel3: TPanel;
    Label1: TLabel;
    edNameFilter: TEdit;
    DBMemo1: TDBMemo;
    Splitter2: TSplitter;
    pmImage: TPopupMenu;
    miCutImage: TMenuItem;
    N5: TMenuItem;
    Image1: TImage;
    miLoadFromFile: TMenuItem;
    OpenDialog1: TOpenDialog;
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure edNameFilterExit(Sender: TObject);
    procedure miCopyImageClick(Sender: TObject);
    procedure miPasteImageClick(Sender: TObject);
    procedure miLoadFromFileClick(Sender: TObject);
    procedure DBGrid1ColEnter(Sender: TObject);
    procedure Image1Click(Sender: TObject);
    procedure DBGrid1CellClick(Column: TColumn);
    procedure miCutImageClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmBook: TfrmBook;

implementation

uses DataM, DIMime;

{$R *.dfm}

procedure TfrmBook.Button1Click(Sender: TObject);
begin
    DataModule1.cdsBook.ApplyUpdates(-1);
end;

procedure TfrmBook.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    Action := caFree;
end;

procedure TfrmBook.edNameFilterExit(Sender: TObject);
begin
    if Length(edNameFilter.Text)>0 then
    begin
        DataModule1.cdsBook.Filter := 'BookName LIKE ''%'+edNameFilter.Text+'%''';
        DataModule1.cdsBook.Filtered := True;
    end
    else
    begin
        DataModule1.cdsBook.Filtered := False;
        DataModule1.cdsBook.Filter := '';
    end;
    Caption := IntToStr(DataModule1.cdsBook.RecordCount);
end;

procedure TfrmBook.miCopyImageClick(Sender: TObject);
begin
    Image1.Assign(Clipboard);
end;

procedure TfrmBook.miPasteImageClick(Sender: TObject);
begin
    Clipboard.Assign(Image1);
end;

procedure TfrmBook.miLoadFromFileClick(Sender: TObject);
var
    jImage:TJpegImage;
    ss: TStringStream;
begin
    if DataModule1.cdsBook.RecNo<>-1 then
    begin
        if OpenDialog1.Execute then
        begin
            jImage := TJpegImage.Create;
            jImage.LoadFromFile(OpenDialog1.FileName);
            Image1.Picture.Assign(jImage);

            with DataModule1 do
            begin
                cdsBook.Edit;
                ss := TStringStream.Create('');;
                jImage.SaveToStream(ss);
                cdsBook.FieldByName('BookCover').AsString := MIMEEncodeString(ss.DataString);
                cdsBook.Post;
                cdsBook.ApplyUpdates(-1);
            end;
            jImage.Free;
        end;
    end;
end;

procedure TfrmBook.DBGrid1ColEnter(Sender: TObject);
begin
    with DBGrid1 do
    begin
        if (SelectedField.FieldName = 'Abstract') or
            (SelectedField.FieldName = 'Content') or
            (SelectedField.FieldName = 'Memoir')
        then
            DBMemo1.DataField := SelectedField.FieldName;
    end;
end;

procedure TfrmBook.Image1Click(Sender: TObject);
{var
    b: TStream;
    buf:array [0..255] of Char;
    i:Integer;}
begin
{    with DataModule1 do
    begin
        b:= cdsBook.CreateBlobStream(cdsBook.FieldByName('BookCover'), bmRead);
        jImage.SaveToStream(b);

        for i:=0 to 255 do
            buf[i] := Chr(i);
        b.ReadBuffer(buf,256);
        Caption := buf;
        b.Free;
    end;}
end;

procedure TfrmBook.DBGrid1CellClick(Column: TColumn);
var
    jImage:TJpegImage;
    ss: TStringStream;
    bSize:Integer;
begin
    bSize :=TBlobField(DataModule1.cdsBook.FieldByName('BookCover')).BlobSize;
    if  bSize>0 then
    begin
        jImage := TJpegImage.Create;
        with DataModule1 do
        begin
            ss := TStringStream.Create(MIMEDecodeString(cdsBook.FieldByName('BookCover').AsString));
            ss.Seek(0, soFromBeginning);
            jImage.LoadFromStream(ss);
            Image1.Picture.Assign(jImage);
            ss.Free;
        end;
        jImage.Free;
    end;
end;

procedure TfrmBook.miCutImageClick(Sender: TObject);
begin
    with DataModule1.cdsBook do
    begin
        Edit;
        FieldByName('BookCover').AsString := '';
        Post;
    end;
end;

end.



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -