Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.065 c
15-1325340451
Pit
2011-12-31 18:07
2013.03.22
Delphi XE2 и крупные проекты


15-1345335302
Германн
2012-08-19 04:15
2013.03.22
Формат двоичного представления дробного числа


15-1331246578
Дмитрий С
2012-03-09 02:42
2013.03.22
FreePascal под линуксом.


8-1227612031
axwork
2008-11-25 14:20
2013.03.22
Вопрос про раскодирование потока с IP камеры Axis (MJPEG)


2-1334141822
Chuck Bass
2012-04-11 14:57
2013.03.22
framerect пунктиром





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский