![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Помогите пожалуйста!!!!Решил, изучая Delphi, написать программу для подсчёта очков в чемпионате по футболу. Немогу сделать так, чтобы очки суммировались в соответствующей ячейке, после ввода результатов сыгранных матчей. В качестве таблиц используется StringGrid. Размещены на двух формах. После ввода результата в первой таблице выводится таблица с количеством очков. Но баллы не суммируются, после ввода следующих результатов. Думаю у знающих людей не займёт много времени, объясните в двух словах, как можно решить мою проблему. Пожалуйста помогите чайнику если надо могу выложить то, что удалось создать.
|
|
#2
|
||||
|
||||
|
Я бы такое реализовывал в виде базы данных.
Выложите код глянем. |
|
#3
|
|||
|
|||
|
А код в общем-то простой. Пока всё на что меня хватило. Здесь пока взял 4 команды добавить больше проблем нет. Как и осуществить подсчёт забитых и пропущенных мячей. Главное не придумаю как осуществить суммирование очков после каждого ввода результатов. Ничего не выходит.
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;
type
TForm1 = class(TForm)
tabl: TStringGrid;
Button1: TButton;
procedure FormActive(Sender:TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses Unit2;
procedure TForm1.FormActive(Sender:TObject);
begin
tabl.Cells[0,3]:='Спартак';
tabl.Cells[0,2]:='Рубин';
tabl.Cells[0,1]:='Зенит;
tabl.Cells[0,4]:='Динамо';
tabl.Cells[1,0]:='Очки';
tabl.Cells[2,0]:='Игры';
tabl.Cells[3,0]:='Победы';
tabl.Cells[4,0]:='Ничьи';
tabl.Cells[5,0]:='Поражения';
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.Show;
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm2 = class(TForm)
StringGrid1: TStringGrid;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
uses unit1;
procedure TForm2.Button2Click(Sender: TObject);
var
s,i,l,j: integer;
begin
for j:=1 to 2 do
begin
s:=0;
l:=0;
if StrToInt(StringGrid1.Cells[1,j])>StrToInt(StringGrid1.Cells[2,j])
then s:=s+3
else if StrToInt(StringGrid1.Cells[1,j])<StrToInt(StringGrid1.Cells[2,j])
then l:=l+3
else begin s:=s+1;
l:=l+1;
end;
for i:=1 to 4 do
begin
if Form1.tabl.Cells[0,i]=StringGrid1.Cells[0,j]
then Form1.tabl.Cells[1,i]:=IntToStr(s);
end;
for i:=1 to 4 do
begin
if Form1.tabl.Cells[0,i]=StringGrid1.Cells[3,j]
then Form1.tabl.Cells[1,i]:=IntToStr(l);
end;
end;
Form1.Show;
end;
end.Admin: Пользуемся тегами для оформления кода, иначе последуют санкции! Посоветуйте хоть что-нибудь. Если посредством базы данных, то был бы много благодарен, если бы обрисовали это в двух словах. Заранее спасибо. Последний раз редактировалось Admin, 04.05.2008 в 20:35. |
|
#4
|
|||
|
|||
|
Интересная задумка, брат Димка. Рад бы помочь, а вот в таблицах чемпионата не разбираюсь.
Ты бы дал вид таких таблиц. Или ссылку на то как они должны выглядеть (ну не дал мне бог интереса футбольного). А вообще то работа с таблицами не самое простое дело в программировании. Но если будет пример вида чемпионатских таблиц, то мы с тобой смастерим такое, что все рядом стоящие будут лежать (не от смеха - от восхищения ). |
|
#5
|
||||
|
||||
|
Цитата:
Ага. Я тож не футболист... ![]() С первой таблицей все понятно, а куда и что во вторую вводить не очевидно. И что в итоге должно получаться. Цитата:
А если делать базу данных то для этой задачи проще всего ИМХО использовать Access и соответственно ADO компоненты. Описать что и как делать не смогу пока не пойму всю суть задачи. |
|
#6
|
|||
|
|||
|
Суть задачи состоит в следующем: имеется таблица с перечнем команд и количеством набранных ими очков, сыгранных ими игр, поражений, побед, ничьих, забитых и пропущенных мячей. Имеется другая таблица, куда вводятся результаты сыгранных матчей. В зависимости от результатов игр команде начисляются очки: победа-3, ничья -1, поражение -0. Всё это заносится в первую таблицу и сортируется в зависимости от количества очков. Вот, в общем – то и всё. С переменной у меня что-то не выходит, так как она обнуляется в самом начале процедуры каждый раз.
|
|
#7
|
|||
|
|||
|
Сделай эту переменную не локальной (внутри функции), а глобльной по отношению к модулю, обнуляться не будет.
|
|
#8
|
|||
|
|||
|
Для себя такую фигню я реализовал, всю информацию храню в базе (Firebird), в проге используюся компоненты FIBPlus и Ehlib.
если нужно оставь координаты, все вышлю, объясню. |
|
#9
|
|||
|
|||
|
Буду благодарен если всё вышлите на damiller@pochta.ru. Но свою версию обязательно доведу до конца. Что получится обязательно поделюсь кому инетересно. Спасибо!!!
|
|
#10
|
|||
|
|||
|
Не пойму, в чем загвоздка...
Можно вобще без переменных обойтись, работать напрямую со значеничями первой таблицы. и по свойству OnChange просчитывать вторую... Главное знать формулы подсчетов, которые весьма простые |