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

Вниз

Изменение параметров текста в ячейке ValueListEditor при наведении мыши   Найти похожие ветки 

 
Oleg Fomicheff   (2002-02-06 04:28) [0]

Вопрос прост: КАК?
Ячейку под мышью определяю с помощью
valuelisteditor1.MouseCoord(x,y), а как изменть в ней при этом цвет или стиль текста?
Видимо, через OnDrawCell, но у меня не выходит :((
Киньте примерчиком, плиз!


 
Oleg Fomicheff   (2002-02-06 15:47) [1]

неужели никто не знает?
а в stringgrid то же самое как сделать?
проблема в том, что до щелчка мыши события OnDrawCell не происходит :((.
а как его вызывать при наведении мыши?


 
Юрий Зотов   (2002-02-06 15:55) [2]

OnMouseMove + MouseToCell


 
Oleg Fomicheff   (2002-02-06 16:43) [3]

TO Юрий Зотов
спасибо.
идею понял, но чего-то не получается :(((
можно поподробнее?
надо ли отключать DefaultDrawing?
если да, то получается надо в каждом OnDrawCell следить за тем, какая ячейка рисуется (верхние окрашивать серым и т.д.).
А мне всего-то надо поменять цвет и подчеркнуть :).


 
Набережных С.   (2002-02-06 17:52) [4]

Так и перерисовывай нужную - FillRect и вперед.


 
Oleg Fomicheff   (2002-02-06 20:02) [5]

TO Набережных С.
так я вроде так и делаю:
with valuelisteditor1.Canvas do
begin
brush.Color:=clwhite;
font.Color:=clblue;
font.Style:=[fsUnderline];
fillrect(valuelisteditor1.CellRect(valuelisteditor1.MouseCoord(x,y).X,valuelisteditor1.MouseCoord(x,y).y))
end

думал текст будет меняться на голубой подчеркнутый, но это приводит лишь к тому, что ячейку просто заливает белым цветом :(( при этом текста не видно вообще :((
надо как-то текст сохранить, или перерисовать его.
чего-то никак :((


 
Набережных С.   (2002-02-06 20:52) [6]

FillRect - очистил, теперь заново нужно рисовать - и текст, и все, что хочешь.


 
Набережных С.   (2002-02-06 21:29) [7]

Номер ячейки ты знаешь - можешь получить содержимое. У TCanvas
есть методы для вывода текста и определения размеров строки
TextOut, TextRect - рисование текста, TextWidth, TextHeight, TextExtent - размеры, TextFlags - параметры вывода(просто сделай = 0).


 
KSergey   (2002-02-07 11:29) [8]

А вообще-то, рисование где-либо вне WM_PAINT (OnDraw...) ни есть хорошо. Можно вполне придумать сутуацию, когда это не сработает.
Так что выход один: в OnDrawCell определять таки ячейку (ну неужели это так сложно?!), координаты которой (или номера) заносить в какие-либо переменные при OnMouseMove. Ну а в этом OnMouseMove делать Repaint или, что лучше, заставлять перерисовываться не весь грид (что долго, не красиво и не смешно в данном случае) - а заставлять отрисовывать только опред. область (т.е. эту самую ячейку, над которой мышь, ну и за одно ту, с котоой эта мышь жуе ушла (ведь ее состояние надо восстановить!)).



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

Форум: "Основная";
Текущий архив: 2002.02.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
7-66693
Andreika
2001-11-16 02:31
2002.02.21
Как сохранить данные??


3-66436
--Reporter--
2002-01-27 21:20
2002.02.21
Проблема при создании процедуры на Interbase SQL


7-66692
Кол_бас
2001-11-18 15:05
2002.02.21
Количество пиков спикера


1-66554
Alex86
2002-02-05 10:34
2002.02.21
Как создать форму


3-66462
vano1
2002-01-25 15:01
2002.02.21
Кодировка





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