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

Вниз

как перерисовать только Image   Найти похожие ветки 

 
avprohorov   (2007-02-06 07:02) [0]

Я пишу програмку нестандартной   формы ( не прямоугольная)
на ней 12 регионов неправильной формы, они типа за кнопки.
сверху на регион кладу Image - иконку.
При отработки OnMouseMove через функцию ptinregion
перекрашиваю  регионы в другие цвета при попадании в него мыши, а Image при этом становится невидимым. при попытке перерисовать Image.repaint перерисовывается вся форма, что не очень хорошо (мигает) при каждом движении мыши.
Как выйти из ситуации, чтоб и Image остался видимым и вся форма не перерисовывалась.


 
@!!ex ©   (2007-02-06 10:16) [1]

Использовать InvalidateRect, не импользовать TImage, использовать TBitMap, BitBlt. Решаться все проблемы.


 
avprohorov   (2007-02-06 11:56) [2]

tbitmap вечером попробую хотя я вчера попытался в хелпе  про него почитать, сложно все там как то


 
@!!ex ©   (2007-02-06 13:41) [3]

Все просто.
var
 Back:TBitMap;

FormCreate;
Back:=TBitMap.Create;  //сОздаем экземпляр
Back.Width:=Width;      
Back.Height:=Height;

FormPaint:
//Draw
//Здесь на битмапе рисуешь все что душе угодно.
//Draw
BitBlt(Canvas.Handle,0,0,Width,Height,Back.Canvas.Handle,0,0,SRCCOPY);//Выводим изображение на форму


 
avprohorov   (2007-02-07 10:18) [4]

@!!ex
Я не вижу как в bitmap положить картинку, которая в Timagelist лежит.


 
@!!ex ©   (2007-02-07 12:38) [5]

ImageList.Draw


 
@!!ex ©   (2007-02-07 12:40) [6]

Только для ээфективности Один битмап на всю форму и поэтому картинки из ImageList"a нужно класть в соответствующие координаты БитМапа, все это должно порисходить здесь:

> //Draw
> //Здесь на битмапе рисуешь все что душе угодно.
> //Draw


Кстати, перерисовку окна нужно вызывать так:
InvalidateRect(Handle, nil, false);


 
avprohorov   (2007-02-07 13:41) [7]

вчера пробовал Tbitbtn, у него, как в прочем у TButton refresh  не вызывает рефреш всей формы.
типа тож через invalidateRect делается и  параметром координаты button-а?не хочется с битмапом заморачиватся
попробую всетаки Timage и перерисовку области InvalidateRect


 
@!!ex ©   (2007-02-07 13:43) [8]

"Не созрел, зря старались..." (C)комунизденно
Авось сам дозреешь, или порграммирование бросишь.


 
avprohorov   (2007-02-08 06:21) [9]

попробовал tbitmap в принципе просто. (созрел)



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

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

Наверх




Память: 0.48 MB
Время: 0.028 c
2-1194958126
Ega23
2007-11-13 15:48
2007.12.09
Приведение Boolean к Integer


6-1175602922
user51
2007-04-03 16:22
2007.12.09
Как лучше реализовать пересылку пакетов


2-1195295756
infom
2007-11-17 13:35
2007.12.09
Сохранение rtf с помощью TRichEdit.


5-1163317682
alextorin
2006-11-12 10:48
2007.12.09
Пакет с собственными формами (наследование + IDE)


9-1144963743
NightLord
2006-04-14 01:29
2007.12.09
Ландшафт на GLScene