Форум: "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.052 c