Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.10.2009, 01:47   #1
Lifefine
Пользователь
 
Регистрация: 03.10.2008
Сообщений: 93
По умолчанию Как сохранить картинку....

Создал я приложения...но когда я сохраняю свой проект и проверяю в другом компе картинка в приложениях не появляется, почему? Хотя я создал .ехе файл. Подскажите пожалуйста, что там нужно в программе добавить? Заранее очень благодарен!
Lifefine вне форума Ответить с цитированием
Старый 23.10.2009, 01:55   #2
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Код загрузки картинки покажите
uberchel вне форума Ответить с цитированием
Старый 23.10.2009, 02:04   #3
Lifefine
Пользователь
 
Регистрация: 03.10.2008
Сообщений: 93
По умолчанию

Цитата:
Сообщение от uberchel Посмотреть сообщение
Код загрузки картинки покажите
Вот код:
Image1.Picture.LoadFromFile('D:\My work\Images\PIC.bmp');

Сохраняю картинку в папке "Image", там где лежит рядишком проект.
На своем компе приложения показывает картинку, а вот в другом нет((((
Lifefine вне форума Ответить с цитированием
Старый 23.10.2009, 02:06   #4
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

А на другом компе есть диск D и папка Image c картинкой ??
И зачем сохранять на диске D , а не в папке с прогой ?
uberchel вне форума Ответить с цитированием
Старый 23.10.2009, 02:15   #5
Lifefine
Пользователь
 
Регистрация: 03.10.2008
Сообщений: 93
По умолчанию

Цитата:
Сообщение от uberchel Посмотреть сообщение
А на другом компе есть диск D и папка Image c картинкой ??
И зачем сохранять на диске D , а не в папке с прогой ?
Я понял, но когда в другом компе я исправляю код, то картинка отображается, но это мучительно...
а какой код нужно написать чтобы картинка была внутри в ехе файле? Или так нельзя делать?

Картинка у меня сохраняется в папкой с прогой!

Последний раз редактировалось Stilet; 23.10.2009 в 08:31.
Lifefine вне форума Ответить с цитированием
Старый 23.10.2009, 02:32   #6
Вавел из ГМТУ
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 896
По умолчанию

Допустим у тебя есть программа и есть картинки. Предположим ты создал папку Images тамже где и .exe и запихнул туда свои картинки.

Теперь немного теории.
1. Есть функции, которые возвращают полный путь, откуда запустилась твоя программа. Я знаю как минимум две, это: ParamStr(0) и Application.Exename. Хотя на счёт того что последнее является функцией я неочень уверен.
Все они вернут строки такого типа:
C:\Program Files\Borland\Delphi7\Projects\Proj ect1.exe
Тоесть полный путь к приложению от куда оно запустилось.

2. Есть функции который могут обрезать эту строку до определёных кусочков. Например расширение файла, диска, директории и пр.
Конкретней тут:
http://www.delphibasics.ru/ExtractFileDir.php

От теории к практике. Теперь напишем как "привязать" все твои картинки к программе и сделать так, чтоб она их находила не зависимо от того, откудо запущена.

ExtractFilePath(ParamStr(0)) + 'Images\PIC.bmp'

Гениально, не правдали?

Image1.Picture.LoadFromFile(Extract FilePath(ParamStr(0)) + 'Images\PIC.bmp');

Вот теперь программа сама найдёт твои картинки в своих папках.

PS: и так указывать пути надо везде, ибо это правильно, ибо это гениально.

Последний раз редактировалось Вавел из ГМТУ; 23.10.2009 в 02:38.
Вавел из ГМТУ вне форума Ответить с цитированием
Старый 23.10.2009, 03:00   #7
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Вавел из ГМТУ - последняя являеться так же функцией как и 1, потому что только в функцию можно задать инфу(присвоить её к типу).
uberchel вне форума Ответить с цитированием
Старый 23.10.2009, 03:08   #8
Вавел из ГМТУ
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 896
По умолчанию

Нет, всёже это свойство объекта Application, доступное только для чтения.... Эт ни как не функция

Цитирую:

Цитата:
В каждом приложении автоматически создается объект Application типа TApplication — приложение. Этот компонент отсутствует в палитре библиотеки, вероятно, только потому, что он всегда один в приложении. Application имеет ряд свойств, методов, событий, характеризующих приложение в целом.

Рассмотрим сначала некоторые свойства Application. Булево свойство Active (только для чтения) характеризует активность приложения. Оно равно true, если форма приложения находится в фокусе. Если же пользователь переключился на работу с другим приложением, свойство Active равно false.

Свойство ExeName является строкой, содержащей имя выполняемого файла с полным путем к нему. Это свойство удобно использовать, чтобы определять каталог, из которого запущено приложение и который может содержать другие файлы (настройки, документы, базы данных и т.п.), связанные с приложением. Выражение ExtractFilePath(Application.ExeName ) дает этот каталог. Обычно свойство ExeName тождественно функции ParamStr(0), возвращающей нулевой параметр командной строки — имя файла с путем.
Даниэль Дефо. Робинзон Крузо
Вавел из ГМТУ вне форума Ответить с цитированием
Старый 23.10.2009, 04:03   #9
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Да не то вы мне показывайте, ведь TStringList - Тоже не функция, нокогда пишем допустим StringList.Items.Text - Она приобретает тип string(т.е у компонента Items.Text - имеет свойство Caption которое имеет свойство String)

Так что когда Мы пишем так Application.ExeName - TАpplication(класс TComponent) принемает тип своей функции String ! )
uberchel вне форума Ответить с цитированием
Старый 23.10.2009, 05:13   #10
r9m
₪₪₪₪₪₪₪₪
Форумчанин
 
Аватар для r9m
 
Регистрация: 16.04.2007
Сообщений: 471
По умолчанию

Вот эт да )

Application.Exename - это поле, типа string, которое изменяется закрытым методом GetExeName: string;
r9m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранить картинку и текст в одном файле 856100 Общие вопросы Delphi 15 31.08.2009 13:48
TWebBrowser - сохранить картинку Air Компоненты Delphi 7 16.01.2009 02:31
Как нарисовать картинку сбоку в меню как в Punto Switcher Crazyman Win Api 4 26.09.2008 18:13
Как загрузить картинку? Editor Работа с сетью в Delphi 11 15.07.2008 23:13