
31.05.2013, 13:36
|
 |
Гуру
|
|
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
|
|
Вот вам примерчик как это можно сделать. В примере для наглядности сделан 2-х мерный массив, но размерность не имеет значения.
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBClient, StdCtrls, Grids, Mask, DBCtrls, ExtCtrls;
type
TForm1 = class(TForm)
ClientDataSet1: TClientDataSet;
DataSource1: TDataSource;
ClientDataSet1id: TAutoIncField;
ClientDataSet1Date: TDateField;
ClientDataSet1ArrData: TBlobField;
StringGrid1: TStringGrid;
Button1: TButton;
Button2: TButton;
StringGrid2: TStringGrid;
DBNavigator1: TDBNavigator;
DBEdit1: TDBEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ClientDataSet1AfterScroll(DataSet: TDataSet);
private
Arr3D: Array[1..10,1..10] of Integer;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
Var x,y: Integer;
begin
for x := 1 to 10
do for y := 1 to 10
do begin
Arr3D[x,y] := Random(100);
StringGrid1.Cells[x-1,y-1] := IntToStr(Arr3D[x,y]);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
Var
Mem: TMemoryStream;
begin
Mem := TMemoryStream.Create;
Mem.Write(Arr3D, SizeOf(Arr3D));
Mem.Position := 0;
ClientDataset1.Append;
ClientDataset1.FieldByName('Date').AsDateTime := Now;
TBlobField(ClientDataset1.FieldByName('ArrData')).LoadFromStream(Mem);
ClientDataset1.Post;
Mem.Free;
end;
procedure TForm1.ClientDataSet1AfterScroll(DataSet: TDataSet);
Var x,y: Integer;
Mem: TMemoryStream;
begin
Mem := TMemoryStream.Create;
TBlobField(ClientDataset1.FieldByName('ArrData')).SaveToStream(Mem);
Mem.Position := 0;
Mem.Read(Arr3D, SizeOf(Arr3D));
for x := 1 to 10
do for y := 1 to 10
do begin
StringGrid2.Cells[x-1,y-1] := IntToStr(Arr3D[x,y]);
end;
Mem.Free;
end;
end.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
|