Показать сообщение отдельно
  #2  
Старый 06.06.2010, 13:53
Аватар для Kailon
Kailon Kailon вне форума
Активный
 
Регистрация: 06.06.2010
Сообщения: 340
Версия Delphi: 11.3
Репутация: 429
По умолчанию Может поможет...

Отвечаю на то, как ты понял
Кидай на форму StringGrid и в событии onKeyPress пиши
Код:
//запрещаем ненужные клавишы
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
 if not (Key in ['0'..'9', #8, ',']) then
  Key := #0;
end;
далее заполняем заголовки таблицы по созданию фомы
Код:
//заполняем заголовки таблицы
procedure TForm1.FormCreate(Sender: TObject);
const
 Plan = 'План продажи';
 Dohod = 'Доход';
var
 i, j: Byte;
begin
 for i := 1 to 6 do
  StringGrid1.Cells[0,i] := Plan +' №'+ IntToStr(i);
 for j := 1 to 4 do
  StringGrid1.Cells[j,0] := Dohod +' №'+ IntToStr(j);
 StringGrid1.Cells[5,0] := 'Сумма';
end;
ну и на последок самое главное - кидай кнопку и пиши
Код:
//основная процедура
procedure TForm1.Button1Click(Sender: TObject);
var
 i, j: Byte;
 Sum, MaxSum: Double;
 NumPlan: String;
begin
//находим сумму по каждой строке
 for j := 1 to 6 do //движение по строкам
 begin
  Sum := 0; //обнуляем сумму
  for i := 1 to 4 do //движение по столбцам
   Sum := Sum + StrToFloatDef(StringGrid1.Cells[i,j],0); //считаем сумму
  StringGrid1.Cells[5,j] := FloatToStr(Sum); //выводим получившуюся сумму
 end;
//находим максимальную сумму
 MaxSum := 0;
 for i := 1 to 6 do
 if StrToFloat(StringGrid1.Cells[5,i]) > MaxSum then
 begin
  MaxSum := StrToFloat(StringGrid1.Cells[5,i]);
  NumPlan := StringGrid1.Cells[0,i];
 end;
//выводим сообщение с результатом
 ShowMessage('Максимальная сумма = ' + FloatToStr(MaxSum) +#13#10 +
             'Оптимальный план - ' + NumPlan);
end;
и всех делов...
Результат на скрине
Ответить с цитированием