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

Вниз

TrackBar и рамка фокуса   Найти похожие ветки 

 
trackbar   (2006-08-23 19:25) [0]

Как бы избавиться от некрасивой пунктирной рамки, которая появляется когда TrackBar находится в фокусе? Подскажите куда копать.


 
PSPF2003 ©   (2006-08-23 19:30) [1]

Смотри метод Paint


 
trackbar   (2006-08-23 19:33) [2]

TTrackBar рисуется функциями винды. тут никакого Paint"a перекрыть не выйдет, я так понял.


 
trackbar   (2006-08-23 19:39) [3]

Сделал самый простой вариант, но он мне жутко не нравится - передаю фокус на иной контрол в событии OnChange.


 
PSPF2003 ©   (2006-08-23 19:51) [4]

Создай свой TTrackBar


 
Sam Stone ©   (2006-08-23 20:22) [5]

А ручками в OnPaint не получится зарисовать обводку поверх имеющейся?


 
trackbar   (2006-08-23 20:25) [6]

PSPF2003 ©   (23.08.06 19:51) [4]
вариант забавный, но не удобный. нужны именно стандартные контролы, чтобы юзер чувствовал себя уютно.

Sam Stone ©   (23.08.06 20:22) [5]
тут много слишком нюансов ведь надо. поднимать цвета которые под обводкой и т.д., по моему тоже крайний вариант совершенно.

может что Отцы скажут? я чувствую что ответ лежит на поверхности.


 
Sam Stone ©   (2006-08-23 20:36) [7]


> trackbar   (23.08.06 20:25) [6]

 Чем не нравится TrackBar.Parent.Color? Или В любом случае получить цвет нужного пикселя неcложно ) Разве что у тебя градиентная заливка на форме.


 
PSPF2003 ©   (2006-08-23 20:38) [8]


> нужны именно стандартные контролы

Ksdev ThemeEngine
Стандартные , только с другой раскраской.


 
trackbar   (2006-08-24 05:16) [9]

PSPF2003 ©   (23.08.06 20:38) [8]
платные ) религия не позволяет.


 
DVM ©   (2006-08-24 10:10) [10]


> TTrackBar рисуется функциями винды. тут никакого Paint"a
> перекрыть не выйдет, я так понял.

Выйдет, выйдет. Как и любое другое сообщение.


 
trackbar   (2006-08-29 07:16) [11]

хм, отловить сообщение WM_PAINT у контрола (класс обертка надо стандартным) я могу, но мне ведь надо теперь отрисовать без фокусной рамки? выполнив Invalidate понятное дело фокус отрисуется... снимать фокус, отрисовывать, возвращать? я запутался (


 
DVM ©   (2006-08-29 10:12) [12]


> но мне ведь надо теперь отрисовать без фокусной рамки?

Рисовать придется весь контрол самому, подставив свою оконную процедуру и самомтоятельно обрабатывая сообщения WM_PAINT и WM_ERASEBKGND.


 
tButton ©   (2006-08-29 10:42) [13]


> Sam Stone ©   (23.08.06 20:22) [5]
> тут много слишком нюансов ведь надо. поднимать цвета которые
> под обводкой и т.д., по моему тоже крайний вариант совершенно.

есть такая тема с XORом
помнится где-то он мне помогал от рамки избавится
помоему должен быть метод который рисует этот самый пунктирный прямоугольник
только не помню у кого он
суть в том, что если отрисовать его ещё раз
то он "исчезнет"
попробуй на рабочем столе рамку выделения растянуть так, чтоб в ширину(/высоту) она была 0пкс
при определённой высоте(/ширине) рамка будет исчезать.


 
DVM ©   (2006-08-29 10:45) [14]


> помоему должен быть метод который рисует этот самый пунктирный
> прямоугольник

Обработчик WM_PAINT


 
tButton ©   (2006-08-29 10:50) [15]


> DVM ©   (29.08.06 10:45) [14]

я был не понят
Дельфи под рукой нету
описаный метод использовал однажды и давно
поэтому импровизирую по памяти
TrackBar1OnPaint(Sender: tObject);
...
TrackBar1.Canvas.DrawFocusRect
...

и будет вам счастье
без заморочек.



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

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

Наверх




Память: 0.48 MB
Время: 0.045 c
2-1158331056
learner
2006-09-15 18:37
2006.10.08
Безопасная работа с ID процесса.


1-1156160268
alexaken
2006-08-21 15:37
2006.10.08
Компонент меню как в Office 2003 для BDS 2006 VCL


15-1158263559
Михель
2006-09-14 23:52
2006.10.08
Кто-то тут (или не тут) спрашивал, как на Дельфи написать WinAMP


15-1158435160
Ajax
2006-09-16 23:32
2006.10.08
Включение компьютера без видеокарты


1-1156856408
Vlarden
2006-08-29 17:00
2006.10.08
Защита листа Excel





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский