Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Выбор изображения, отображения его в окне программы и сохранение пути к нему.

Ответить
Настройки темы
C/C++ - Выбор изображения, отображения его в окне программы и сохранение пути к нему.

Аватара для Virtyaluk

Старожил


Сообщения: 163
Благодарности: 23


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Помогите, пожалуйста
нужно создать окно программы, чтоб на нем была возможность, через кнопочку "Обзор", выбрать изображения(*.png, *.jpg, *.gif, *.bmp)
и сохранить этот путь в файл patch.ini лежащий в той же директории, что и сама программа.
+ желательно над кнопочкой "Обзор" форму для пред-осмотра(preview) выбранного изображения.
Помогите осуществить!

Отправлено: 18:10, 25-01-2010

 

Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата qE+:
и сохранить этот путь в файл patch.ini лежащий в той же директории, что и сама программа. »
Код: Выделить весь код
#include <inifiles.hpp>
...
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   String Path = ExtractFilePath(Application->ExeName);
   TIniFile *Ini = new TIniFile(ExtractFilePath(Application->ExeName)+"patch.ini");
   Ini->WriteString("PATH", "Directory",  Path);
}
Цитата qE+:
нужно создать окно программы, чтоб на нем была возможность, через кнопочку "Обзор", выбрать изображения(*.png, *.jpg, *.gif, *.bmp) »
На вкладке Dialogs(Диалоги) выбрать и кинуть на форму компонент OpenPictureDialog

В нужный обработчик который открывает это диалоговое окно вписать
Код: Выделить весь код
   if(OpenPictureDialog1->Execute())
      OpenPictureDialog1->Execute();

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:31, 25-01-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Virtyaluk

Старожил


Сообщения: 163
Благодарности: 23

Профиль | Сайт | Отправить PM | Цитировать


Drongo,
при добавлении в кнопку строчек:
Код: Выделить весь код
   String Path = ExtractFilePath(Application->ExeName);
   TIniFile *Ini = new TIniFile(ExtractFilePath(Application->ExeName)+"patch.ini");
   Ini->WriteString("PATH", "Directory",  Path);
Кнопка Обзор не реагирует на действия пользователя т.е не открываться окно выбора изображения.
-*---*-
На вкладке Dialogs у меня нет OpenPictureDialog, есть TOpenPictureDialog.
Я перетаскиваю его, на окно моей программы, потом 2 разы щелкаю по созданной форме(чтоб перейти до редактирования кода в новой области),
а оно открывает "Проводник" для выбора картинки.Непонятно как-то.
-*---*-
Подскажите что делать?
или если вам не сложно, напишите готовый код всей программы для выполнения требуемых задач.

Отправлено: 18:45, 25-01-2010 | #3


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата qE+:
есть TOpenPictureDialog »
Это он и есть. Щёлкать по нему не нужно, у вас же за открытие диалогового окна отвечает кнопка Обзор... вот по ней щёлкайте, и в обработчике OnClick.

Готовый код для выполнения требуемых задач. Нужны компоненты Button, Image.
Код: Выделить весь код
#include <inifiles.hpp>
...

void __fastcall TForm1::Button1Click(TObject *Sender)
{
   if(OpenPictureDialog1->Execute()){
      Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName);
      String PathDirectory = ExtractFileDir(OpenPictureDialog1->FileName);
      String PathEXE = ExtractFilePath(Application->ExeName);
      TIniFile *Ini = new TIniFile(ExtractFilePath(Application->ExeName)+"patch.ini");
      Ini->WriteString("PATH", "Directory",  PathDirectory);
    }
}

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 19:24, 25-01-2010 | #4


Аватара для Virtyaluk

Старожил


Сообщения: 163
Благодарности: 23

Профиль | Сайт | Отправить PM | Цитировать


Drongo,
Button это кнопка, а Image это TOpenPictureDialog???
-*---*-
При добавлении строки:
Код: Выделить весь код
#include <inifiles.hpp>
в основной код, приложение вообще не запускается, а при компиляции выдает ошибки:
"E2451 Undefined symbol 'OpenPictureDialog1'"
"E2451 Undefined symbol 'Image1'"

как это понимать??

