|
|
|
Как покрасить попарно строки DBGrid?
|
|||
|---|---|---|---|
|
#18+
Как красить строки DBGrid, если выполняется условие, я знаю. Сейчас стоит задача покрасить строки DBGrid-а попарно: т.е. первые две строки в один цве, а вторые две - в другой, а дальше по аналогии. Можно ли это сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2004, 13:44 |
|
||
|
Как покрасить попарно строки DBGrid?
|
|||
|---|---|---|---|
|
#18+
можно хоть так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ш (';') (V),(V),, Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2004, 14:05 |
|
||
|
Как покрасить попарно строки DBGrid?
|
|||
|---|---|---|---|
|
#18+
JibSkeart я попробовал твой код. У меня покрасились 1,2 столбцы в красный, 3 - по умолчанию, 4-8 - в зеленый. Но цвет солбцов я мого установить и в свойствах DBGrid-a. А мне же нужно покрасить строки(!) попарно. Просто каждая пара это, скажем одна группа. Чтобы их не путать или они не сливались в тексте, я и хочу покрасить их в один цвет, а следующую пару строк(четную) в другой. Т.е. всего два цвета. Кол-во строк всегда четное! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2004, 15:26 |
|
||
|
Как покрасить попарно строки DBGrid?
|
|||
|---|---|---|---|
|
#18+
а понял не столбцы а строки :)) а если так ? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ш (';') (V),(V),, Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2004, 15:31 |
|
||
|
Как покрасить попарно строки DBGrid?
|
|||
|---|---|---|---|
|
#18+
Извини это не совсем то. Хотя это правильно, но я работаю с фильтрованным набором данных и DBGrid1->DataSource->DataSet-> RecNo %2 здесь не подходит из-за того, что RecNo не идут подряд. Используя твой код я получил закрашенными то 1, то 2, то 3 строки ... Здесь бы всё решилось, если бы можно было покрасить непосредсвенно строки DBGrid1(по две штуки), не применяя ни каких условий к таблице. Применить условие к паре конечно можно, если DBGrid1DrawColumnCell сравнивать текущую строку со следующей(у них два параметра должны совпадать). Но я не представляю как это сделать в DBGrid1DrawColumnCell. Короче как бы покрасить в DBGrid четные и нечетные пары? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2004, 17:56 |
|
||
|
Как покрасить попарно строки DBGrid?
|
|||
|---|---|---|---|
|
#18+
Блин ... на основании всего написанного проще простого сделать то что нужно. Скажем вот так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2004, 21:04 |
|
||
|
Как покрасить попарно строки DBGrid?
|
|||
|---|---|---|---|
|
#18+
Опять та же ерунда. Снова покрашено через строку, потом по парам, потом через строку, затем три и ...т.д. Я же говорю, что нельзя здесь пользоваться DataSource->DataSet->RecNo, т.к. записи одной пары в реальной таблице (а не в фильтрованной, для которой и решаем вопрос закраски) не обязательно находятся рядом. Использовать как-то нормально RecNo не получится. В DBGrid же пары стоят упорядоченно друг за другом, но скажем у первой пары RecNo 1-Й записи 12345, а у 2-й 12348. У второй пары 12422 и 12423. Короче здесь закономерности нет! Если бы у тебя был нормальный ящик, я бы тебе отправил скриншот того что получается по твоему коду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2004, 12:00 |
|
||
|
Как покрасить попарно строки DBGrid?
|
|||
|---|---|---|---|
|
#18+
ну тогда надо как то по другому изголятся :) ш (';') (V),(V),, Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2004, 12:20 |
|
||
|
Как покрасить попарно строки DBGrid?
|
|||
|---|---|---|---|
|
#18+
я понял о чем ты нговоришь. сейчас поковыряю что можно сделать... ведь на верняка можно. а почтовый ящик у меня очень даже реальный хотя и выглядит странновато ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2004, 12:25 |
|
||
|
Как покрасить попарно строки DBGrid?
|
|||
|---|---|---|---|
|
#18+
вот скажем есть такой вариант. алгоритм конечно не оптимальный, но здесь главное принцип Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2004, 13:07 |
|
||
|
Как покрасить попарно строки DBGrid?
|
|||
|---|---|---|---|
|
#18+
я тоже хотел предложить этот вариант ,но у меня он что то как то криво выводит :) ш (';') (V),(V),, Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2004, 13:47 |
|
||
|
Как покрасить попарно строки DBGrid?
|
|||
|---|---|---|---|
|
#18+
SCORPION Z Здесь бы всё решилось, если бы можно было покрасить непосредсвенно строки DBGrid1(по две штуки), не применяя ни каких условий к таблице. Применить условие к паре конечно можно, если ... сравнивать текущую строку со следующей(у них два параметра должны совпадать). ... Короче как бы покрасить в DBGrid четные и нечетные пары? У меня есть такое предложение: ввести в таблицу/курсор поле Color, в которое складывать значения цвета строки. Перед выдачей данных необходимо пробежаться по базе (с учетом фильтра) и сложить в это поле (Color) необходимые значения цвета. А в DBGrid'е использовать это значение для раскрашивания строк... Конечно, это несколько замедлит работу с базой и выдачу первой порции данных... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2004, 13:48 |
|
||
|
Как покрасить попарно строки DBGrid?
|
|||
|---|---|---|---|
|
#18+
1. Станислав C. С твоим предложением не разобрался - для меня это пока сложно для понимания. 2. 123456789098 Попробовал твой последний код... . Короче 1-я строка-красная, 2-я - обычная, затем 8 пар красная/обычная, а после все красные! Но интерессный момент. Когда я ставлю указатель в конец DBGrid-a и начинаю скролировать вверх, то все последние-красные записи начинают перекрашиваться попарно, как и положено. При скролировании по 8-ми парам красная/обычная - они перекрашиваются все в обычный цвет! При скролировании вниз - история повторяется, как описано первоначально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2004, 14:13 |
|
||
|
Как покрасить попарно строки DBGrid?
|
|||
|---|---|---|---|
|
#18+
Небольшие уточнения! " а после все красные " - это те те записи, которые чтобы увидеть нужно проскролировать DBGrid1 (т.е. записи невидимые при первой покраске)! "скролировать вверх" - не мышью(!), а стрелками. При скролировании мышью цвет ячеек не меняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2004, 14:26 |
|
||
|
Как покрасить попарно строки DBGrid?
|
|||
|---|---|---|---|
|
#18+
SCORPION Z1. Станислав C. С твоим предложением не разобрался - для меня это пока сложно для понимания. 2. 123456789098 Попробовал твой последний код... . Короче 1-я строка-красная, 2-я - обычная, затем 8 пар красная/обычная, а после все красные! Но интерессный момент. Когда я ставлю указатель в конец DBGrid-a и начинаю скролировать вверх, то все последние-красные записи начинают перекрашиваться попарно, как и положено. При скролировании по 8-ми парам красная/обычная - они перекрашиваются все в обычный цвет! При скролировании вниз - история повторяется, как описано первоначально. я про это и говорил что с этим вариантом у меня тоже глюки . А Станислав C. тобе дело говорит заведи в таблице поле числовое , где храни либо цвет , либо 1 ,0 и потом при выводе если цвет то цвет :) , а если 1 то один цвет, 0 то другой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2004, 14:26 |
|
||
|
Как покрасить попарно строки DBGrid?
|
|||
|---|---|---|---|
|
#18+
скролить я не пробовал ... ну да ничего и это можно победить. шас посмотрю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2004, 14:29 |
|
||
|
Как покрасить попарно строки DBGrid?
|
|||
|---|---|---|---|
|
#18+
JibSkeartзаведи в таблице поле числовое , где храни либо цвет , либо 1 ,0 и потом при выводе если цвет то цвет :) , а если 1 то один цвет, 0 то другой Понятно. Но ради пару сотен записей из 80тыс - это не рентабельно. int dbg_RecNo=int((Rect.Top-TitleHeight)/Rect.Height())+1; Нужно не Rect.Height())+1, а + 2 , т.к. нумерация нгаверное с 0, а не 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2004, 14:56 |
|
||
|
Как покрасить попарно строки DBGrid?
|
|||
|---|---|---|---|
|
#18+
вся фигня в том что при прокручивании все достаточно умно прорисовысается ... когда крутишь вверх, то картинка просто передвигается вверх на высоту передвинутой строки (строк), добавленная(ые) строка(ки) прорисовываются на освободившемся месте. .. но это все мелочи.самое главное то что сама канва у грида имеет именно такой размер как видимая область грида, а не такая как показано скролбарами и поэтому строка идущая сразу за заголовком полей всегда будет первой (в смысле если рассчитывать № строки указанным мной методом) не важно что она на самом деле будет сотой ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2004, 15:15 |
|
||
|
Как покрасить попарно строки DBGrid?
|
|||
|---|---|---|---|
|
#18+
Честно говоря я прозрел. Такие факты для меня были не известны. А под активной строкой, если она не красная, а белая (по умолчанию) у тебя ничего не видно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2004, 15:45 |
|
||
|
Как покрасить попарно строки DBGrid?
|
|||
|---|---|---|---|
|
#18+
SCORPION Z JibSkeartзаведи в таблице поле числовое , где храни либо цвет , либо 1 ,0 и потом при выводе если цвет то цвет :) , а если 1 то один цвет, 0 то другой Понятно. Но ради пару сотен записей из 80тыс - это не рентабельно. А если сделать выборку (Select) по нужным тебе условиям, а дальше применить то, что я предложил ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2004, 05:58 |
|
||
|
Как покрасить попарно строки DBGrid?
|
|||
|---|---|---|---|
|
#18+
а если попробовать как-нить так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. получается 3 через 3... но можно придумать как задать условия, чтоб получилось 2 через 2. сам принцип такой не покатит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2004, 11:02 |
|
||
|
Как покрасить попарно строки DBGrid?
|
|||
|---|---|---|---|
|
#18+
а ты кол-во колонок знаешь ? так как d будет увеличиватся , от прорисовки каждой колонки ... ш (';') (V),(V),, Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2004, 11:11 |
|
||
|
Как покрасить попарно строки DBGrid?
|
|||
|---|---|---|---|
|
#18+
ну и на здоровье ... пусть растет... можно где-нить в он_форм_рефреш его обнулить ... да или просто добавить еще одно условие if(ddd == 16 || == 10 || == 122) ddd = 0; а сам прицип-то использования левых переменных - плох? или нет? сам не пойму ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2004, 11:30 |
|
||
|
Как покрасить попарно строки DBGrid?
|
|||
|---|---|---|---|
|
#18+
а сам прицип-то использования левых переменных - плох? или нет? сам не пойму ) Но а если деваться некуда то как быть ?? ш (';') (V),(V),, Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2004, 12:20 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=32631180&tid=2034586]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 402ms |

| 0 / 0 |
