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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2009, 09:30   #1
MyQwErTy
Пользователь
 
Аватар для MyQwErTy
 
Регистрация: 16.10.2008
Сообщений: 73
По умолчанию TStringGrid

очередной тупой вопрос:
мне надо сделать так, чтобы при нажатии на кнопку заносились данные в таблицу, рисовалась следующая строка и происходил переход на эту строку, но переход и рисование строки у меня не получается. Кто-нибудь знает как это делается?? Заранее спасибо

Последний раз редактировалось MyQwErTy; 26.02.2009 в 09:53.
MyQwErTy вне форума Ответить с цитированием
Старый 26.02.2009, 10:13   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Добавление новой строки и переход на нее.
Код:
StringGrid.RowCount:=StringGrid.RowCount+1;
StringGrid.Row:=StringGrid.RowCount-1
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.02.2009, 10:35   #3
MyQwErTy
Пользователь
 
Аватар для MyQwErTy
 
Регистрация: 16.10.2008
Сообщений: 73
По умолчанию

строка добавляется и переход тоже есть, но данные записываются только в первую строку
MyQwErTy вне форума Ответить с цитированием
Старый 26.02.2009, 10:38   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Наверное в цикле после каждой записи надо счетчик увеличивать, и прсваивать его значение номеру строки.
puporev вне форума Ответить с цитированием
Старый 26.02.2009, 11:22   #5
MyQwErTy
Пользователь
 
Аватар для MyQwErTy
 
Регистрация: 16.10.2008
Сообщений: 73
По умолчанию

Код:
procedure TForm2.Button1Click(Sender: TObject);
var i,x:integer;
finished:boolean;
key:integer;
begin
x:=1;
repeat
Form1.StringGrid1.Cells[0,x]:=Edit7.Text;
Form1.StringGrid1.Cells[1,x]:=Edit1.Text;
Form1.StringGrid1.Cells[2,x]:=Edit2.Text;
Form1.StringGrid1.Cells[3,x]:=Edit3.Text;
Form1.StringGrid1.Cells[4,x]:=Edit4.Text;
Form1.StringGrid1.Cells[5,x]:=Edit5.Text;
Form1.StringGrid1.Cells[6,x]:=Edit6.Text;
Form1.StringGrid1.Cells[7,x]:=IntToStr(StrToInt(Edit5.Text)*StrToInt(Edit6.Text));
Form1.StringGrid1.RowCount:=Form1.StringGrid1.RowCount+1;
Form1.StringGrid1.Row:=Form1.StringGrid1.RowCount-1;
inc(x);
if key=27 then finished:=true;
until finished=true;
end;
вот фрагмент программы, у меня есть две формы, первая содежит таблицу, а во второй форме происходит ввод данных в таблицу через Editы, исправьте, пожалуйста, мой код так, чтобы после нажатия клавиши данные заносились в таблицу и происходил переход на следующую строку
MyQwErTy вне форума Ответить с цитированием
Старый 26.02.2009, 12:08   #6
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Основная ошибка то, что x объявлен как локальная переменная. Кроме того надо бы чистить Эдиты. Вот пример кода, под Ваш, просто на всякий случай проверил, поэтому текст чуть другой.
Код:
var
  Form1: TForm1;
  x:integer=1;

implementation

{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);

begin
StringGrid1.Cells[0,x]:=Edit7.Text;
StringGrid1.Cells[1,x]:=Edit1.Text;
StringGrid1.Cells[2,x]:=Edit2.Text;
StringGrid1.Cells[3,x]:=Edit3.Text;
StringGrid1.Cells[4,x]:=Edit4.Text;
StringGrid1.Cells[5,x]:=Edit5.Text;
StringGrid1.Cells[6,x]:=Edit6.Text;
StringGrid1.Cells[7,x]:=IntToStr(StrToInt(Edit5.Text)*StrToInt(Edit6.Text));
StringGrid1.RowCount:=Form1.StringGrid1.RowCount+1;
StringGrid1.Row:=Form1.StringGrid1.RowCount-1;
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Edit6.Text:='';
Edit7.Text:='';
Edit1.SetFocus;
inc(x);
end;

Последний раз редактировалось puporev; 26.02.2009 в 12:17.
puporev вне форума Ответить с цитированием
Старый 26.02.2009, 12:42   #7
MyQwErTy
Пользователь
 
Аватар для MyQwErTy
 
Регистрация: 16.10.2008
Сообщений: 73
По умолчанию

спасибо, всё работает
MyQwErTy вне форума Ответить с цитированием
Старый 26.02.2009, 13:13   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я двух моментов не понял:
Во-первых что это за if key=27 then finished:=true; что за key?
Во-вторых а почему бы не сделать так:
Код:
StringGrid1.RowCount:=Form1.StringGrid1.RowCount+1;
StringGrid1.Cells[0,StringGrid1.RowCount-1]:=Edit7.Text;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TStringGrid anton14 Общие вопросы Delphi 7 10.10.2008 15:46
Кнопки в TStringGrid dimon000 Общие вопросы Delphi 4 29.07.2008 10:54
Поиск в TstringGrid Dim0n Компоненты Delphi 11 07.07.2008 08:34
TStringGrid Gromsky Компоненты Delphi 4 04.03.2008 23:41
TStringGrid mrandrey Компоненты Delphi 2 06.07.2007 15:24