home *** CD-ROM | disk | FTP | other *** search
/ Delphi Programming Unleashed / Delphi_Programming_Unleashed_SAMS_Publishing_1995.iso / misc / blobs / blobstuf / main.pas < prev    next >
Pascal/Delphi Source File  |  1995-03-20  |  2KB  |  88 lines

  1. unit Main;
  2.  
  3. { Program copyright (c) 1995 by Charles Calvert }
  4. { Project Name: BLOBSTUF }
  5.  
  6. { Working with BLOBS and streams. This is not an example of working
  7.   with a BlobStream object. }
  8.  
  9. interface
  10.  
  11. uses
  12.   SysUtils, WinTypes, WinProcs,
  13.   Messages, Classes, Graphics,
  14.   Controls, Forms, Dialogs,
  15.   StdCtrls, DBTables, DB,
  16.   DBCtrls, Grids, DBGrids;
  17.  
  18. const
  19.   FName = 'foo.dat';
  20.  
  21. type
  22.   TForm1 = class(TForm)
  23.     Table1: TTable;
  24.     DataSource1: TDataSource;
  25.     DBGrid1: TDBGrid;
  26.     DBMemo1: TDBMemo;
  27.     Table1SpeciesNo: TFloatField;
  28.     Table1Category: TStringField;
  29.     Table1Common_Name: TStringField;
  30.     Table1SpeciesName: TStringField;
  31.     Table1Lengthcm: TFloatField;
  32.     Table1Length_In: TFloatField;
  33.     Table1Notes: TMemoField;
  34.     Table1Graphic: TGraphicField;
  35.     Save: TButton;
  36.     ReadStream: TButton;
  37.     Memo1: TMemo;
  38.     Label1: TLabel;
  39.     Label2: TLabel;
  40.     procedure SaveClick(Sender: TObject);
  41.     procedure ReadStreamClick(Sender: TObject);
  42.   private
  43.     { Private declarations }
  44.   public
  45.     { Public declarations }
  46.   end;
  47.  
  48. var
  49.   Form1: TForm1;
  50.  
  51. implementation
  52.  
  53. uses
  54.   StrBox;
  55.  
  56. {$R *.DFM}
  57.  
  58. procedure TForm1.SaveClick(Sender: TObject);
  59. var
  60.   MyStream: TFileStream;
  61.   Dir: string;
  62. begin
  63.   Dir := StripLastToken(ParamStr(0), '\');
  64.   MyStream := TFileStream.Create(Dir + '\' + FName, fmOpenWrite);
  65.   Table1Notes.SaveToStream(MyStream);
  66.   MyStream.Free;
  67.   ReadStream.Enabled := True;
  68. end;
  69.  
  70. procedure TForm1.ReadStreamClick(Sender: TObject);
  71. var
  72.   MyStream: File;
  73.   Dir: string;
  74.   S1: PChar;
  75. begin
  76.   Dir := StripLastToken(ParamStr(0), '\');
  77.   System.Assign(MyStream, Dir + '\' + FName);
  78.   Reset(MyStream, 1);
  79.   GetMem(S1, FileSize(MyStream) + 1);
  80.   BlockRead(MyStream, S1^, FileSize(MyStream));
  81.   S1[FileSize(MyStream)] := #0;
  82.   Memo1.SetTextBuf(S1);
  83.   FreeMem(S1, FileSize(MyStream) + 1);
  84.   System.Close(MyStream);
  85. end;
  86.  
  87. end.
  88.