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

Вниз

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

 
Юра   (2002-10-16 14:23) [0]

Есть табличка, Paradox+TTable+DBGridEh.
Хочется нарисовать разделитель (например горизонтальную линию) в строке таблицы, когда меняется монотонное значение записей. Например:
Сидоров
Сидоров
Сидоров
Сидоров
Петров
Петров
Петров
Вот в строке, где первый Петров должна быть в верхней части ячейки линия.
Как _нарисовать_ линию я знаю, никак не могу придумать, _когда_ ее рисовать.


 
Max Zyuzin   (2002-10-16 16:34) [1]

Ну например.. запоминайте поле текущей записи (Сидоров, Петров), и если оно поменялось, что рисуем линию и запоменаем новое значение.... Возможно я не совсем понял вопрос и по этому ответ может быть немного "кривым"


 
Dr. Well   (2002-10-16 16:45) [2]

Но такой выход не подходит по причине того, что когда пользователь клыпает мовзой по гриду рандомом, снова врабатывает onDrawCell и предыдущая ячейка запоминается относительно текущей... Таким образом, получается полное говно.


 
Max Zyuzin   (2002-10-16 16:54) [3]

пользователь клыпает мовзой по гриду рандомом
:) Силен и могуч русский язык :) я даже с 3 раза не понял, о чем же реч :)


 
Dr. Well   (2002-10-16 17:05) [4]

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

с уважением Dr. Well


 
Юра   (2002-10-16 18:38) [5]

И какой же выход? Ввести в таблицу дополнительное булевское поле, которое будет равно ПРАВДА, если надо нарисовать линию и ЛОЖЬ в противном случае? Наверное, его еще можно сделать вычисляемым, если напрячься.


 
MsGuns   (2002-10-16 22:16) [6]

Я в таких случаях пользоваоля событием TField OnGetText, где смотрел поле пред.записи и, если оно было чему-то там равно, писал вместо содержимого поля то, что мне надо было.
Но 2 недостатка.
1.Тормозит 2.Работает только когда НД в статусе "на бровях" (Browse)


 
ЮЮ   (2002-10-17 03:46) [7]

А заглянуть в исходники DrawCell слабо? Особенно, где DataLink.ActiveRecord := ... Сам грид тоже вынужден перерисовывать ячейки не только текущей записи. Вот и посмотри как он это делает, не уходя с текущей записи. И тебе только придется посмотреть, совпадает ли значение в неком поле текущей записи с этим же полем в предыдущей. Если нет, то рисуем черту. Для первой строки грида этого мы сделать не сможем, но и "разделитель монотонности" в первой строке не нужен.



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

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

Наверх





Память: 0.46 MB
Время: 0.009 c
7-11525
TCrash
2002-09-02 23:54
2002.11.04
С чем едят тип _FILETIME


14-11461
Феликс
2002-09-25 21:39
2002.11.04
Предлагаю поделиться информацие о хорошей литературе


1-11254
volph777
2002-10-22 17:50
2002.11.04
красиво разбить строку


3-11091
Dennis S
2002-10-15 01:52
2002.11.04
Помогите прочесть в TStringGrid


6-11364
novato
2002-09-05 07:56
2002.11.04
Socket+proxy=отправка сообщений))





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