Вниз
Скачать: CL | DM;

Работа с 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.049 c
15-1347788277
Pavia
2012-09-16 13:37
2013.03.22
Посоветуйте СУБД


15-1350643594
Grimm375
2012-10-19 14:46
2013.03.22
Информировать, какие символы разрешено вводить


15-1352056098
Stant11
2012-11-04 23:08
2013.03.22
Глобальный хук на мышку и диспетчер задач в win7.


2-1330198166
Alex_C
2012-02-25 23:29
2013.03.22
Закрыть фаил. Надежно.


15-1350023740
alexdn
2012-10-12 10:35
2013.03.22
Интернет магазины




   Наверх