Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Софт
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2010, 19:37   #1
Asblue
Пользователь
 
Аватар для Asblue
 
Регистрация: 21.10.2010
Сообщений: 78
Восклицание Добавление строк в StringGrid

Есть 2 таблицы SG1 и SG2 -> http://s44.radikal.ru/i105/1010/6a/9b8f735fb168.jpg

Нужно, чтоб при нажатии Кнопки в SG2 добавлялись строки из SG1.
В моём коде все данные из первой таблицы добавляются в одну строку второй, а нужно, чтоб каждый раз в новую строку:

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;

type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

type
info=record
a,b:string[20];
end;

var
Form1: TForm1;
f:file of info;
var r:info;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
i,j,k,l,N:integer;
begin
N:=0;
StringGrid2.Cells[0,N+1]:=r.a;
StringGrid2.Cells[1,N+1]:=r.b;
N:=N+1;
begin
k:=0;
l:=0;
for i:=0 to StringGrid2.RowCount-1 do
for J:=1 to StringGrid2.ColCount-1 do
StringGrid2.Cells[i,j]:='';
for i:=1 to N do
begin
k:=k+1;
l:=l+2;
StringGrid2.Cells[0,k]:=StringGrid1.Cells[0,i];
StringGrid2.Cells[1,k]:=StringGrid1.Cells[1,i];
StringGrid2.Cells[0,l]:=StringGrid2.Cells[0,k]+StringGrid2.Cells[0,l];
StringGrid2.Cells[1,l]:=StringGrid2.Cells[1,k]+StringGrid2.Cells[1,l];
end;
end;
end;

end.

Пожалуйста помогите!!!

У нас принято оформлять код специальным тэгом - при помощи кнопочки "#".
Только...
И не значком #.
И не РНР-кодом.
И не значком цитаты.
И не собственными "ручками".
Рекомендую. Помимо общих правил форума есть и дополнения к ним в каждом разделе...
Модератор

Последний раз редактировалось mihali4; 22.10.2010 в 21:37.
Asblue вне форума Ответить с цитированием
Старый 22.10.2010, 20:29   #2
DenTiSt
Пользователь
 
Регистрация: 08.04.2010
Сообщений: 19
По умолчанию

1.) Весь код вставляй между тегами CODE - нажми # в окне добавления сообщения (исправь первый пост).
2.) Напиши комментарии в коде, чтоб сразу было понятно, какие ты переменные для чего создаёшь и т.п.
3.) Конкретнее изложи проблему. Что тебе надо - скопировать строки из одной таблицы в другую, или при этом как-то их отсортировать?
Если просто скопировать, то вот код:
Код:
for i:=1 to 3 do
for j:=1 to 3 do
stringgrid2.Cells[i,j]:=stringgrid1.Cells[i,j];
Если же таблицу надо как-то отсортировать и полученном виде вывести в другую таблицу, то скажи, как сортировать.
4.) Слишком много мусора в коде. Зачем ты описываешь файл записей, если потом его не используешь? Самое начало модуля тоже указывать не нужно - оно не имеет значения. Зачем тебе нужны лишние операторные скобки и зачем ты лишний раз обнуляешь таблицу №2?
5.) Вообще с такой просьбой надо обращаться в раздел "Помощь студентам"...
DenTiSt вне форума Ответить с цитированием
Старый 22.10.2010, 22:09   #3
Asblue
Пользователь
 
Аватар для Asblue
 
Регистрация: 21.10.2010
Сообщений: 78
По умолчанию

Спасибо за объяснения и пояснения.
Впредь буду оформлять всё как следует

Сортировать ничего не надо. Просто нужно, чтоб программа работала так:
В StringGrid1 мы вводим какие-либо данные. Нажимаем на кнопку и эти данные переносятся в первую строку StringGrid2.
В StringGrid1 вводим новые данные, нажимаем на кнопку и они переносятся во 2-ю строку StringGrid2, следующие данные в 3-ю и т.д.

В моей программе все данные собираются только в одну строку
Asblue вне форума Ответить с цитированием
Старый 22.10.2010, 22:40   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Тогда по нажатию кнопки вам нужно делать 2 проверки:
1. Существует ли свободная строка в StringGrid2 и если нет, увеличить кол-во строк в StringGrid2.
2. Искать первую пустую строку в StringGrid2. Можно завести глобальную переменную - счетчик последней использованной строки в StringGrid2, думаю, это несколько облегчит поиск - не нужно будет просматривать с самой первой строки. По крайней мере, в текущем сеансе...

Последний раз редактировалось mihali4; 22.10.2010 в 23:11.
mihali4 вне форума Ответить с цитированием
Старый 22.10.2010, 23:08   #5
Asblue
Пользователь
 
Аватар для Asblue
 
Регистрация: 21.10.2010
Сообщений: 78
По умолчанию

спасибо, попробуем)
Asblue вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление строк в таблицу с вставкой в них текста и чередованием фона строк Centurion2xx6 Microsoft Office Word 9 30.03.2010 11:00
добавление записей в StringGrid в Delphi TaYgA Помощь студентам 0 23.01.2010 20:33
Добавление в StringGrid Andreyka Общие вопросы Delphi 5 20.01.2009 12:10
добавление данных в stringgrid artemavd Общие вопросы Delphi 5 01.11.2008 13:28
добавление строк StringGrid Alex_76 Помощь студентам 7 10.06.2008 15:17