LinkPropertyToFieldCaption: TLinkPropertyToField;
LinkControlToField2: TLinkControlToField;
FDGUIxWaitCursor1: TFDGUIxWaitCursor;
- DBNavigator1: TDBNavigator;
DBGrid1: TDBGrid;
- FDTable1ID: TIntegerField;
- FDTable1NAME: TWideStringField;
- FDTable1SOURCE: TBlobField;
Button4: TButton;
FDQuery1: TFDQuery;
Memo1: TMemo;
FDTable3dbnum: TIntegerField;
FDTable3database: TWideStringField;
DataSource1: TDataSource;
+ FDTable1id: TIntegerField;
+ FDTable1name: TWideStringField;
+ FDTable1source: TWideMemoField;
procedure Button1Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure combo;
procedure list;
procedure itemsCopy;
+ procedure openPicture(mem: TStream; filename: string);
public
{ Public \90é\8c¾ }
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
- t, t2: TStream;
- jpg: TJpegImage;
+ s, s2: string;
+ t: TMemoryStream;
begin
- with FDTable1 do
- begin
- t2 := TMemoryStream.Create;
- jpg := TJpegImage.Create;
- for i := 1 to 10 do
+ if OpenPictureDialog1.Execute = true then
+ with FDTable1 do
begin
- t := TResourceStream.Create(HInstance, 'Resource_' + i.ToString,
- RT_RCDATA);
- jpg.LoadFromStream(t);
- AppendRecord([i, Format('slide%d.jpg', [i])]);
- Edit;
- t2:=FDTable1.CreateBlobStream(FDTable1.FieldByName('source'),bmWrite);
- jpg.SaveToStream(t2);
- Post;
+ t := TMemoryStream.Create;
+ i:=RecordCount+1;
+ for s2 in OpenPictureDialog1.Files do
+ begin
+ openPicture(t, s2);
+ s := TNetEncoding.Base64.EncodeBytesToString(t.Memory, t.Size);
+ AppendRecord([i, Format('slide%d.jpg', [i]), s]);
+ inc(i);
+ end;
t.Free;
- t2.Free;
+ Refresh;
end;
- t2.Free;
- jpg.Free;
- ApplyUpdates;
- CommitUpdates;
- end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
- FDQuery1.ExecSQL('drop table kainushi.images;');
+ if FDTable1.Exists = true then
+ FDQuery1.ExecSQL('drop table images;');
FDQuery1.ExecSQL;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
- s: TStream;
+ s: TMemoryStream;
+ p: TBytes;
j: TJpegImage;
begin
- s := FDTable1.CreateBlobStream(FDTable1.FieldByName('source'), bmRead);
+ if (FDTable1.Bof = true) or (FDTable1.Eof = true) then
+ Exit;
+ p := TNetEncoding.Base64.DecodeStringToBytes(FDTable1.FieldByName('source')
+ .AsString);
j := TJpegImage.Create;
+ s := TMemoryStream.Create;
+ s.WriteBuffer(p, Length(p));
+ s.Position := 0;
j.LoadFromStream(s);
Canvas.Draw(0, 0, j);
- s.Free;
j.Free;
end;
begin
while not((Bof = true) and (Eof = true)) do
Delete;
- ApplyUpdates;
- Reconcile;
- CommitUpdates;
+ Refresh;
end;
end;
item := ListBox1.ItemIndex;
end;
+procedure TForm1.openPicture(mem: TStream; filename: string);
+var
+ jpg: TJpegImage;
+ bmp: TBitmap;
+begin
+ jpg := TJpegImage.Create;
+ bmp := TBitmap.Create;
+ try
+ jpg.LoadFromFile(filename);
+ bmp.Height := 465;
+ bmp.Width := Trunc(465 * jpg.Width / jpg.Height);
+ bmp.Canvas.StretchDraw(Rect(0, 0, bmp.Width, 465), jpg);
+ jpg.Assign(bmp);
+ jpg.SaveToStream(mem);
+ mem.Position := 0;
+ finally
+ jpg.Free;
+ bmp.Free;
+ end;
+end;
+
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
s: string;