72 / 61 / 24
Регистрация: 20.09.2016
Сообщений: 559
1

StringGrid на экране видно только 10 записей, как увеличить

18.10.2016, 10:54. Показов 728. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня на экране визуально видно только 10 записей, остальные я не вижу, как мне без прокрутки сделать так чтобы первые записи уходили, а добавленные появлялись, т.е. добавилась 11 запись, у меня на экране стало видно со 2 по 11, и т.д.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2016, 10:54
Ответы с готовыми решениями:

Изображение на экране еле видно, можно ли использовать только внешний монитор?
При включении нетбука ViewSonic VNB107 изображения на экране нет, но бывает еле еле...

Как изменится траектория электронов и что будет видно на экране?
В электронно-лучевой трубке с магнитной фокусировкой пятно сфокусировано на экране. Как изменится...

Lightbox. При открытии увеличенной картинки, видно только заднюю область черную, а само изображение не видно
Здравствуйте! на сайте странно работает lightbox. При открытии увеличенной картинки, видно только...

BIOS загружается, но на экране его не видно
Купил новый шнур DVI, т.к. VGA приказал долго жить (моя видеокарта поддерживает 3 видеовыхода), но...

8
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32825 / 21163 / 8147
Регистрация: 22.10.2011
Сообщений: 36,418
Записей в блоге: 8
18.10.2016, 12:17 2
У грида есть свойство TopRow, изменяя которое можно добиться того, что тебе нужно.
1
72 / 61 / 24
Регистрация: 20.09.2016
Сообщений: 559
18.10.2016, 14:29  [ТС] 3
Подскажи как применить, непонятно как применять, вот нашел "Свойства LeftCol и TopRow определяют соответственно индексы первого видимого на экране в данный момент прокручиваемого столбца и первой видимой прокручиваемой строки.", но не понял ничего примеров нет
0
Практикантроп
4814 / 2709 / 523
Регистрация: 23.09.2011
Сообщений: 5,763
18.10.2016, 14:30 4
... или так, например__
C++
1
2
3
4
     String stroka = "why why why";
     StringGrid1->Rows[StringGrid1->RowCount-1]->Add(stroka);
     StringGrid1->RowCount += 1;
     StringGrid1->Row = StringGrid1->RowCount-1;
при добавлении в конец таблицы смещение происходит автоматически.
0
72 / 61 / 24
Регистрация: 20.09.2016
Сообщений: 559
18.10.2016, 19:23  [ТС] 5
Поправьте что не так, не могу вставить грамотно в свой код, создавал новую форму проверял все работает как надо, но у себя в коде не могу реализовать...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
if(L->Strings[0]=="ADD")
{
 //StringGrid1->Rows[StringGrid1->RowCount-1]->Add(StringGrid1->Cells[0][i] = L->Strings[0];);
  StringGrid1->Cells[0][StringGrid1->RowCount-1] = L->Strings[1];
  StringGrid1->Cells[1][StringGrid1->RowCount-1] = L->Strings[2];
  StringGrid1->Cells[2][StringGrid1->RowCount-1] = L->Strings[3];
  StringGrid1->Cells[3][StringGrid1->RowCount-1] = L->Strings[4];
  StringGrid1->Cells[4][StringGrid1->RowCount-1] = L->Strings[5];
  StringGrid1->Cells[5][StringGrid1->RowCount-1] = L->Strings[6];
 }
 
  StringGrid1->RowCount += 1;
  StringGrid1->Cells[0][StringGrid1->RowCount] = StringGrid1->Cells[0][StringGrid1->RowCount-1];
                      if(StringGrid1->Height==IntToStr(342))
                {
                 return;
                }
                else
                {
                             StringGrid1->Height=StringGrid1->Height+49;
                }
   }
Суть такая, добавляется по строке до 6 строк, т.е. до StringGrid1->Height==IntToStr(342), после этого строки не добавляются, и должен происходить перенос вниз, но по факту визуально переноса не происходит, строки добавляются.
0
Практикантроп
4814 / 2709 / 523
Регистрация: 23.09.2011
Сообщений: 5,763
18.10.2016, 22:21 6
У вас StringGrid1->Height переменная величина?? Вообще-то это высота окна, в котором мы наблюдаем таблицу, и она не меняется в процессе работы, если не принять каких-либо исключительных мер, чтобы это было не так.
Если L у вас StringList и в таблице 6 колонок, то добавление в конец таблицы можно записать так (предварительно удалив нулевую строку (ADD) __
C++
1
2
    L->Delete(0);
    StringGrid1->Rows[StringGrid1->RowCount-1]->AddStrings(L);
Последний анализ, вероятно, у вас не имеет вариантов.
0
72 / 61 / 24
Регистрация: 20.09.2016
Сообщений: 559
18.10.2016, 22:36  [ТС] 7
если растянуть таблицу и не менять высоту в ходе выполнения программы все ок, но если программно менять высоту таблицы то ничего не работает, не могу понять с чем это связано, L это StringList вы правы, я получаю в нее данные и вывожу в таблицу по индексам
0
Практикантроп
4814 / 2709 / 523
Регистрация: 23.09.2011
Сообщений: 5,763
18.10.2016, 22:45 8
Вообще-то, мне тоже довелось как-то использовать величину `Высота таблицы` для вычисления числа видимых строк (таблица помещалась в зоне под сплиттером и её высота была переменной). Вот фрагмент из работающей программы__
C++
1
2
      if(kk+3 > (grid1->Height/grid1->DefaultRowHeight))
        grid1->TopRow=kk+3-(grid1->Height/grid1->DefaultRowHeight);
Здесь grid1 - имя таблицы, а kk - номер выводимой строки. Посредством TopRow строки подвигаются так, чтобы в окне были три последние.
1
72 / 61 / 24
Регистрация: 20.09.2016
Сообщений: 559
19.10.2016, 18:49  [ТС] 9
Может кому пригодится, сделал так:
C++
1
2
3
4
5
6
int newRC = StringGrid1->RowCount;
  for(int i = 1; i < newRC; i++)
  {
    StringGrid1->Rows[i] = StringGrid1->Rows[i + 1];
    StringGrid1->RowCount = newRC;
  }
0
19.10.2016, 18:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.10.2016, 18:49
Помогаю со студенческими работами здесь

В txt больше 2 миллионов записей как вывести в StringGrid?
Ситуация такова, что если цикл увеличиваешь до 2 млн.,то вылезает ошибка Access violation at adress...

ListView, видно 7 строк, вставим 8(ую) её уже не видно. Как програмно показать её?
На форме ListView из 7ми видимых строк. Когда программно добавляются следующие строки, то их не...

Как сделать прозрачность, чтобы сквозь PictureBox было видно видно другие объекты?
Я делаю несколько PictureBox с Gif-анимацией (Робот и снаряд). На заднем цвете стоит transperent,...

Как в полях StringGrid проверить сколько записей удовлетворяющих определенному условию?
Здравствуйте! Такая проблема, работа в StringGrid, нужно в поле Имя найти все записи с , например,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru