Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при выводе изображения из файла, ошибка при выводе OpenDialog 
:(
    Опции темы
Aleks26
Дата 8.10.2012, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 12.3.2010

Репутация: нет
Всего: нет



Я пытаюсь в MDI-приложении выводить в дочерние формы либо текстовые (*.txt) файлы, либо файлы изображений (*.ico, *.jpg). Открываю окно диалога и выбираю файл следующим кодом:
Код

procedure TMDIFileViewer1.Open1Click(Sender: TObject);
var MDIChildren1: TMDIChildren1;
    MDIChildren2: TMDIChildren2;
    FileExt: String[4];
begin
 If FileOpenDialog1.Execute then begin
  FileExt := ExtractFileExt(FileOpenDialog1.FileName);
  if (FileExt = '.jpg') or (FileExt = '.ico') then begin
   MDIChildren2 := TMDIChildren2.Create(Self);
   MDIChildren2.Open(FileOpenDialog1.FileName);
   MDIChildren2.Visible := True;
   MDIChildren2.SetFocus;
  end
   else begin
   MDIChildren1:=TMDIChildren1.Create(Self);
   MDIChildren1.Open(FileOpenDialog1.FileName);
   MDIChildren1.Visible:=True;
   MDIChildren1.SetFocus;
  end;
 end;
end;

С текстовыми файлами проблем нет, а файлы изображений окно диалога не видит.
Если же я выбираю все файлы (*.*) и пытаюсь открыть изображение, то получаю ошибку: "Проект вызвал исключение класса EInvalidGraphic с сообщением 'Unknown picture file extention (.jpg)' " Подскажите, кто-нибудь, в чем дело.    smile 
PM MAIL   Вверх
northener
Дата 9.10.2012, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(Aleks26 @  8.10.2012,  17:15 Найти цитируемый пост)
С текстовыми файлами проблем нет, а файлы изображений окно диалога не видит.

Это первый вопрос. Ответ - FileOpenDialog1 не настроен на работу с иными файлами кроме текстовых.

Цитата(Aleks26 @  8.10.2012,  17:15 Найти цитируемый пост)
Если же я выбираю все файлы (*.*) и пытаюсь открыть изображение, то получаю ошибку: "Проект вызвал исключение класса EInvalidGraphic с сообщением 'Unknown picture file extention (.jpg)' " 

Это второй вопрос. Ответ - Модуль jpeg не подключен в секции uses.


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
Aleks26
Дата 9.10.2012, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 12.3.2010

Репутация: нет
Всего: нет



Спасибо. Только небольшое уточнение:
Цитата(northener @  9.10.2012,  01:06 Найти цитируемый пост)
Ответ - FileOpenDialog1 не настроен на работу с иными файлами кроме текстовых.

Просто я сейчас смотрю довольно старый учебник "Дантеманн, Мишел, Тейлор. Программирование в среде Delphi", где они приводят в качестве примера разработку приложения для просмотра текстовых файлов и изображений, используя в обоих случаях компонент TOpenDialog. Очевидно имеют место различия в версиях, так как у меня стоит Delphi 7 (а учебник 96-го года, то-есть, как я понимаю более ранний)? А для изображений использовать TOpenPictureDialog? smile 

PM MAIL   Вверх
TSerg
Дата 10.10.2012, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 9.10.2012

Репутация: нет
Всего: нет



TOpenDialog не настроен Вами для показа списка файлов изображений, но можно настроить, указав в свойстве Filter нужные расширения.
TOpenPictureDialog это наследник TOpenDialog и он заранее настроен для показа списка файлов изображений.
Логично использовать второй opd.

opd не предназначены для просмотра содержимого каких-либо файлов, это делается либо в соответствующих компонентах, либо вызовом сторонней программы.

Это сообщение отредактировал(а) TSerg - 10.10.2012, 09:46
PM MAIL   Вверх
MetalFan
Дата 10.10.2012, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 22
Всего: 128



Цитата(Aleks26 @  9.10.2012,  13:40 Найти цитируемый пост)
учебник 96-го года
 ого, какой мамонт. там про D5 или вообще D3-D4?



--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Aleks26
Дата 10.10.2012, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 12.3.2010

Репутация: нет
Всего: нет



Цитата(TSerg @  10.10.2012,  09:44 Найти цитируемый пост)
TOpenDialog не настроен Вами для показа списка файлов изображений, но можно настроить, указав в свойстве Filter нужные расширения.

Я потому и спрашивал первоначально, что, несмотря на свойство Filter, установленное как "All Files|*.*|Picture Files|*.bmp,*.ico,*.jpg|Text Files|*.txt" в директориях, где имеются файлы изображений и выборе "Picture Files", я получаю сообщение, что файлов, удовлетворяющих моему фильтру, нет. Поэтому я и писал, в первом своем сообщении, что OpenDialog эти файлы не видит.  smile 
PM MAIL   Вверх
Delvish
Дата 10.10.2012, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


oO
*


Профиль
Группа: Участник
Сообщений: 136
Регистрация: 13.12.2006

Репутация: нет
Всего: 4



Цитата(Aleks26 @  10.10.2012,  11:49 Найти цитируемый пост)
All Files|*.*|Picture Files|*.bmp,*.ico,*.jpg|Text Files|*.txt

не через запятую, а через точку с запятой - ";"
Any|*.*|Pictures|*.jpg;*.bmp|Text|*.txt

Это сообщение отредактировал(а) Delvish - 10.10.2012, 13:16
PM MAIL   Вверх
Aleks26
Дата 12.10.2012, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 12.3.2010

Репутация: нет
Всего: нет



Цитата(Delvish @  10.10.2012,  13:15 Найти цитируемый пост)
не через запятую, а через точку с запятой - ";"
Any|*.*|Pictures|*.jpg;*.bmp|Text|*.txt


Большое спасибо. smile 

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0940 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.