![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как перетащить в tbitmap конкретный рисунок из Timagelist?
sergey2 © (2003-06-15 14:14:00)
Сабж. Может я тупой, но пол-дня не мог сделать такую фигню.
Вобщем есть переменная типа tbitmap, и нужно в нее из timagelist перетащить заданный рисунок.
Помогите плиз...
pasha676 (2003-06-16 15:42:00) [1]
Да нет же. Он имеет ввиду основы объектного програмирования. Прежде чем использовать объект, его надо создать. Может и есть языки которые обходяться без этого правила - но я таких не встречал.
Если хочешь использовать TBitmap - создай его. Закончил работу - удали. TBitmap - это не переменная картинки - это полноценный объект со всякими методами и пропертями... И еще рекомендую научиться юзать клавишу F1. Если б ты ей воспользовался ранее - то этого вопроса не было бы на форуме.
sergey2 (2003-06-16 15:12:00) [2]
Ты имеешь ввиду что мне рисунок нужен был в captionbutton3.Glyph?
просто когда у меня что-то не получается, я начинаю писать код так чтобы все понемногу делалось, чтобы можно было проследить что не нравится компилятору или где ошибка возникает.
Поэтому и вставил эту переменную pict.
Song (2003-06-16 15:02:00) [3]
Нормально.. ты не в созданный bitmap получаешь картинку. Однака, ты гений.
sergey2 (2003-06-16 14:17:00) [4]
Да мне его обнулять и не нужно. Просто это я провел эксперимент.
чтобы компилятор мне не писал что Variable "pict" might not have been initialized. Я просто и не знал что ее нужно создавать.
(раньше не приходилось использовать tbitmap)
Вобщем большое спасибо. Я понял.
Такая фигня уже работает:
procedure TForm1.CaptionButton3Click(Sender: TObject);
var
pict:TBitmap;
begin
pict:=tbitmap.create;
imagelist1.GetBitmap(1,pict);
captionbutton3.Glyph:=pict;
end;
хотя как оказалось можно было и без переменной pict написать:
procedure TForm1.CaptionButton3Click(Sender: TObject);
begin
imagelist1.GetBitmap(1,captionbutton3.Glyph);
end;
pasha676 (2003-06-16 13:33:00) [5]
pict:=nil; - супер.
А хелп почитать слабо? Там даже пример есть. Его надо не обнулять, а создавать.
sergey2 (2003-06-16 12:50:00) [6]
Да пробовал я это.. Ни фига не работает.
Когда пишу так:
procedure TForm1.CaptionButton3Click(Sender: TObject);
var
pict:TBitmap;
begin
imagelist1.GetBitmap(1,pict);
captionbutton3.Glyph:=pict;
end;
компилятор выдает
[Warning] Main.pas(160): Variable "pict" might not have been initialized
И в рантайме в этом месте ошибка возникает.
А когда для эксперимента пробую так:
procedure TForm1.CaptionButton3Click(Sender: TObject);
var
pict:TBitmap;
begin
pict:=nil;
imagelist1.GetBitmap(1,pict);
captionbutton3.Glyph:=pict;
end;
То в строке imagelist1.GetBitmap(1,pict) значение pict не меняется.
Так что эта процедура GetBitmap() наверное предназначена не для того что мне нужно, а для обратного.
Мож кто еще подскажет?
Song (2003-06-15 14:20:00) [7]
TImageList.GetBitMap()