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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

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

Есть 2 таблицы SG1 и SG2:
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.
В другом разделе по этому же вопросу мне написали:
"Слишком много мусора в коде. Зачем ты описываешь файл записей, если потом его не используешь? Самое начало модуля тоже указывать не нужно - оно не имеет значения. Зачем тебе нужны лишние операторные скобки и зачем ты лишний раз обнуляешь таблицу №2?"

Эммм... вот
Asblue вне форума Ответить с цитированием
Старый 22.10.2010, 22:20   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Чет типа:
Код:
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:=1 to StringGrid1.ColCount-1 do begin
   StringGrid2.RowCount:=StringGrid2.Rowcount+1;
   StringGrid2.Cells[j,StringGrid2.RowCount-1]:=StringGrid1.Cells[j,i];
 end;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.10.2010, 23:21   #3
Asblue
Пользователь
 
Аватар для Asblue
 
Регистрация: 21.10.2010
Сообщений: 78
По умолчанию

Stilet, спасибо
В общем да, работает, но только как-то криво всё добавляет:
в конец таблицы и данные первого столбца добавляются на 2 строки выше,чем во втором. Вот так:
dfcxcx.jpg
Asblue вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление строк в StringGrid Asblue Софт 4 22.10.2010 23:08
Добавление строк в таблицу с вставкой в них текста и чередованием фона строк Centurion2xx6 Microsoft Office Word 9 30.03.2010 11:00
Добавление в 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