Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.10.2012, 17:12
zxcvvbbnmm zxcvvbbnmm вне форума
Прохожий
 
Регистрация: 04.11.2011
Сообщения: 8
Репутация: 10
По умолчанию привязать фотографию к БД

Нужно, чтобы фото отображалось после добавления button1 загрузка производится через button5


Код:
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;
 
    procedure TForm1.Button5Click(Sender: TObject);
    begin
    if OpenPictureDialog1.Execute then
 
            DBImage1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
            edit3.Text:=OpenPictureDialog1.FileName;
    end;
 
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;
Ответить с цитированием
  #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, который специально для этого предназначен?
Ответить с цитированием
  #3  
Старый 10.10.2012, 17:46
zxcvvbbnmm zxcvvbbnmm вне форума
Прохожий
 
Регистрация: 04.11.2011
Сообщения: 8
Репутация: 10
По умолчанию

что использовать тогда вместо DBImage
ADOQuery1.Post есть на другом button
edit и dbedit разница не большая, через них я только ввожу и редактирую данные

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

Цитата:
Сообщение от zxcvvbbnmm
с Image можно будет эту операцию провернуть?
Да. Если нужно работать не только с bmp, то используй TImage. А TDBImage тут не подойдёт.
Ответить с цитированием
  #5  
Старый 10.10.2012, 17:55
zxcvvbbnmm zxcvvbbnmm вне форума
Прохожий
 
Регистрация: 04.11.2011
Сообщения: 8
Репутация: 10
По умолчанию

еще один вопрос по dbgrid, есть три поля, фио, оценка и фото, поле фио никак не могу сомкнуть что бы оно было меньше, другие поля смыкаются а здесь никак не выходит, можно как нибудь в коде задать эти параметры?
Ответить с цитированием
  #6  
Старый 10.10.2012, 18:07
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от zxcvvbbnmm
еще один вопрос по dbgrid, есть три поля, фио, оценка и фото, поле фио никак не могу сомкнуть что бы оно было меньше, другие поля смыкаются а здесь никак не выходит, можно как нибудь в коде задать эти параметры?
Код:
  DBGrid1.Columns[Номер колонки].Width := Ширина;
Ещё можешь в дизайнере Delphi дважды кликнуть по TDBGrid и в появившемся окне правой кнопкой и "Add All Fields" - появятся все поля ширину которых можно тут же в дизайнере задавать по своему усмотрению.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 07:13.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter