Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];

Вниз

Простейший вывод картинки   Найти похожие ветки 

 
VasRog   (2004-09-18 12:53) [0]

Не получается почему-то. Вот листинг:
procedure TForm1.FormActivate(Sender: TObject);
var
EHMap: TBitmap;
begin
with form1.Image1.Canvas do
begin
 Pen.Color:=colorbox1.Selected;
 Pen.Style:= psDashDot;
 EHMap:= TBitmap.Create;
 try
  EHMap.LoadFromFile("EarthMapm.bmp")
 except
  EHMap.free;
 end;  // try
end;  // with
end;
Заместо картинки остается белое пятно.Сначала думал, что исключение срабатывает, но ничего не произойдет, если убрать try except.
Помогите найти ошибку, please.


 
Kind   (2004-09-18 14:27) [1]

А где код который отображает саму картинку?
Ты её только загрузил и всё. Canvas.Draw используй


 
Рыба ©   (2004-09-18 17:43) [2]

>VasRog  (18.09.04 12:53)

try
 EHMap.LoadFromFile("EarthMapm.bmp")
except
 EHMap.free;
end;  // try

В этом случае выделенная под картинку память освободится только в случае исключения. Т.е. на лицо прямая утечка памяти. Вместо этого надо писать finally, чтобы память в любом случае освободилась. Твой пример можно переписать так:

procedure TForm1.FormActivate(Sender: TObject);
var EHMap: TBitmap;
begin
 with Image1.Canvas do
 begin
   Pen.Color:= colorbox1.Selected;
   Pen.Style:= psDashDot;
 end;
 EHMap:= TBitmap.Create;
 try
   try
     EHMap.LoadFromFile("EarthMapm.bmp");
     Image1.Canvas.Draw(0, 0, EHMap);
   except
     ShowMessage("Произошла ошибка. Возможно файл не найден.");
   end;  // try-expect
 finally
   EHMap.free;
 end;  // try-finally
end;


 
VasRog   (2004-09-18 18:23) [3]

Огромное спасибо.



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.44 MB
Время: 0.081 c
14-1100741392
ИМХО
2004-11-18 04:29
2004.12.12
Приснился сон...


1-1101744749
Сор
2004-11-29 19:12
2004.12.12
TextFile


1-1101415483
Homa_Programer
2004-11-25 23:44
2004.12.12
переименовать ПАПКУ


3-1100089389
Term
2004-11-10 15:23
2004.12.12
QReport как сделать в отчёте промежуточные итоги


14-1100885645
wolf1979
2004-11-19 20:34
2004.12.12
Транслятор / интерпретатор Java





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский