Показать сообщение отдельно
  #2  
Старый 10.10.2012, 17:41
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от 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, который специально для этого предназначен?
Ответить с цитированием