Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизРабота с TBitMap Найти похожие ветки
← →
karambos (2012-06-19 21:50) [0]Подскажите пожалуйста, запутался немного с указателями.
Если мне нужно передать битмап в процедуру, в которой будет происходить отрисовка, как правильно объявить процедуру
procedure drawBMP(b: TBitmap)
или объявить PTBitmap = ^TBitmap и
procedure drawBMP(b: PTBitmap)
И второй вопрос в принице обратный - как правильно объявить функцию, которая возвращает битмап
function getBMP: TBitmap;
begin
if then result:= bmp1 else result:= bmp1;
end;
var
b: TBitmap;
...
b:= getBMP;
b.canvas.draw...
или
function getBMP: PTBitmap;
begin
if then result:= @bmp1 else result:= @bmp1;
end;
var
b: PTBitmap;
...
b:= getBMP;
b^.canvas.draw...
Вот не помню что-то где то читал про утечки памяти и про какие-то скрытые .. уже не помню что..
если делаю как TBitMap то что-то b.canvas.handle что-то постоянно меняется.
← →
Омлет © (2012-06-19 21:54) [1]> как правильно объявить процедуру
Так:procedure drawBMP(b: TBitmap)
Переменная типа TBitmap - это уже указатель.
← →
Омлет © (2012-06-19 21:56) [2]
> как правильно объявить функцию, которая возвращает битмапfunction GetBmp: TBitmap;
begin
Result := TBitmap.Create;
end;
var
b: TBitmap;
b := GetBmp;
try
...
finally
b.Free;
end;
← →
karambos (2012-06-19 22:03) [3]Спасибо огромное!
← →
karambos (2012-06-19 22:06) [4]Если я создал битмап, хендл канваса что я бы не делал (менял размеры, очищал, рисовал... ) будет всегда тот же?
BMP.canvas.Handle ?
← →
Омлет © (2012-06-19 22:15) [5]> Если я создал битмап, хендл канваса что я бы не делал (менял
> размеры, очищал, рисовал... ) будет всегда тот же?
Нет, может поменяться.
← →
karambos (2012-06-19 22:22) [6]Омлет ©, огромное Вам спасибо!
А то я уже весь код потока перерыл из-за того, что заметил хэндл разный..
Отсюда и мысли пошли не в ту сторону ;)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.087 c