0% found this document useful (0 votes)
131 views

Blob Compression Delphi Source Code

This document defines a form (TfrmMain) that allows users to view and edit data from a database table (tVenues) containing venue information like name, capacity, map graphic, and remarks. It includes components like a data source (DataSource1), navigator (DBNavigator1), grid (DBGrid1), and fields to display the data. It also defines buttons and options to create a new database with the venue data copied over and compressed for size.

Uploaded by

Paul
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
131 views

Blob Compression Delphi Source Code

This document defines a form (TfrmMain) that allows users to view and edit data from a database table (tVenues) containing venue information like name, capacity, map graphic, and remarks. It includes components like a data source (DataSource1), navigator (DBNavigator1), grid (DBGrid1), and fields to display the data. It also defines buttons and options to create a new database with the venue data copied over and compressed for size.

Uploaded by

Paul
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 2

unit Main;

interface
{$I CompVer.inc}

uses
{$IFDEF D6H}
Variants,
{$ENDIF}
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Spin, Grids, DBGrids, ExtCtrls, DBCtrls, DB, ABSMain,
ABSTypes;

const
DataBaseFileName: String = '..\..\Data\Demos.abs';

type
TfrmMain = class(TForm)
dbDemos: TABSDatabase;
tVenues: TABSTable;
tVenuesVenueNo: TAutoIncField;
tVenuesVenue: TStringField;
tVenuesCapacity: TIntegerField;
tVenuesVenue_Map: TGraphicField;
tVenuesRemarks: TMemoField;
DataSource1: TDataSource;
DBNavigator1: TDBNavigator;
DBGrid1: TDBGrid;
GroupBox1: TGroupBox;
Label3: TLabel;
btCreate: TButton;
GroupBox2: TGroupBox;
cbGraphicAlgorithm: TComboBox;
Label2: TLabel;
Label1: TLabel;
seGraphicMode: TSpinEdit;
Label4: TLabel;
GroupBox3: TGroupBox;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
cbMemoalgorithm: TComboBox;
seMemoMode: TSpinEdit;
GroupBox4: TGroupBox;
Label8: TLabel;
lbNewDbFileName: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
lbVenuesDBSize: TLabel;
VenuesDB: TABSDatabase;
tNewVenues: TABSTable;
DBImage1: TDBImage;
DBMemo1: TDBMemo;
procedure FormCreate(Sender: TObject);
procedure btCreateClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
frmMain: TfrmMain;

implementation

{$R *.dfm}

procedure TfrmMain.FormCreate(Sender: TObject);


begin
dbDemos.DatabaseFileName := ExtractFilePath(Application.ExeName) +
DataBaseFileName;
dbDemos.Open;
tVenues.Open;
cbGraphicAlgorithm.ItemIndex := 2;
cbMemoAlgorithm.ItemIndex := 1;
end;

procedure TfrmMain.btCreateClick(Sender: TObject);


var
GraphicCompressionAlgorithm: TCompressionAlgorithm;
MemoCompressionAlgorithm: TCompressionAlgorithm;
f: TFileStream;
begin
GraphicCompressionAlgorithm :=
TCompressionAlgorithm(cbGraphicAlgorithm.ItemIndex);
MemoCompressionAlgorithm := TCompressionAlgorithm(cbMemoAlgorithm.ItemIndex);
VenuesDB.Close;
VenuesDB.PageSize := 512;
VenuesDB.MaxConnections := 20;
VenuesDB.CreateDatabase;
with tNewVenues do
begin
with AdvFieldDefs do
begin
Clear;
Add('VenueNo', aftAutoinc);
Add('Venue', aftString, 30);
Add('Capacity', aftInteger);
Add('Venue_Map', aftGraphic, 0, False, GraphicCompressionAlgorithm,
seGraphicMode.Value);
Add('Remarks', aftMemo, 0, False, MemoCompressionAlgorithm,
seMemoMode.Value);
end;
CreateTable;
BatchMove(tVenues, bmtCopy);
end;
VenuesDB.Close;
VenuesDB.CompactDatabase;
f := TFileStream.Create(VenuesDB.DatabaseFileName, fmOpenRead or
fmShareDenyNone);
lbVenuesDBSize.Caption := IntToStr(Round(f.Size/1024))+' Kb';
f.Free;
tNewVenues.Open;
end;

end.

You might also like