Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Предпросмотр файла собственного типа в OpenDialog

490
29 июня 2008 года
frid-karatel
357 / / 15.09.2007
Создал программу, которая открывает файлы собственного файла, например, *.abcd

Файл содержит некоторые модели (скажем, рисунки). Этот файл не откроется ничем другим, кроме этой программы.

Как при выборе этого файла в OpenDialog отобразить модель, содержащуюся в нем, как бы предпросмотром в OpenDialog?

Что требуется:
1. При выборе файла в OpenDialog выполнить функцию.
2. В результате функции будет создан TBitmap, который надо поместить в OpenDialog как предпросмотр
33K
29 июня 2008 года
seska
26 / / 10.04.2008
Сложный вопрос. Мои недалекие познания в программировании подсказывают, что показывается это изображение тоже с помощью процедуры класса TOpenDialog, или TOpenPictureDialog. Что то похожее нашел в файле qdialogs.pas. Может тебе это поможет, хотя хз, используется ли именно эта процедура при предпросмотре.
 
Код:
function MessageDlgPos(const Msg: WideString; DlgType: TMsgDlgType;
  Buttons: TMsgDlgButtons; HelpCtx: Longint; X, Y: Integer;
  DefaultBtn: TMsgDlgBtn = mbNone; Bitmap: TBitmap = nil): Integer;
begin
  Result := MessageDlg(Application.Title, Msg, DlgType, Buttons, HelpCtx,
    X, Y, DefaultBtn, Bitmap);
end;

вобщем я бы искал в этом направлении...
8.8K
29 июня 2008 года
Se AD WMD
165 / / 10.01.2007
У меня возникло 2 варианта:
1) Написать свой OpenDialog
2) Использовать виндовые preview handler"ы
(Для второго варианта: мелкософт
Preview Handlers — API, обеспечивающий использование встроенной в Windows Vista инфраструктуры для упрощенного просмотра содержимого файла с учетом его типа и форматирования, поддерживающей большинство распространенных типов файлов. Кроме того, Preview Handler API позволяет создавать обработчики для предварительного просмотра файлов нестандартных типов. )
246
29 июня 2008 года
GIZMO
1.8K / / 30.07.2004
Цитата: frid-karatel
Что требуется:


1. Унаследовать свой диалог от TOpenDialog
2. Заготовить файл ресурсов с "шаблоном" - это такое описание диалога в файле ресурсов содержащие твои доп. контроллы(прим. набор стилей д.б. таким WS_CHILDW|S_CLIPSIBLINGS|DS_3DLOOK|DS_CONTROL).
3. Присвоить св-ву Template имя твоего диалога напр. "DIALOG1"
4. Засабклассить оконную процедуру на предмет перехвата и обработки WM_COMMAND от твоих контроллов.

Вот так примерно.

490
01 июля 2008 года
frid-karatel
357 / / 15.09.2007
Блин, сложновато выглядит :)

А может так сделать - при открытии TOpenDialog открывать новую форму, на ней TImage. ПРи выборе файла в OpenDialog выполнять функцию по отрисовке графика, который содержится в выбранном файле...?

Тогда гибкости работы будет больше, т.к. на форму можно еще контролов всяких поместить, типа кол-во линий, максимум и минимум функции... Т.е. отображать не только график, но и всю инфу по файлу...

Как такой вариант?

PS: а как узнать, какой файл выбран и как запускать функцию при выборе другого файла? :)
11
01 июля 2008 года
oxotnik333
2.9K / / 03.08.2007
на свою форму кидаешь TDirectoryListBox, TFileListBox в OnChange прописываешь все что надо (загрузка, отображение) и не паришься.
246
01 июля 2008 года
GIZMO
1.8K / / 30.07.2004
Цитата: frid-karatel
Блин, сложновато выглядит :)


это только выглядит сложновато, вот отстанут от меня на работе, то может разомнусь - попрограммирую маленько, выложу примерчик

Цитата: frid-karatel

А может так сделать - при открытии TOpenDialog открывать новую форму, на ней TImage. ПРи выборе файла в OpenDialog выполнять функцию по отрисовке графика, который содержится в выбранном файле...?

Тогда гибкости работы будет больше, т.к. на форму можно еще контролов всяких поместить, типа кол-во линий, максимум и минимум функции... Т.е. отображать не только график, но и всю инфу по файлу...


никто не мешает посадить фрейм/форму, на дочерний диалог и "... отображать не только график, но и всю инфу по файлу"

Цитата: frid-karatel

Как такой вариант?


мой - потомучта он правильный:)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог