IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> В БД не появляется картинка
Triplet
сообщение 18.08.2007 11:03
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 78
Пол: Женский

Репутация: -  0  +


Помогите, пожалуйста, найти ошибку в коде.
Предполагается, что это БД с картинками, но картинки не появляются...
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, DB, DBTables, DBCtrls, Mask,jpeg;

type
  TForm1 = class(TForm)
    DataSource1: TDataSource;

    Table1: TTable;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Image1: TImage;
    DBNavigator1: TDBNavigator;
    DBEdit3: TDBEdit;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBEdit4: TDBEdit;
    DBEdit5: TDBEdit;
    DBEdit6: TDBEdit;
    DBEdit7: TDBEdit;
    DBEdit8: TDBEdit;
    DBEdit9: TDBEdit;
    DBEdit10: TDBEdit;
    DBEdit11: TDBEdit;
    procedure Tabel1AfterScroll(DataSet:TDataSet);
    procedure DBEdit3KeyPress(sender:TObject;Var Key:char);
    procedure DBNavigator1Click(Sender:Tobject;Button:TNavigateBtn);
    procedure Tabel1BeforeOpen(DataSet:TDataSet);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  BmpPath:string;
implementation
{$R *.dfm}
procedure TForm1.Tabel1BeforeOpen(DataSet:TDataSet);
begin
BMPPath:=ExtractFilePath(ParamStr(0))+'data\';
end;

procedure ShowFoto(foto:string);
begin
try
Form1.Image1.Visible:=True;
Form1.Image1.Picture.LoadFromFile(BmpPath+foto);
Form1.Image1.Visible:=True;
except
on EFOpenError do
begin
MessageDlg('картинка'+foto+'не существует.',mtinformation,[mbOK],0);
end;
end;
end;

procedure TForm1.Tabel1AfterScroll(DataSet:TDataSet);
begin
If form1.DBEdit3.Visible then
begin
form1.DBEdit3.Visible:=False;
form1.Label4.Visible:=False;
end;
If Form1.DBEdit3.Text<>''
then ShowFoto(form1.DBEdit3.Text)
else form1.Image1.Visible:=False;
end;

procedure TForm1.DBEdit3KeyPress(sender:TObject; Var Key:Char);
begin
If (Key=#13) then
If Form1.DBEdit3.Text<>''
then ShowFoto(Form1.DBEdit3.Text)
else form1.Image1.Visible:=False;
end;

procedure TForm1.DBNavigator1Click(Sender:TObject;Button:TNavigateBtn);
begin
case Button of
nbInsert:begin
Image1.Visible:=False;
dbEdit3.Visible:=True;
Label4.Visible:=True;
end;end;end;


end.
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
hiv
сообщение 22.08.2007 15:48
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


Действительно странная вещь - исходный компрессированный файл спокойно открывается стандартным Paint-ом. Но при этом описанный в MSDN (весенний 2007 года) формат заголовка файла BMP гласит: Первые два символа в файле (bfType - Specifies the file type, must be BM.) должен быть BM (в шестнадцатеричке - 424D), а в этот файл начинается с FFD8, что по MSDN означает что это вовсе не BMP-файл!!! wacko.gif

ЗЫ: Как после этого программировать под Мелкософтом?

ЗЫ: Есть подозрение, что возможно в версиях Delphi более 7-ки (может .NET) этот файл будет открываться стандартно... Есть одна библиотека http://www.torry.net/vcl/graphics/bitmap/sunibmp.zip - там есть демо, которое откомпилированное, открывающее этот файл. Но при моем использовании сей библиотеки под Delphi7 этот файл не открылся.

Сообщение отредактировано: hiv - 22.08.2007 15:57


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 27.07.2025 23:20
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"