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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.07.2008, 19:43   #1
DeDoK
Форумчанин
 
Аватар для DeDoK
 
Регистрация: 05.11.2007
Сообщений: 392
Вопрос Конвертация ICO в BMP

Здраствуйте форумчане! помогите плз разобраться в вопросе:
Пишу такой код:
Код:
procedure TForm1.ConvertButtonClick(Sender: TObject);
var
Icon : TICON;
Bitmap : TBitmap;
begin
if ComboBox1.Text=('Формат') then ShowMessage('Please, choose your format!') else
if ComboBox1.Text=('Конвертировать в  BMP') then
begin
Icon:=Ticon.Create;
Icon.LoadFromFile(OpenDialog1.FileName);
Bitmap.Width:=Icon.Width;
Bitmap.Height:=Icon.Height;
Bitmap.Canvas.Draw(0,0,Icon);
Image1.Picture.Bitmap.Assign(Bitmap);
Image1.Picture.SaveToFile(ExtractFilePath(Application.ExeName) + 'Temp.bmp');
Icon.Free;
Bitmap.Free;
end;
Все компилируется но при использовании программы выдается ошибка такого рода:
Access viotation at address 0047C5DA in module 'IcoToBmp.exe'. Read of address 0000BD51

Последний раз редактировалось DeDoK; 15.07.2008 в 19:47.
DeDoK вне форума Ответить с цитированием
Старый 15.07.2008, 19:51   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Пропущено
Код:
BitMap:=TBitMap.Create;
перед строкой
Код:
Bitmap.Width:=Icon.Width;
eoln вне форума Ответить с цитированием
Старый 15.07.2008, 19:54   #3
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Вы неправельно сохраняете. Вот в этой строчке:

Image1.Picture.SaveToFile(ExtractFi lePath(Application.ExeName) + 'Temp.bmp');
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 15.07.2008, 20:01   #4
DeDoK
Форумчанин
 
Аватар для DeDoK
 
Регистрация: 05.11.2007
Сообщений: 392
По умолчанию

спасибо за пропущенную строку=) а как правильно сохранить то? подскажите плз?
DeDoK вне форума Ответить с цитированием
Старый 15.07.2008, 20:06   #5
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Прошу прощения, я немного не туда глянул, ваш вариант хороший. И на всякий случай можно ещё так сохранять, мне кажется так будет надёжней:

Image1.Picture.SaveToFile(ExtractFi lePath(ParamStr(0))+'Temp.bmp');
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 15.07.2008, 23:44   #6
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

По моему будет лучше, если сохранять под тем же именем, но с другим расширением, там, где и исходный формат:
Код:
x:=ExtractFileName(OpenDialog1.FileName);
Image1.Picture.SaveToFile(ExtractFilePath(OpenDialog1.FileName)+Copy(x,0,pos('.',x)-1)+'.bmp');
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг

Последний раз редактировалось Dj_smart; 15.07.2008 в 23:47.
Dj_smart вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конвертация типов: Double to Integer Noor Общие вопросы Delphi 4 26.09.2012 18:46
Конвертация одной БД в другую Старовъръ БД в Delphi 2 19.08.2008 12:26
3dmax и DelphiX, конвертация. xPAL Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 03.02.2008 18:57
конвертация db в dbf? Eduard БД в Delphi 2 20.09.2007 13:24
Конвертация real > integer Viteef Общие вопросы Delphi 2 03.05.2007 18:45