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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.05.2007, 15:11   #1
Инна
 
Регистрация: 15.04.2007
Сообщений: 9
Печаль Заполнение StringGrid из Edit

Привет! Нужно чтобы при нажатии кнопки в ячейки турнирной таблицы вводились результаты из двух Editов через двоеточие. Не получается. Вот код
procedure TForm1.Button1Click(Sender: TObject);
var
sg:TStringGrid;
i:integer;
begin
for i:=1 to sg.ColCount-1 do
begin
sg.Cells[i,1]:=Edit1.text;
sg.Cells[i,1]:=':';
sg.Cells[i,1]:=Edit2.Text;
end;
begin
sg.Cells[i,2]:=Edit1.text;
sg.Cells[i,2]:=':';
sg.Cells[i,2]:=Edit2.Text;
end;
begin
sg.Cells[i,3]:=Edit1.text;
sg.Cells[i,3]:=':';
sg.Cells[i,3]:=Edit2.Text;
end;
begin
sg.Cells[i,4]:=Edit1.text;
sg.Cells[i,4]:=':';
sg.Cells[i,4]:=Edit2.Text;
end;
end;
Ребята, подскажите пожалуйста, что не так(((((
Инна вне форума Ответить с цитированием
Старый 01.05.2007, 15:54   #2
Egych
Пользователь
 
Аватар для Egych
 
Регистрация: 10.02.2007
Сообщений: 13
По умолчанию

Зачем ты после первого столбца закрываешь цикл? Если у тебя 1 цикл, то просто убери все begin и end, кроме открывающего цикл и закрывающего его
Egych вне форума Ответить с цитированием
Старый 01.05.2007, 17:10   #3
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

На счёт цикла - это раз
Но ещё и косяк с присваиванием!!!
Вы присваиваете сначало одно, потом второе, потом третье - в итоге остаётся только третье (Edit2.text)!

Вот готовое:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  sg:TStringGrid;
  i:integer;
begin
for i:=1 to sg.ColCount-1 do
 begin
 sg.Cells[i,1]:=Edit1.text+':'+Edit2.Text;
 sg.Cells[i,2]:=Edit1.text+':'+Edit2.Text;
 sg.Cells[i,3]:=Edit1.text+':'+Edit2.Text;
 sg.Cells[i,4]:=Edit1.text+':'+Edit2.Text;
 end;
end;
P.S.: не люблю большой код, всё намного проще, красивее и понятнее.

Последний раз редактировалось zetrix; 01.05.2007 в 17:13.
zetrix вне форума Ответить с цитированием
Старый 01.05.2007, 19:51   #4
Инна
 
Регистрация: 15.04.2007
Сообщений: 9
По умолчанию :)

Спасибо огромное Мне стыдно за моё невежество Я Делфи занимаюсь меньше месяца
Инна вне форума Ответить с цитированием
Старый 01.05.2007, 20:12   #5
Инна
 
Регистрация: 15.04.2007
Сообщений: 9
По умолчанию (

Ребят, ну всё равно ошибку выдаёт...вот код....


unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
StringGrid1: TStringGrid;
procedure StringGrid1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Edit2Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.StringGrid1Click(Sender: TObject);
var
sg:TStringGrid;
begin
sg.RowCount:=5;
sg.ColCount:=5;
begin
sg.Cells[0,0]:='Êîìàíäû';
sg.Cells[0,1]:='Ñïàðòàê';
sg.Cells[0,2]:='Äèíàìî';
sg.Cells[0,3]:='Ìåòàëëóðã';
sg.Cells[0,4]:='Øèííèê';
sg.Cells[1,0]:='Øèííèê';
sg.Cells[2,0]:='Ìåòàëëóðã';
sg.Cells[3,0]:='Ñïàðòàê';
sg.Cells[4,0]:='Äèíàìî';
end;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
sg:TStringGrid;
i:integer;
begin
for i:=1 to sg.ColCount-1 do
begin
sg.Cells[i,1]:=Edit1.Text+':'+Edit2.Text;

sg.Cells[i,2]:=Edit1.Text+':'+Edit2.Text;

sg.Cells[i,3]:=Edit1.Text+':'+Edit2.Text;

sg.Cells[i,4]:=Edit1.Text+':'+Edit2.Text;

end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
if Length(Edit1.Text)=0 then Button1.Enabled:=False
else Button1.Enabled:=True;
end;
procedure TForm1.Edit2Change(Sender: TObject);
begin
if Length(Edit2.Text)=0 then Button1.Enabled:=False
else Button1.Enabled:=True;
end;
end.
Инна вне форума Ответить с цитированием
Старый 01.05.2007, 20:26   #6
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
Злость


1*) Смотрите свой код!!!
Код:
procedure TForm1.StringGrid1Click(Sender: TObject);
var
sg:TStringGrid;
begin
sg.RowCount:=5;
sg.ColCount:=5;
begin
sg.Cells[0,0]:='Êîìàíäû';
sg.Cells[0,1]:='Ñïàðòàê';
sg.Cells[0,2]:='Äèíàìî';
sg.Cells[0,3]:='Ìåòàëëóðã';
sg.Cells[0,4]:='Øèííèê';
sg.Cells[1,0]:='Øèííèê';
sg.Cells[2,0]:='Ìåòàëëóðã';
sg.Cells[3,0]:='Ñïàðòàê';
sg.Cells[4,0]:='Äèíàìî';
end;
end;
выделенные строчки - удалить, они лишние
2*) но вот главное:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
sg:TStringGrid;
i:integer;
begin
for i:=1 to sg.ColCount-1 do
begin
sg.Cells[i,1]:=Edit1.Text+':'+Edit2.Text;
sg.Cells[i,2]:=Edit1.Text+':'+Edit2.Text;
sg.Cells[i,3]:=Edit1.Text+':'+Edit2.Text;
sg.Cells[i,4]:=Edit1.Text+':'+Edit2.Text;
end;
end;
куда один end пропал??? Добавьте то, что написано красным!

Почитайте литературу (см. подпись), т.к. Ваш код (см. 1*) показывает полное непонимание.
zetrix вне форума Ответить с цитированием
Старый 02.05.2007, 19:50   #7
Инна
 
Регистрация: 15.04.2007
Сообщений: 9
Печаль (((

Не надо на меня злиться....Я только пытаюсь что-то сделать...
Спасибо Вам конечно огромное, но программа ВСЁ РАВНО не работает....Я уже не знаю почему...И дело уже не в недостающем end'е....Я всё сделала так, как вы написали. Тормозит ровно на строке sg.Cells[i,1]:=.....

Последний раз редактировалось Инна; 02.05.2007 в 20:03.
Инна вне форума Ответить с цитированием
Старый 03.05.2007, 10:53   #8
Killer_djon
Форумчанин
 
Регистрация: 26.04.2007
Сообщений: 143
По умолчанию

procedure TForm1.Button1Click(Sender: TObject);
var
//sg:TStringGrid;
i, j:integer;
begin
for i:=1 to stringgrid1.ColCount-1 do
for j:=1 to 4 do
begin
stringgrid1.Cells[i,j]:=Edit1.Text+':'+Edit2.Text;
stringgrid1.Cells[i,j]:=Edit1.Text+':'+Edit2.Text;
stringgrid1.Cells[i,j]:=Edit1.Text+':'+Edit2.Text;
stringgrid1.Cells[i,j]:=Edit1.Text+':'+Edit2.Text;
end;
end;

В данном случае выдает ошибку объевление класса TStringGrid, а вот почему оно выдает эту ошибку я не розбирался, ну вообщем можешь кидать данный обработчик события OnClick своей кнопки и будет работать
Свободу клавиатурным самураям...
Killer_djon вне форума Ответить с цитированием
Старый 03.05.2007, 11:00   #9
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

Интересная фишка получается. Ни в одном из предыдущих примеров, где объявлялась переменная sg: TStringGrid не было ее создания. Как же с ней тогда можно работать? Компонент StringGrid1 есть на форме, она сама его создаст, об этом заботиться не надо, а об остальном надо.
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Старый 03.05.2007, 11:07   #10
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Хм... точно. А Вам не самом деле компонент StringGrid надо создать динамически? Может проще на форму положить зараннее?
zetrix вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Edit vs StringGrid artemavd Общие вопросы Delphi 3 13.07.2008 11:56
Edit мы StringGrid artemavd Общие вопросы Delphi 0 12.07.2008 13:50
Заполнение GataGridView из .txt (C#) Munky Общие вопросы .NET 0 03.05.2008 21:55
Вывод столбцов StringGrid в Edit ***СкаЙ*** Помощь студентам 1 04.05.2007 08:16