Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как можно узнать, какие строки показываются в DBGRID [D5]


Страницы:   1 2

Rax ©   (2008-03-06 16:57:00) 

Т.е. rowid тех записей, которые реально отображаются в данный момент.


Rax   (2008-03-06 20:14:00) [21]


> и пробегаешься по реально всему датасету... тк. DataSet
> в даталинке это ссылка на него... (выйдет количество записей
> за размер грида по строкам, будет глюк)

неверно. если грид ужат до 5 строк - grid.DataLink.DataSet.RecordCount возвращает именно эти 5 строк.


> и потом, изменение высоты в зависимости от "ширины" строки
> оно както странновато, не находишь? опять таки интересен
> смысл действа...

Конечно же я упрощаю! Не от ширины, а от количества переносов строки внутри текста. При выводе на экран делается wordwrap.
В итоге получается вот так: http://ipicture.ru/uploads/080306/7U6RPM1cUG.gif


> вот про то и говорю. и зря не собираешься...
> раз уж желаешь изменить частично стиль отрисовки должен
> настроить и то от чего зависит другая, невменяемая тобой
> часть... иначе будут перекосы.
> а вот что и как менять, звиняйте не знаю, не "надобилось"
> ничего подобного, а лезть просто так разбираться лень.

Какие перекосы? Что там настраивать? Зачем? )


sniknik   (2008-03-06 19:48:00) [22]

> Конечно я ничего в даталинке трогать не собираюсь!
вот про то и говорю. и зря не собираешься...
раз уж желаешь изменить частично стиль отрисовки должен настроить и то от чего зависит другая, невменяемая тобой часть... иначе будут перекосы.
а вот что и как менять, звиняйте не знаю, не "надобилось" ничего подобного, а лезть просто так разбираться лень.

> Я делаю примерно так:
>   for c:=0 to grid.DataLink.DataSet.RecordCount-1 do begin
и пробегаешься по реально всему датасету... тк. DataSet в даталинке это ссылка на него... (выйдет количество записей за размер грида по строкам, будет глюк)
и потом, изменение высоты в зависимости от "ширины" строки оно както странновато, не находишь? опять таки интересен смысл действа...


Johnmen   (2008-03-06 19:41:00) [23]


> Если в датасете 500 записей - будут показываться далеко не все.

и

> for c:=0 to grid.DataLink.DataSet.RecordCount-1 ...
> grid.RowHeights[c]:=...

Мдя...
Рано вам ещё, барин (с)


Rax   (2008-03-06 18:37:00) [24]


> если в даталинке останется 5 то ты попросту "сломаешь" нормальную
> работу/отображение грида. а количество там по моему (не
> помню) ридонли проперти.

Конечно я ничего в даталинке трогать не собираюсь!
Я делаю примерно так:
  for c:=0 to grid.DataLink.DataSet.RecordCount-1 do begin
     if length(grid.DataLink.DataSet.FieldByName('field').AsString)>100 then      
       grid.RowHeights[c]:=grid.RowHeight*5;
   end;


Rax   (2008-03-06 18:12:00) [25]


> пусть в датасете будет 500 записей, в даталинке будет только
> 18 (+-) отображаемых.

Точняк! То, что надо! Спасибо огромное!


sniknik   (2008-03-06 18:06:00) [26]

> Я делаю 1 строку грида =2 строкам, и всё!
если в даталинке останется 5 то ты попросту "сломаешь" нормальную работу/отображение грида. а количество там по моему (не помню) ридонли проперти.


sniknik   (2008-03-06 18:04:00) [27]

2sniknik:
> Про "все что в нем с 1 позиции по последнюю то и отображается" - глупость полная.
это не глупость это непонимание того что читаеш...
> т.е . все что в немс 1 позиции по последнюю то и отображается.
пусть в датасете будет 500 записей, в даталинке будет только 18 (+-) отображаемых.

т.е. это полный ответ на твой вопрос. пусть по глупости (сам написал) и не воспринимаемый...


Rax   (2008-03-06 17:57:00) [28]

2Правильный_Вася:

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

Виноват, ввёл в заблуждение.
Мне нужен recno датасета. Соотв что там в запросе понаписано - по барабану.

2sniknik:
Про "все что в нем с 1 позиции по последнюю то и отображается" - глупость полная. Грид отображает то, что в нём помещается. Если в датасете 500 записей - будут показываться далеко не все. Там справа полоса прокрутки если кто не в курсе.
Теперь представь: есть 500 записей в датасете. Я прокрутил грид до середины. У меня в первой записи грида отображается 250-я запись из датасета. Так?


> а вот этого у тебя не выйдет... т.к. твои "подстройки" на
> количество записей в DataLink мало влияют... это ты в принципе
> сам должен расчитывать и устанавливать тогда.

Очень даже выйдет!
Смотри: я знаю, что в 1 строке грида у меня 5 запись датасета. Я смотрю данные в 5 записи датасет, и вижу что мне нужно отображать эти данные в 2 строках. Я делаю 1 строку грида =2 строкам, и всё!


Правильный_Вася   (2008-03-06 17:44:00) [29]


> вопрос правильно понять слабо?

я телепатор в ремонт сдал, уж больно часто глупые вопросы попадаются, у него катушки перегреваются


sniknik   (2008-03-06 17:43:00) [30]

> Подстраивать высоту строки под данные
а вот этого у тебя не выйдет... т.к. твои "подстройки" на количество записей в DataLink мало влияют... это ты в принципе сам должен расчитывать и устанавливать тогда.


sniknik   (2008-03-06 17:41:00) [31]

тебе нужен DataLink, в гриде, это фактически "снепшот" данных датасета. т.е. все что в нем с 1 позиции по последнюю то и отображается.

а зачем, это действительно интересно...


Правильный_Вася   (2008-03-06 17:40:00) [32]


>  rowid тех записей
> мне нужен Recno

ты бы уж определился, это понятия разных категорий

> Ферштейн?объясняю на пальцах:

еще раз - набор данных, показываемый в гриде, НЕ ОБЯЗАН состоять из записей одной таблицы


Rax   (2008-03-06 17:39:00) [33]

Подстраивать высоту строки под данные


Johnmen   (2008-03-06 17:31:00) [34]

Можно поинтересоваться, какой в этом сакральный смысл?


Rax   (2008-03-06 17:14:00) [35]

2Правильный_Вася:
вопрос правильно понять слабо?
мне нужен Recno ТОЛЬКО ТЕХ ЗАПИСЕЙ, КОТОРЫЕ В ДАННЫЙ МОМЕНТ ВИДНЫ В ГРИДЕ. Ферштейн?
объясняю на пальцах:
у меня есть выборка
1
2
3
4
5
6
это записи в Dataset, 6 штук
Но в гриде видны только со 2 по 5:
2
3
4
5
т.е. в первой строке грида отображается запись №2, в последней - №5.
Вот мне нужно получить это соответствие
1 строка грида = 2 запись в датасет
2 строка грида = 3 запись в датасет
3 строка грида = 4 запись в датасет
4 строка грида = 5 запись в датасет
так понятнее?


Правильный_Вася   (2008-03-06 17:05:00) [36]

а запросить rowid  в селекте слабо?
а если запрос - соединение нескольких таблиц или вообще результат работы ХП, которая нагенерила результат из воздуха, а не из таблиц?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо