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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2012, 01:04   #1
Руслан555
Пользователь
 
Аватар для Руслан555
 
Регистрация: 13.12.2011
Сообщений: 11
По умолчанию Вывести суммы всех столбцов в нулевую строку

При нажатии Shift/F3 вывести суммы всех столбцов в нулевую строку.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, Menus;

type
arr=array of integer;
matr=array of arr;
  TForm1 = class(TForm)
    agrid: TStringGrid;
    sb1: TScrollBar;
    sb2: TScrollBar;
    Label1: TLabel;
    Label2: TLabel;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    Label3: TLabel;
    procedure frmt(g:TStringGrid);
    procedure FormCreate(Sender: TObject);
    procedure sb1Scroll(Sender: TObject; ScrollCode: TScrollCode;
      var ScrollPos: Integer);
    procedure sb2Scroll(Sender: TObject; ScrollCode: TScrollCode;
      var ScrollPos: Integer);
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure agridMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure agridKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;a,b:matr;n,m:integer;

implementation

{$R *.dfm}

 procedure TForm1.frmt(g:TStringGrid);
  begin with g do begin
  width:=(defaultcolwidth+2)*colcount+4;
  height:=(defaultrowheight+2)*rowcount+4
   end end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 frmt(agrid);
 randomize;
end;

procedure TForm1.sb1Scroll(Sender: TObject; ScrollCode: TScrollCode;
  var ScrollPos: Integer);
begin
  agrid.RowCount:=sb1.Position;
  frmt(agrid)
end;

procedure TForm1.sb2Scroll(Sender: TObject; ScrollCode: TScrollCode;
  var ScrollPos: Integer);
begin
  agrid.ColCount:=sb2.Position;
  frmt(agrid)
end;

procedure TForm1.N2Click(Sender: TObject);
begin
 halt
end;

procedure make(k1,k2:integer);
 var i,j:integer;
 begin n:=k1;m:=k2;
  setlength(a,n,m);
  for i:=0 to n-1 do
   for j:=0 to m-1 do
   a[i][j]:=random(101)- 50; end;

procedure copy(x:matr;var y:matr);
 var i,j:integer;
 begin setlength(y,n,m);
 for i:=0 to n-1 do
 for j:=0 to m-1 do
 y[i,j]:=x[i,j];
 end;



procedure showa(g:TStringGrid);
  var i,j:integer;
  begin with g do begin
    colcount:=m;
    rowcount:=n;
  for i:=0 to n-1 do
  for j:=0 to m-1 do
   cells[j,i]:=inttostr(a[i][j]) end;end;


procedure TForm1.N3Click(Sender: TObject);
begin
make(sb1.position,sb2.position);
showa(agrid);copy(a,b);
end;

procedure fill(r,t:integer);
var i:integer;
begin for i:=0 to m-1 do
a[r,i]:=t end;

procedure TForm1.agridMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
  var r,c,t:integer;G:TGridRect;
begin
 if button=mbLeft then
 begin r:=agrid.row; c:=agrid.Col;
   t:=strtoint(agrid.Cells[c,r]);
   fill(r,t);
   showa(agrid);
   with G do begin left:=0;right:=m;
   top:=r;bottom:=r end;
   agrid.Selection:=g  {Flag GoEditing must be set}
       end;
end;

procedure TForm1.agridKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (key =27) or (key= vk_f1) and(ssalt in shift) then
    begin copy(b,a);showa(agrid);end;
 end;

end.
Руслан555 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан двухмерный массив из 20 столбцов. Вставить в него столбец из чисел 10 после всех четных столбцов. Дмитрий142 Помощь студентам 9 07.06.2012 19:32
перестановка столбцов матрицы по убыванию их элементной суммы(Pascal ABS) КРИЖ Помощь студентам 0 27.05.2012 16:56
Вывести номера тех столбцов, сумма элементов которых меньше нуля, и число таких столбцов Half Помощь студентам 7 16.04.2012 21:23
Матрица A состоит из 8 строк и 6 столбцов. вычесть из всех её строк, начиная со второй, первую строку Dimak24 Помощь студентам 1 19.12.2008 15:45
Как вывести названия всех столбцов таблицы в PL/SQL D-mon БД в Delphi 6 25.06.2008 11:10