Цитата:
Сообщение от zxcvvbbnmm
Нужно, чтобы фото отображалось после добавления button1 загрузка производится через button5
|
TDBImage умеет отображать картинки только в формате bmp.
Цитата:
Сообщение от zxcvvbbnmm
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
try
if (Trim(Edit1.Text)='') or (Trim(Edit2.Text)='') or (Trim(Edit3.Text)='') then
exit;
ADOQuery1.Insert;
ADOQuery1.FieldByName('fio').AsString:=Edit1.Text;
ADOQuery1.FieldByName('oz').AsInteger:=StrToInt(Edit2.Text);
ADOQuery1.FieldByName('фото').AsString:=Edit3.Text;
DBImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
except
on e:Exception do end;
end;
|
После внесения данных в новую запись не забывай сохранять изменения с помощью ADOQuery1.Post;
Цитата:
Сообщение от zxcvvbbnmm
Код:
procedure TForm1.Button5Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
DBImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
edit3.Text:=OpenPictureDialog1.FileName;
end;
|
Здесь ошибка. Эти 2 строчки нужно заключить в
begin..end иначе вторая строчка (edit3.Text:=...) будет срабатывать независимо от условия (т.е. даже если пользователь отменил диалог).
Цитата:
Сообщение от zxcvvbbnmm
Код:
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
try
Edit1.Text:=ADOQuery1.FieldByName('fio').AsString;
Edit2.Text:=IntToStr(ADOQuery1.FieldByName('oz').AsInteger);
Edit3.Text:=ADOQuery1.FieldByName('фото').AsString;
except on e:Exception do end;
end;
|
Для этих целей лучше использовать событие TDataSet.AfterScroll, а не TDBGrid.OnCellClick.
И почему предпочтение отдано TEdit, а не TDBEdit, который специально для этого предназначен?