Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.16;
Скачать: CL | DM;

Вниз

Как перетащить в tbitmap конкретный рисунок из Timagelist?   Найти похожие ветки 

 
sergey2   (2003-06-15 14:14) [0]

Сабж. Может я тупой, но пол-дня не мог сделать такую фигню.
Вобщем есть переменная типа tbitmap, и нужно в нее из timagelist перетащить заданный рисунок.
Помогите плиз...


 
Song ©   (2003-06-15 14:20) [1]

TImageList.GetBitMap()


 
sergey2   (2003-06-16 12:50) [2]

Да пробовал я это.. Ни фига не работает.

Когда пишу так:

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() наверное предназначена не для того что мне нужно, а для обратного.

Мож кто еще подскажет?


 
pasha676   (2003-06-16 13:33) [3]

pict:=nil; - супер.

А хелп почитать слабо? Там даже пример есть. Его надо не обнулять, а создавать.


 
sergey2   (2003-06-16 14:17) [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;


 
Song ©   (2003-06-16 15:02) [5]

Нормально.. ты не в созданный bitmap получаешь картинку. Однака, ты гений.


 
sergey2   (2003-06-16 15:12) [6]

Ты имеешь ввиду что мне рисунок нужен был в captionbutton3.Glyph?
просто когда у меня что-то не получается, я начинаю писать код так чтобы все понемногу делалось, чтобы можно было проследить что не нравится компилятору или где ошибка возникает.
Поэтому и вставил эту переменную pict.


 
pasha676   (2003-06-16 15:42) [7]

Да нет же. Он имеет ввиду основы объектного програмирования. Прежде чем использовать объект, его надо создать. Может и есть языки которые обходяться без этого правила - но я таких не встречал.

Если хочешь использовать TBitmap - создай его. Закончил работу - удали. TBitmap - это не переменная картинки - это полноценный объект со всякими методами и пропертями... И еще рекомендую научиться юзать клавишу F1. Если б ты ей воспользовался ранее - то этого вопроса не было бы на форуме.



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

Текущий архив: 2003.10.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
1-51320
patit
2003-10-06 08:16
2003.10.16
предпросмотр документа


1-51279
Сергей Резников
2003-10-06 18:20
2003.10.16
Полный путь приложения по его хэндлу


4-51556
Jack
2003-08-11 14:52
2003.10.16
Как проверить занят ли файл или нет?


1-51260
zumo
2003-10-07 09:32
2003.10.16
Разделение строк


14-51510
Wild
2003-09-27 12:32
2003.10.16
KDevelop (Не могу разобраться)