Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #7  
Старый 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.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:20.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025