Главная страница
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.031 c
7-51535
Echelon
2003-08-01 13:50
2003.10.16
RegisterServiceProcess


3-51071
Vlad
2003-09-25 10:26
2003.10.16
Удалить дубли в таблице


3-51068
GS
2003-09-24 06:33
2003.10.16
Подскажите что можно использовать в качестве базы данных


8-51353
Proger
2003-06-17 08:46
2003.10.16
Конвертация JPG в BMP не через временный файл на диске


1-51339
Zmei
2003-10-05 23:13
2003.10.16
Операторы