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

> ВНИМАНИЕ!

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

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> В БД не появляется картинка
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Может, было бы проще прикрепить проект с небольшой БД вместе, чтобы можно было посмотреть, как именно и где
Цитата
картинки не появляются
? Опять же, какая база? Информации - ноль...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

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

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


должна получиться БД с диагнозами кардиограмм, т.е.
сам диагноз, значения некоторых показателей и сама кардиограмма.
Прикрепленный файл  DATABASE.zip ( 6.25 килобайт ) Кол-во скачиваний: 443


данные вводить получается, а кардиограмма не появляется.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






У меня не получается даже открыть твою базу - Unknown DB Type ...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Так, понятно (что-то у меня Дельфи сглючила)... У тебя BMP файл просто в сжатом виде, поэтому выбрасывается исключение "Bitmap Image is not Valid", когда я преобразовал BMP-шу в НЕсжатый вариант - все отработало.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Пионер
**

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

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


А как перевести из сжатого вида в несжатый?
З.Ы.что-то мне вообще не нравится как у меня эта программа работает...
Я хотела, чтобы при добавлении новой записи появлялось поле для ввода имени фотографии(DBEdit3), и появлялось сообщение об ошибке, если указанной фотографии не существует, но у меня это тоже не работает.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


А зачем так? ИМХО, лучше сделать OpenDialog - и пусть пользователь по-человечески выберет.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Цитата
А как перевести из сжатого вида в несжатый?
Я пользовался сторонней программой (именно - ACDSee, опция Convert)

Цитата
Я хотела, чтобы при добавлении новой записи появлялось поле для ввода имени фотографии
Было бы проще положить на форму еще и TOpenDialog или TOpenPictureDialog, и заставлять его открываться, скажем при попытке перейти к другой записи (предыдущей или следующей, или к созданию новой), и пустом содержимом DBEdit3.Text... Тогда пользователь будет вынужден выбрать фотографию, ибо если он этого не сделает, то и не перейдет к другой записи и не создаст новую

Сообщение отредактировано: volvo -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Пионер
**

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

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


Я конвертировала картинки, но они у меня всё равно не появляются. unsure.gif
а у тебя выводится сообщение об ошибке, если вводить название фотографии, которой не существует?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






При попытке поменять имя BMP-файла на НЕсуществующее ничего не происходит, но как только после этого пытаешься перейти на другую запись - "Исключение EOpenError - не могу открыть <имя файла>"

Цитата
Я конвертировала картинки, но они у меня всё равно не появляются
Странно... Вот та картинка, которая у меня работает:

Сообщение отредактировано: volvo -


Прикрепленные файлы
Прикрепленный файл  proba.bmp ( 36.24 килобайт ) Кол-во скачиваний: 471
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Пионер
**

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

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


Не знаю, что и думать...
у меня ничего не меняется
может быть, это Делфи глючит или у меня какие-нибудь настройки нарушены?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Профи
****

Группа: Пользователи
Сообщений: 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 -


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

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

 





- Текстовая версия 24.12.2024 1:21
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name