OSDN Git Service

画像が用意されていないときはContentsStream:=nil;
[newbbs/newbbs.git] / tool / Unit1.pas
1 unit Unit1;
2
3 interface
4
5 uses
6   System.SysUtils, System.Types, System.UITypes, System.Classes,
7   System.Variants,
8   FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.Ani, FMX.Layouts,
9   FMX.Gestures,
10   FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param,
11   FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf,
12   FireDAC.Stan.Async, FireDAC.DApt, FireDAC.UI.Intf, FireDAC.Stan.Def,
13   FireDAC.Stan.Pool, FireDAC.Phys, FireDAC.Phys.MySQL, FireDAC.Phys.MySQLDef,
14   Data.Bind.Controls, Data.Bind.EngExt, FMX.Bind.DBEngExt, System.Rtti,
15   System.Bindings.Outputs, FMX.Bind.Editors, Data.Bind.Components, Data.DB,
16   FMX.Controls.Presentation, FMX.Edit, FMX.Bind.Navigator, Data.Bind.DBScope,
17   FireDAC.Comp.Client, FireDAC.Comp.DataSet, FMX.Objects, FMX.StdCtrls,
18   FireDAC.FMXUI.Wait, FireDAC.Comp.UI;
19
20 type
21   TForm2 = class(TForm)
22     Image1: TImage;
23     FDTable1: TFDTable;
24     FDConnection1: TFDConnection;
25     Edit1: TEdit;
26     BindingsList1: TBindingsList;
27     FDGUIxWaitCursor1: TFDGUIxWaitCursor;
28     BindSourceDB1: TBindSourceDB;
29     NavigatorBindSourceDB12: TBindNavigator;
30     LinkPropertyToFieldBitmap: TLinkPropertyToField;
31     LinkControlToField1: TLinkControlToField;
32     Button1: TButton;
33     OpenDialog1: TOpenDialog;
34     Label1: TLabel;
35     LinkPropertyToFieldText: TLinkPropertyToField;
36     FDTable1id: TFDAutoIncField;
37     FDTable1name: TWideStringField;
38     FDTable1source: TBlobField;
39     procedure Button1Click(Sender: TObject);
40     procedure FDTable1BeforeInsert(DataSet: TDataSet);
41     procedure FDTable1AfterInsert(DataSet: TDataSet);
42     procedure FormCreate(Sender: TObject);
43     procedure FDTable1AfterPost(DataSet: TDataSet);
44   private
45     pos: integer;
46     { private \90é\8c¾ }
47   public
48     { public \90é\8c¾ }
49   end;
50
51 var
52   Form2: TForm2;
53
54 implementation
55
56 {$R *.fmx}
57
58 procedure TForm2.Button1Click(Sender: TObject);
59 var
60   s: TStream;
61 begin
62   if OpenDialog1.Execute = true then
63   begin
64     Image1.Bitmap.LoadFromFile(OpenDialog1.FileName);
65     s := FDTable1.CreateBlobStream(FDTable1.FieldByName('source'), bmWrite);
66     try
67       Image1.Bitmap.SaveToStream(s);
68     finally
69       s.Free;
70     end;
71   end;
72 end;
73
74 procedure TForm2.FDTable1AfterInsert(DataSet: TDataSet);
75 begin
76   FDTable1.FieldByName('id').AsInteger := pos;
77   FDTable1.FieldByName('name').AsString := 'slide' + pos.ToString + '.jpg';
78 end;
79
80 procedure TForm2.FDTable1AfterPost(DataSet: TDataSet);
81 begin
82   FDTable1.Refresh;
83 end;
84
85 procedure TForm2.FDTable1BeforeInsert(DataSet: TDataSet);
86 begin
87   FDTable1.Last;
88   pos := FDTable1.FieldByName('id').AsInteger + 1;
89 end;
90
91 procedure TForm2.FormCreate(Sender: TObject);
92 begin
93   if FDTable1.Exists = false then
94   begin
95     FDTable1.CreateTable;
96     FDTable1.Open;
97   end;
98   FDTable1.Refresh;
99 end;
100
101 end.