Главная страница
    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.079 c
3-1276194806
Дмитрий Белькевич
2010-06-10 22:33
2013.03.22
Еще вопрос по оптимизации запроса.


15-1331704846
CrytoGen
2012-03-14 10:00
2013.03.22
Менеджеры памяти для 64 bit


15-1338323402
Юрий
2012-05-30 00:30
2013.03.22
С днем рождения ! 30 мая 2012 среда


10-1182237882
Strang
2007-06-19 11:24
2013.03.22
Add-In


15-1342992635
Pavlik
2012-07-23 01:30
2013.03.22
Посоветуйте цену





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