Форум: "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