Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Задолбил TJPEGIMAGE [D7, Win2k]


СЕМЕН ©   (2004-11-30 09:34:00) 

procedure TForm1.Button1Click(Sender: TObject);
var IMG: TJpegImage;
begin
if Form1.OpenPictureDialog1.Execute then
   begin
    IMG:= TJpegImage.Create;
    IMG.LoadFromFile(Form1.OpenPictureDialog1.FileName);
    if IMG.Empty then beep;
    IMG.Free;
   end;
end;
хотя Борман утверждает в хелпе
Description

Use Empty to determine if a image has been loaded into the jpeg image object. Empty is true if the jpeg image contains an image, and false if it does not.

А через поток загружаю IMG все ОК.
Я что траву не там беру?
В чем секрет, поможите!


elected   (2004-12-09 13:51:00) [1]

procedure TForm1.Button1Click(Sender: TObject);
var IMG: TJpegImage;
begin
if Form1.OpenPictureDialog1.Execute then
  begin
   IMG:= TJpegImage.Create;
   IMG.LoadFromFile(Form1.OpenPictureDialog1.FileName);
   if not IMG.Empty then beep;
   IMG.Free;
  end;
end;

Если рисунок Загружен ! Empty - Пусто =-))


ЮЮ   (2004-12-02 05:54:00) [2]

IMG.Empty после IMG.LoadFromFile(Form1.OpenPictureDialog1.FileName) возможно только при ошибке в методе LoadFromFile, которая приведет к exception и 1) код if IMG.Empty then ... не выполнится, IMG останется не уничтоженным. Правильно писать так:

Img := TJpegImage.Create;
try
 try
   Img.LoadFromFile(Form1.OpenPictureDialog1.FileName);
 except
   // ошибка загрузки
   beep;
 end;
finally
 IMG.Free;
end;


vgb   (2004-11-30 13:02:00) [3]

По всей видимости в хелпе очепятка, по логике Empty = true <=> изображение отсутствует


СЕМЕН   (2004-11-30 12:20:00) [4]

Требуется beep если рисунок загружен!

Или если совсем непонятно.
uses Jpeg;
//---Image1 - на форму кинуть!

procedure TForm1.Button1Click(Sender: TObject);
var IMG: TJpegImage;
begin
if Form1.OpenPictureDialog1.Execute then
  begin
   IMG:= TJpegImage.Create;
//    IMG.LoadFromFile(Form1.OpenPictureDialog1.FileName);
   if IMG.Empty then
               begin
                   Form1.Image1.Picture.Assign(IMG);
                   beep;
               end;
   IMG.Free;
  end;
Image.Free;
end;
По идее это проверка а есть ли изображение в IMG
В этом примере будет ругаться!!!!!!!! А должно работать!!!!


_Nikolay   (2004-11-30 12:01:00) [5]

Опробовал предложенный фрагмент кода.
Как написано так и работает.
А что требуется от программы?


Наверх

Титульная страница Поиск, карта сайта Написать письмо