![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здраствуйте! Есть маленький вопросик) помогите плз, очень нужно...
Например есть база, в ней два поля Opisanie(типа alpha) и Foto (типа Graphic). Как зделать так чтобы при нажатии кнопки пользователь мог выбрать из файлов нужную картинку(OpenPictureDialog) нажать ОК и эта картинка сохранилась в таблице для первой записи и отображалась в DBImage... |
|
#2
|
|||
|
|||
|
В нэте нарыл вот этот код
Код:
procedure TForm1.Button1Click(Sender: TObject); begin //загрузка из файла if OpenPictureDialog1.Execute then begin Table1.Edit; dbImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName); table1.Post; end; end; procedure TForm1.TableBeforePost(DataSet: TDataSet); var BLOB:TBlobStream; begin //сохранение картинки в базе BLOB:=TBlobStream.Create(TBlobField(Table1),bmWrite); try Image1.Picture.Graphic.SaveToStream(BLOB); finally BLOB.Free; end; end; если есть у него недостатки плз напишите!!!! Последний раз редактировалось Admin, 13.06.2009 в 22:16. |
|
#3
|
|||
|
|||
|
Пожалуйста найдите в этом коде ошибки если они есть...
Код:
procedure TForm1.SpeedButton1Click(Sender: TObject);
var fEdit:boolean;
begin //загрузка из файла
if OpenPictureDialog.Execute then begin
if Table.State=dsBrowse then begin Table.Edit; fEdit:=true; end
else fEdit:=false;
Image.Picture.LoadFromFile(OpenPictureDialog.FileName);
if fEdit then Table.Post;
end;
end;
procedure TForm1.TableBeforePost(DataSet: TDataSet);
var BLOB:TBlobStream;
begin //сохранение картинки в базе
BLOB:=TBlobStream.Create(TableImage,bmWrite);
try
Image.Picture.Graphic.SaveToStream(BLOB);
finally BLOB.Free; end;
end;
procedure TForm1.DataSourceDataChange(Sender: TObject; Field: TField);
var BLOB:TBlobStream;
Code:word;
begin //считывание картинки из базы
if DataSource.State=dsBrowse then begin
BLOB:=TBlobStream.Create(TableImage,bmRead);
try
BLOB.Read(Code,SizeOf(Code)); BLOB.Seek(0,0);
case Code of
$4D42: begin
Image.Picture.Graphic:=TBitmap.Create;
Image.Picture.Graphic.LoadFromStream(BLOB);
end;
$D8FF: begin
Image.Picture.Graphic:=TJPEGImage.Create;
Image.Picture.Graphic.LoadFromStream(BLOB);
end;
end;
finally BLOB.Free; end;
end;
end; |