Последний раз редактировалось Virtyaluk, 25-01-2010 в 19:46.


Отправлено: 19:35, 25-01-2010 | #5


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата qE+:
а Image это TOpenPictureDialog??? »
Нет, Image это Image. Находится на вкладке Additional - компонент TImage

Цитата qE+:
#include <inifiles.hpp> »
Это ж заголовочный файл, его нужно вверх, там где все #include стоят.

Код: Выделить весь код
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "MyRunProgram.h"
#include <inifiles.hpp>  // Например сюда...
#include <FileCtrl.hpp>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
}
...

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:52, 25-01-2010 | #6


Аватара для Virtyaluk

Старожил


Сообщения: 163
Благодарности: 23

Профиль | Сайт | Отправить PM | Цитировать


Drongo,
работает

но вот очередная проблема(ы):

-при открытии "Проводника" для выбора изображений
из перечисленных, нужных мне форматов присутствует только *.bmp.Зато есть ненужные мне *.ico и другие.
Как мне дописать нужные мне форматы и удалить не нужные??

-перетащил я Image куда нужно, работает все нормально т.е. при выборе картинки в "Проводнике" она отображается в этой форме.Но проблема в том что если картинка большая(например, 1280х1024 пикселей)
то только ее часть отображается в форме Image.
Как исправить эту нелепость т.е. чтоб в заданной форме отображался весь рисунок??

-и не сохранился путь к картинке в ini-файл.
или эта функция при обычном(не откомпилированном) запуске не работает, надо только компилировать??

Отправлено: 22:17, 25-01-2010 | #7


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата qE+:
Как мне дописать нужные мне форматы и удалить не нужные?? »
Задачи себе такой не ставил, поэтому выводить рисунок в формате .jpg, .jpeg не умею. Дописать можно открыв фильтр и вписав необходимые расширения, но указаные форматы файлов присутствуют в фильтре, нужен код которы будет загружать и отображать файлы .jpg, и т.д.



Цитата qE+:
Как исправить эту нелепость т.е. чтоб в заданной форме отображался весь рисунок?? »
Установить в свойствах компонента Image значения true в параметре AutoSize и Center. Смотрите скриншот.



Цитата qE+:
-и не сохранился путь к картинке в ini-файл.
или эта функция при обычном(не откомпилированном) запуске не работает, надо только компилировать?? »
Надо выбрать необходимый файл, ведь как иначе программа узнает при запуске, путь к нужному вам файлу?

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Последний раз редактировалось Drongo, 26-01-2010 в 13:49. Причина: Дополнил...


Отправлено: 12:46, 26-01-2010 | #8


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата qE+:
при открытии "Проводника" для выбора изображений
из перечисленных, нужных мне форматов присутствует только *.bmp.Зато есть ненужные мне *.ico и другие.
Как мне дописать нужные мне форматы и удалить не нужные?? »
Добавь к #include <inifiles.hpp> строку
Код: Выделить весь код
#include <inifiles.hpp>
#include <jpeg.hpp> // Эту строку

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 18:26, 26-01-2010 | #9


Аватара для Virtyaluk

Старожил


Сообщения: 163
Благодарности: 23

Профиль | Сайт | Отправить PM | Цитировать


Цитата Drongo:
Добавь к #include <inifiles.hpp> строку »
и допустим для *.png формата нада добавить это - #include <png.hpP> ??
А как удалить *.ico и другие не нужные форматы?

Отправлено: 03:20, 27-01-2010 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Выбор изображения, отображения его в окне программы и сохранение пути к нему.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - Пользовательская настройка порядка отображения меню пуск -> все программы hotdog_01 Microsoft Windows 7 3 17-11-2009 10:35
[решено] Вернуть имя ЕХЕ из полного пути к нему FlatX007 AutoIt 2 14-05-2009 12:12
[решено] Сохранение изображения(captcha) aesir AutoIt 13 02-05-2009 21:36
Графика - Бесплатные программы для изменения формата изображения firedevil Программное обеспечение Windows 2 01-01-2009 21:28
C/C++ - Проблема отображения программы Jonik-Mnimonik Программирование и базы данных 4 08-05-2008 16:39




 
Переход