С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/23: Рейтинг темы: голосов - 23, средняя оценка - 4.65
 Аватар для AC13
7 / 7 / 0
Регистрация: 13.09.2009
Сообщений: 263

StringGrid - добавление строк. (Delphi)

23.10.2010, 10:05. Показов 4389. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
ЗДРАВСТВУЙТЕ!!!

Есть 2 таблицы StringGrid.
Нужно, чтоб программа рабоатла так:
В StrGr1 вводим данные, нажимаем на кнопку, они переносятся в первую строку StrGr2.
В StrGr1 снова вводим данные, они уже добавляются во 2-ю строку, потом в третью и т.д.

В моём коду добавляется как-то криво и выглядит это вот так:


А вот код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm1.Button1Click(Sender: TObject);
var
 i,j:Integer;
begin
if StringGrid1.ColCount>StringGrid2.ColCount then
   StringGrid2.ColCount:=StringGrid1.ColCount;
for i:=0 to StringGrid1.RowCount-1 do
for j:=0 to StringGrid1.ColCount-1 do begin
StringGrid2.RowCount:=StringGrid2.Rowcount+1;
StringGrid2.Cells[i,StringGrid2.RowCount-1]:=StringGrid1.Cells[i,j];
end;
end;
Если надо, вот исходник:
 Комментарий модератора 
Ссылка удалена, архив вложен в тему.

Пожалуйста, помогите это исправить!
Вложения
Тип файла: rar Mini_program.rar (188.5 Кб, 19 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.10.2010, 10:05
Ответы с готовыми решениями:

Добавление строк в StringGrid. Delphi.
Здравствуйте! :) Скажите пожалйста как в StringGrid добавлять строки. Есть две таблицы StringGrid и кнопка "Найти". ...

Добавление строк в StringGrid
Доброго времени суток! Подскажите, пожалуйста, как добавить новую чистую строку в StringGrid при нажатии на кнопку в самое начало таблицы...

Delphi 7 Stringgrid Нужно сделать цикл для заполнения Stringgrid данными из другого Stringgrid
Нужно чтобы из Stringgrid1 данные переносились в Stringgrid2 Но ТОЛЬКО ПО УСЛОВИЮ Таблицы Stringgrid2 На рис всё показано. За работающий...

3
 Аватар для Kridan
67 / 67 / 11
Регистрация: 08.10.2010
Сообщений: 138
23.10.2010, 10:47
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TForm1.Button1Click(Sender: TObject);
var
 i,j:Integer;
begin
if StringGrid1.ColCount>StringGrid2.ColCount then
   StringGrid2.ColCount:=StringGrid1.ColCount; //А у вас меняется количество колонок 
                              //в первом гриде? 
                              //Может стоит тогда перенести этот код
                              //в FormCreate? Чтобы каждый раз при нажатии кнопки
                              // не сравнивать и не изменять кол-во колонок
for i:=0 to StringGrid1.RowCount-1 do  // строка i:=0 - это шапка серая с пустыми полями
                            // она и даёт одну пустую строку во втором гриде
                            // используйте i:=1
                            // А если "полезная" строка всего одна, тогда и цикл не нужен
  for j:=0 to StringGrid1.ColCount-1 do
    begin
    StringGrid2.RowCount:=StringGrid2.Rowcount+1; // вы при переходе к следующей колонке
                                                      // добовляете строку во второй грид
    StringGrid2.Cells[i,StringGrid2.RowCount-1]:=StringGrid1.Cells[i,j];
                 // первая цыфра - номер колонки, вторая строки, а у вас наоборот
    end;
end;
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure TForm1.FormCreate(Sender: TObject);
begin
  StringGrid2.ColCount:=StringGrid1.ColCount; // Уравниваем количество колонок 
                             // если оно не меняется, тов дезайнере выставите его и не меняйте программно
end;
procedure TForm1.Button1Click(Sender: TObject);
var
 i,j:Integer;
begin
for i:=1 to StringGrid1.RowCount-1 do // пропускаем строку с индексом 0 - это шапка
  begin
  StringGrid2.RowCount:=StringGrid2.Rowcount+1; // для каждой строки в Грид1 прибавляем строки в Грид2
  for j:=0 to StringGrid1.ColCount-1 do
    StringGrid2.Cells[i,StringGrid2.RowCount-1]:=StringGrid1.Cells[i,j];
  end; // конец перебора строк в первом гриде
end;
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
23.10.2010, 11:02
А я так понял задачу.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
var
  Form1: TForm1;
  j:Integer;  //счетчик строк ввода
implementation
 
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
j:=0;  //пока ноль
StringGrid1.ColCount:=2;
StringGrid1.RowCount:=2;
StringGrid1.Cells[0,0]:='aaaaaaaa';
StringGrid1.Cells[1,0]:='bbbbbbbb';
StringGrid2.ColCount:=2;
StringGrid2.RowCount:=2;
StringGrid2.Cells[0,0]:='aaaaaaaa';
StringGrid2.Cells[1,0]:='bbbbbbbb';
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var i,k,p:Integer;
begin
p:=0;
for i:=0 to StringGrid1.ColCount-1 do
if StringGrid1.Cells[i,1]='' then p:=1;
if p=1 then Showmessage('В таблицу 1 не введены все данные!')
else
 begin
  StringGrid2.RowCount:=StringGrid2.RowCount+1;
  j:=j+1;
  for k:=0 to StringGrid1.ColCount-1 do
  StringGrid2.Cells[k,j]:=StringGrid1.Cells[k,1];
 end;
for i:=0 to StringGrid1.ColCount-1 do
StringGrid1.Cells[i,1]:='';
end;
end.
Вложения
Тип файла: rar Mini_program_new.rar (195.4 Кб, 24 просмотров)
1
 Аватар для AC13
7 / 7 / 0
Регистрация: 13.09.2009
Сообщений: 263
23.10.2010, 11:10  [ТС]
Спасибо огромное!!! Puporev, Вы верно поняли задачу. Теперь то что надо!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.10.2010, 11:10
Помогаю со студенческими работами здесь

Добавление\удаление строк и столбцов в SringGrid Delphi
Необходимо, что бы строки и столбцы удалялись с конца, сохраняя содержимое остальных ячеек, тоже самое с добавлением. Получается, что...

StringGrid и добавление строк
в StringGrid при добавлении строк всегда остается нижняя пустая строка. точнее заполняется нижняя строка, а потом добавляется еще одна...

StringGrid динамическое добавление строк
Добрый день, есть программа : Выводит на экран имя файла,размер файла,дату создания,контрольную сумму.Но это консольное приложение.Хочу...

StringGrid: динамическое добавление строк и назначение типа столбцов
Доброго дня! Есть ли StringGrid, которому можно было задать тип конкретной ячейки (или всего столбца): ComboBox, обычный Edit, CheckBox?...

Поиск в Stringgrid и вывод строк в новый Stringgrid
Привет. Наверное этот вопрос задавался уже много раз, но я не могу никак понять: 1. У меня есть Stringgrid в нем содержатся записи: фио,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru