Главная страница
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.017 c
8-51359
LedWorm
2003-06-16 12:08
2003.10.16
Регулятор громкости


6-51376
Ups
2003-08-20 02:50
2003.10.16
Есть ли возможность


6-51374
AVoic
2003-08-19 12:11
2003.10.16
программно к who-is


4-51551
Андрей_ЧК
2003-08-12 17:03
2003.10.16
Используя WinAPI


1-51201
Михаааааааааа
2003-10-04 15:25
2003.10.16
Глумимся над Windows