Имам една таблица в Ексел с няколко редове и колони и искaм да я прехвърля в Delphi7. Слагам си във формата sgW: TStringGrid; и при кликване от изходната колона 1 трябва да сметне разликата в колона 2. Защо обаче добавя стойностите от последните 2 реда на 2-ра колона в първите 2 на 3-та? Как мога да направя такова смятане като в Ексел? Ето примерния код (PosW го попълвам в оригиналната програма, тук е само за пример константен):
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids;
type
TForm1 = class(TForm)
sgW: TStringGrid;
procedure sgWClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.sgWClick(Sender: TObject);
const
PosW: array[1..12] of double = (90.2943201302, 72.4248719439,68.8869342366,
45.2598466854,45.2598459837, 326.9552580449,165.9727037213,
356.5835481932,326.3341381295, 272.031738496, 325.9835619548,211.4549241651);
var
W: array[-1..12,-1..7] of double;
i,j: integer;
StrTest: string;
begin
// Clear array
for i := 1 to 12 do
for j := 1 to 7 do Begin
W[j,i] := 0.0;
Str(W[j,i]:3:9, StrTest);
sgW.Cells[j,i] := StrTest;
End;
for i := 1 to 12 do W[1,i] := PosW;
for i := 1 to 12 do W[2,i] := PosW - PosW[12];
for i := 1 to 12 do
for j := 1 to 7 do Begin
Str(W[j,i]:3:9, StrTest);
sgW.Cells[j,i] := StrTest;
End;
end;
end.
|