
13.06.2013, 16:03
|
Новичок
|
|
Регистрация: 13.06.2013
Сообщения: 77
Версия Delphi: Delphi 7
Репутация: 10
|
|
Как исключить из подсчета FixedCols
Подскажите новичку, есть два массива, которые вводятся вручную StringGrid1 и обрабатываются данные с переносом в другой StringGrid2. Загвоздка в том что при подсчете получается что в расчет берутся также значения из FixedCols, а это мне не надо.
вот код
Код:
unit metrologiya;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Form1: TForm1;
SG1 : Array[1..6,1..6] Of real;
SG2 : Array[1..5] Of real;
i, j: integer;
s:real;
begin
For i:=1 To 6 Do
For j:=1 To 6 Do
If (StringGrid1.Cells[j-1,i-1]='') Then
SG1[i,j] := 0
Else
SG1[i,j] := StrToFloat(StringGrid1.Cells[j-1,i-1]);
For i:=1 To 6 Do
Begin
S:=0;
for j:=1 to 6 do begin
S:=s+SG1[i,j];
end;
SG2[i]:=S/5;
End;
For i:=1 To 5 Do
StringGrid2.Cells[0,i-1] := FloatToStr(SG2[i])
end;
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
case Key of
#8,'0'..'9' : ;
#13:
if StringGrid1.Col < StringGrid1.ColCount - 1
then StringGrid1.Col := StringGrid1.Col + 1;
'.',',':
begin
if Key <> DecimalSeparator then
Key := DecimalSeparator;
if Pos(StringGrid1.Cells[StringGrid1.Col,0],DecimalSeparator) <> 0
then Key := Chr(0);
end;
'-':
if Length(StringGrid1.Cells[StringGrid1.Col,0]) <> 0
then Key := Chr(0);
else
key := Chr(0);
end;
end;
procedure TForm1.FormCreate(Sender: TObject); //тут описываются строки, вот эти значения 125,625,1250,1875,2375 и плюсуются к вводимым значениям
begin
with StringGrid1 do begin
FixedCols:=1;FixedRows:=0;
//ColCount:=5;
Cells[0,0]:='125';
Cells[0,1]:='625';
Cells[0,2]:='1250';
Cells[0,3]:='1875';
Cells[0,4]:='2375';
end;
end;
end.
|