Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2007.12.09;
Скачать: [xml.tar.bz2];

Вниз

как перерисовать только 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 вся ветка

Форум: "Media";
Текущий архив: 2007.12.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.04 c
2-1195117909
Новичек
2007-11-15 12:11
2007.12.09
Обработка событий от нескольких сокетов.


3-1186393598
rebroff
2007-08-06 13:46
2007.12.09
Интернет-технологии в ORACLE


1-1189943276
Kostia
2007-09-16 15:47
2007.12.09
деДелфи ???


6-1175280082
Адепт Магии Слова
2007-03-30 22:41
2007.12.09
Как програмно можно изменить рабочую группу компьютера


2-1194762738
boalse
2007-11-11 09:32
2007.12.09
Получение сгенерированного акцессом ключа для новой записи





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский