При щелчке на ячейках Dbgrid загружать изображения в Image1 из БД, в БД хранится только адрес изображения в текстовом формате
Первокурсница
сообщение 9:10:2010, 11:13
Сообщение #1
Вставить ник
Новенький
Иконка группы

Репутация:     0  



И снова здравствуйте... post-29851-1275987098.gif
У меня клиентское приложение по продаже автомобилей.
Автомобили, имеющиеся в наличии выводятся в DBGrid (25 разных записей).
При щелчке на ячейке с названием машины на форме должна возникать фотография этой машины, которая должна загружаться из БД (объект Image1), в БД есть поле Photo (тип-текстовый), где прописан путь к изображению (напр.: L:\Проектир_ИС_лаб\bmw.bmp)
Вот как я пыталась это сделать:

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);
end;
end.


Но программа вылетает с ошибкой raised exception class Einvalid Graphic with message 'Bitmap image is not valid'
Также пробовала делать
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
Label1.Caption:=ADOQuery1.FieldByName('Name').AsString;
Memo1.Lines.Text:=ADOQuery1.FieldByName('Comments').AsString;
Image1.Picture.LoadFromFile(Table1.FieldByname('Photo').AsString);
end;

Но тут уже ошибка "неизвестная переменная", да это и понятно... dry.gif
Подскажите пожалуйста, как сделать чтобы при щелчках на ячейках фотографии машин загружались и отображались нормально! em9.gif
Перейти в начало страницы
 
Цитата Цитировать сообщение
 
Start new topic
Ответов (1 - 2)
vital
сообщение 9:10:2010, 12:27
Сообщение #2
Вставить ник
Больной Компом Детектед

Иконка группы

Репутация:     52  



А разве нету компонента по типу dbimage?

Добавлено: А и еще. В папке дельфей(ну или там куда вы при утсановке сказали установить common files) есть папка демос. Там есть пример работы со стандартной базой, и там есть картинки.. С рыбками)


--------------------
Я решил изменить подпись.
Перейти в начало страницы
 
Цитата Цитировать сообщение
DarkKnight125
сообщение 10:10:2010, 08:01
Сообщение #3
Вставить ник
Мегагуру

Иконка группы

Репутация:     38  




Цитата:
(Первокурсница @ 9:10:2010 - 22:13) *
 
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
Label1.Caption:=ADOQuery1.FieldByName('Name').AsString;
Memo1.Lines.Text:=ADOQuery1.FieldByName('Comments').AsString;
Image1.Picture.LoadFromFile(Table1.FieldByname('Photo').AsString);
end;


Вообще смысл и подход верный, можно и так, можно через событие TADOTable (ADOTable1AfterScroll), обязательно проверить сначало на существование файла....
А вообще хочется увидить работу результат : ShowMessage(Table1.FieldByname('Photo').AsString);


Цитата:
(Первокурсница @ 9:10:2010 - 22:13) *
 
Но тут уже ошибка "неизвестная переменная", да это и понятно...


Хм... а какая там переменная неизвестная????


--------------------
С++
Перейти в начало страницы
 
Цитата Цитировать сообщение

Ссылка на тему:
BBCode: 
HTML:      
Fast ReplyReply to this topicStart new topic

 

> Быстрый ответ
 Отправлять уведомления об ответах на e-mail |  Включить смайлики |  Добавить подпись |  AJAX?
   

Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
Нет новых сообщений Общие Ресурсы (файлы, Изображения, Java-программы...)
Как обратиться через скрипт?
4 ученикLN 325 21:08:2014 - 16:01 Посл. сообщение: lmike
Нет новых сообщений Dbgrid С Цветной Строкой
3 Валентин85 1 183 2:04:2014 - 08:52 Посл. сообщение: MisterSpock
Нет новых сообщений Поиск Изображения В Изображении?
1 Andruxai 427 27:12:2013 - 11:03 Посл. сообщение: Andruxai
Нет новых сообщений Вывод Изображения В Catalog.detail
0 antonov 296 21:11:2013 - 09:41 Посл. сообщение: antonov
Нет новых сообщений Инверсия Синей Компоненты Изображения
Инверсия синей компоненты изображения
3 NicePlant 533 20:10:2013 - 15:46 Посл. сообщение: r04

 



1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50
51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100
101|102|103|104|105|106|107|108|109|110|111|112|113|114|115|116|117|118|119|120|121|122|123|124|125|126|127|128|129|130|131|132|133|134|135|136|137|138|139|140|141|142|143|144|145|146|147|148|149
150|151|152|153|154|155|156|157|158|159|160|161|162|163|164|165|166|167|168|169|170|171|172|173|174|175|176|177|178|179|180|181|182|183|184|185|186|187|188|189|190|191|192|193|194|195|196|197|198|199
200|201|202|203|204|205|206|207|208|209|210|211|212|213|214|215|216|217|218|219|220|221|222|223|224|225|226|