![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() И снова здравствуйте...
![]() У меня клиентское приложение по продаже автомобилей. Автомобили, имеющиеся в наличии выводятся в DBGrid. При щелчке на ячейке с названием машины на форме должна возникать фотография этой машины, которая должна загружаться из БД (объект Image1), в БД есть поле Photo (тип-текстовый), где прописан путь к изображению (напр.: L:\Проектир_ИС_лаб\bmw.bmp). Как это сделать, подскажите пожалуйста! ![]() |
#2
|
||||
|
||||
![]() Классика жанра)
Берёшь Image1 с панели additional. Visible:=false; В коде на Код:
procedure TForm1.DBGrid1CellClick(Column: TColumn); begin Image1.Picture.LoadFromFile(''); Image1.Top:=; Image1.Left:=; Image1.Visible:=true; end; Image можно поместить где-то просто на форме, а можно просчитать форматы колонки по которой прошёлся клик, и подставить картинку туда ![]() |
#3
|
||||
|
||||
![]() Спасибо за отклик
![]() ![]() |
#4
|
||||
|
||||
![]() Код:
Image1.Picture.LoadFromFile(''); Что то вроде Код:
Image1.Picture.LoadFromFile(Table1.FieldByname('Photo').AsString); Последний раз редактировалось Uniq!, 09.10.2010 в 14:55. |
#5
|
||||
|
||||
![]() Просто так из таблицы невозможно взять ресурс, Дельфи видит её как переменную, а не как таблицу. Ну ладно, спасибо за идеи, буду думать.
|
#6
|
||||
|
||||
![]() Что значит нельзя? o.O
Напишите связку по какому пинципу вы связываете данные и по какому драйверу? ![]() Table1 это лишь пример. Если вы используете Query поставляйте query или ADOQuery? всё зависит от структуры вашей связки |
#7
|
||||
|
||||
![]() ADOConnection1 связан с БД Avto.mdb
ADOQuery1 связан с ADOConnection1 DataSource1 связан с ADOQuery1 Код:
Image1.Picture.LoadFromFile(ADOQuery1.FieldByname('Photo').AsString); |
#8
|
||||
|
||||
![]() Код:
unit LAB6Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Buttons, RpRender, RpRenderHTML, RpCon, RpConDS, RpDefine, RpRave, DB, ADODB, Grids, DBGrids; type TForm1 = class(TForm) DBGrid1: TDBGrid; RvProject1: TRvProject; RvDataSetConnection1: TRvDataSetConnection; RvRenderHTML1: TRvRenderHTML; BitBtn1: TBitBtn; BitBtn2: TBitBtn; Memo1: TMemo; BitBtn3: TBitBtn; RvProject2: TRvProject; RvDataSetConnection2: TRvDataSetConnection; Image1: TImage; Label1: TLabel; ADOConnection1: TADOConnection; ADOQuery1: TADOQuery; ADOQuery2: TADOQuery; DataSource1: TDataSource; DataSource2: TDataSource; procedure BitBtn1Click(Sender: TObject); procedure DBGrid1CellClick(Column: TColumn); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.BitBtn1Click(Sender: TObject); {информация о моделях, имеющихся в наличии} begin ADOQuery1.Active:=False; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('SELECT Name, Price, Data, Comments, Photo'); ADOQuery1.SQL.Add('FROM Table1'); ADOQuery1.Open; ADOQuery1.Active:=True; end; procedure TForm1.DBGrid1CellClick(Column: TColumn); var //FN: string; begin Label1.Caption:=ADOQuery1.FieldByName('Name').AsString; Memo1.Lines.Text:=ADOQuery1.FieldByName('Comments').AsString; {FN:=ADOQuery1.FieldByName('Photo').AsString; if FileExists(FN) then Image1.Picture.LoadFromFile(FN);} Image1.Picture.LoadFromFile(ADOQuery1.FieldByname('Photo').AsString); end; end. |
#9
|
||||
|
||||
![]() а ошибка то какая?)
Не вижу ни кода ни сообщения. Скорее всего формат загружаемый <> доступным для Image1 Последний раз редактировалось Uniq!, 09.10.2010 в 16:00. |
#10
|
||||
|
||||
![]() Ошибка raised exception class Einvalid Graphic with message 'Bitmap image is not valid'.
|
#11
|
||||
|
||||
![]() ЧТД (что и требовалось доказать)
Картинки загружаются какие? jpeg или БМП? ![]() |
#12
|
||||
|
||||
![]() По заданию написанному в методичке необходимо bmp, ну и у меня соответственно bmp
|
#13
|
||||
|
||||
![]() Так мой косяк.
В целом и общем: можно сделать так: Вытасикваем вместо TImage Код:
DBImage: Его свойства: DataSource: DataSource1 DataField: Photo Кода никакого, ибо загрузка идёт по стандартной навигации С Memo и Label советую сделать так же. DBMemo1 вместо Memo1 и DBLabel вместо Label свойства теже DataSource : datasource1 DataField: Comments DataSource : datasource1 DataField: Name Стандартная база по имени: biolife.db Там рыбки в виде graphic Откройте и посомтри что за поле типа graphic и как оно содавалось. Последний раз редактировалось Uniq!, 09.10.2010 в 16:17. |
#14
|
||||
|
||||
![]() Всё, разобралась, огромное спасибо :-*
![]() |
#15
|
||||
|
||||
![]() Есть только одно замечание, если вы по совету Уника сохраняете фотку в БД, то делайте это в отдельной таблице и загружайте данные из нее по мере надобности, а не подобным запросом:
Код:
SELECT Name, Price, Data, Comments, Photo Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |