ImageList.Draw не рисует картинку

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

ImageList.Draw не рисует картинку

Сообщение dunmaksim » 02.02.2014 21:34:29

Здравствуйте!
Поискал по форуму и интернету, но нигде не нашёл решения моей проблемы.
Поместил на форму ImagesList, в него добавил три изображения.
Создал на форме три панели TPanel. При наведении мыши на каждой должно отображаться изображение из ImagesList'а, примерно так:

Код: Выделить всё
procedure TNoteForm.PanelMouseMoving(Sender: TObject);
var
    ImageIndex: integer;
    ACanvas: TCanvas;
begin
    if (Sender is TPanel) then
        begin
        ACanvas := (Sender as TPanel).Canvas;
        case (Sender as TPanel).Name of
            'AddBtn':
                ImageIndex := 0;
            'PinBtn':
                ImageIndex := 1;
            'DelBtn':
                ImageIndex := 2;
            end;

        with (Sender as TPanel) do
            if (BevelOuter = bvRaised) then
                BevelOuter := bvNone
            else
                begin
                BevelOuter := bvRaised;
                Pics.Draw(ACanvas, 0, 0, ImageIndex, gdeNormal);
                end;
        end;
end;

Однако, на самом деле получается так, что панелька "приподымается" (за счёт изменения свойства BevelOuter), а вот отрисовки изображения не происходит.
Как правильно вывести изображение из TImageList на нужный Canvas в Windows?
dunmaksim
незнакомец
 
Сообщения: 1
Зарегистрирован: 02.02.2014 21:23:15

Re: ImageList.Draw не рисует картинку

Сообщение wavebvg » 03.02.2014 11:37:59

Рисовать нужно по OnPaint
Лучше поместите на панель TImage - он уже имеет правильно настроенный OnPaint, достаточно загрузить в него картинку.
wavebvg
постоялец
 
Сообщения: 355
Зарегистрирован: 28.02.2008 04:57:35


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 220

Рейтинг@Mail.ru