Помогите, пожалуйста, найти ошибку в коде.
Предполагается, что это БД с картинками, но картинки не появляются...
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.
Может, было бы проще прикрепить проект с небольшой БД вместе, чтобы можно было посмотреть, как именно и где
должна получиться БД с диагнозами кардиограмм, т.е.
сам диагноз, значения некоторых показателей и сама кардиограмма.
DATABASE.zip ( 6.25 килобайт )
Кол-во скачиваний: 412
данные вводить получается, а кардиограмма не появляется.
У меня не получается даже открыть твою базу - Unknown DB Type ...
Так, понятно (что-то у меня Дельфи сглючила)... У тебя BMP файл просто в сжатом виде, поэтому выбрасывается исключение "Bitmap Image is not Valid", когда я преобразовал BMP-шу в НЕсжатый вариант - все отработало.
А как перевести из сжатого вида в несжатый?
З.Ы.что-то мне вообще не нравится как у меня эта программа работает...
Я хотела, чтобы при добавлении новой записи появлялось поле для ввода имени фотографии(DBEdit3), и появлялось сообщение об ошибке, если указанной фотографии не существует, но у меня это тоже не работает.
А зачем так? ИМХО, лучше сделать OpenDialog - и пусть пользователь по-человечески выберет.
Я конвертировала картинки, но они у меня всё равно не появляются.
а у тебя выводится сообщение об ошибке, если вводить название фотографии, которой не существует?
При попытке поменять имя BMP-файла на НЕсуществующее ничего не происходит, но как только после этого пытаешься перейти на другую запись - "Исключение EOpenError - не могу открыть <имя файла>"
Не знаю, что и думать...
у меня ничего не меняется
может быть, это Делфи глючит или у меня какие-нибудь настройки нарушены?
Действительно странная вещь - исходный компрессированный файл спокойно открывается стандартным Paint-ом. Но при этом описанный в MSDN (весенний 2007 года) формат заголовка файла BMP гласит: Первые два символа в файле (bfType - Specifies the file type, must be BM.) должен быть BM (в шестнадцатеричке - 424D), а в этот файл начинается с FFD8, что по MSDN означает что это вовсе не BMP-файл!!!
ЗЫ: Как после этого программировать под Мелкософтом?
ЗЫ: Есть подозрение, что возможно в версиях Delphi более 7-ки (может .NET) этот файл будет открываться стандартно... Есть одна библиотека http://www.torry.net/vcl/graphics/bitmap/sunibmp.zip - там есть демо, которое откомпилированное, открывающее этот файл. Но при моем использовании сей библиотеки под Delphi7 этот файл не открылся.