Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];

Вниз

Работа с HBitmap   Найти похожие ветки 

 
NAlexey   (2003-02-14 17:19) [0]

Подскажите пожалуйста как правильно работать с HBitmap?
Пользуюсь Bitmap.Handle - вылетает сообщение Out of resources.
Вроде бы везде делаю ReleaseHandle...


 
MBo   (2003-02-14 17:26) [1]

код покажи


 
NAlexey   (2003-02-17 08:53) [2]

function TForm1.GetHGlyph(Index: integer): HBitmap;
var
Pict: TBitmap;
begin
if Index > -1 then
begin
Pict := TBitMap.Create;
try
if Index >= Val then
Pict.Assign(Collection.Items[Index].Glyph)
else
ImageList.GetBitmap(Index, Pict);
Result := Pict.Handle;
finally
Pict.ReleaseHandle;
Pict.Free;
end;
end else
Result := 0;
end;


 
MBo   (2003-02-17 09:13) [3]

procedure TForm1.Button2Click(Sender: TObject);

function loadhbmp(filename:string):hbitmap;
var
b:tbitmap;
begin
b:=tbitmap.create;
b.LoadFromFile(filename);
Result:=b.ReleaseHandle;
b.free;
end;

begin
image1.Picture.Bitmap.Handle:=loadhbmp("e:\4.bmp");
end;


 
NAlexey   (2003-02-17 09:51) [4]

Спасибо, тогда в тему задам еще вопрос.
Почему BitBtn.Glyph, не реагирует на присвоение пустого Handle, вернее реагирует но со второго раза? Т.е если моя ф-ция не находит картинку, она просто создает пустой TBitMap и присваиват его Result, в отладчике я вижу, что на выходе Resul = 0,
а когда делаю BitBtn.Glyph.Hanle := GetHBitMap(1);
Handle BitBtn.Glyph имеет значение отличное от 0, одним словом предыдущая картинка не затирается, хотя с Image.Picture все работает на ура. А вот если вторично присвоить BitBtn.Glyph.Hanle пустое значение, то затирается. В чем здесь дело? Что присваивать BitBtn.Glyph.Handle чтобы изображение было пустым?


 
MBo   (2003-02-17 10:05) [5]

>вот если вторично
у меня такого не происходит.
а
if hmbp=0 then
bitbtn1.Glyph:=nil;
устроит?


 
NAlexey   (2003-02-17 10:21) [6]

>у меня такого не происходит.
Интересно...
Так это понятно что если Handle = 0 то BitBtn.Glyph := nil; Вот в этом мой вопрос и состоит: как работать с Hbitmap?:
var
hmbp: Hbitmap;
begin
hmbp := GetHBitmap(1);
if hmbp=0 then bitbtn1.Glyph :=nil else bitbtn1.Glyph.Handle := hmbp;
end;
Можно так? Если можно, то что делать в конце с hmbp? Потому как повторюсь: BitBtn.Glyph.Handle := GetHBitmap(1); Ф-ция то возвращает 0, а BitBtn.Glyph.Handle имеет значение отличное от 0, такое ощущение что оно переприсваиватся...
Пример:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
BitBtn1.Glyph.Handle := 0;
if BitBtn1.Glyph.Handle = 0 then
BitBtn1.Glyph := nil;
end;
Не работает... В условие заходит со 2-го раза.



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2003.06.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.011 c
3-2747
AlexGreg
2003-05-13 12:57
2003.06.02
... Медленно встаёт ...


14-3132
ga3
2003-05-13 00:17
2003.06.02
MS Internet Explorer User-Agent


1-2972
Kreo
2003-05-19 20:27
2003.06.02
Fast Report & StringGrid Как???


14-3135
circul
2003-05-13 16:39
2003.06.02
Бывает же такая погода...


7-3179
GRR
2003-03-27 08:22
2003.06.02
Убрать звук по закрытии





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