[Lazarus] TStringGrid and array

Kamen Ketev kamenlist at abv.bg
Wed Feb 6 15:23:07 CET 2013


 
Hi, 
I have a table in Excel with several rows and columns I want to transfer to Lazarus. I put in the form sgW: TStringGrid; when I am clicking on column 1 must be calculated in column 2. But why add the values ​​of the last two rows of the second column in the first 2 rows of the 3rd? How can I do this calculations like in Excel? Here's sample code (PosW is var in the original program, here is an example constant):
 
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Grids;

type

  { TForm1 }

  TForm1 = class(TForm)
    sgW: TStringGrid;
    procedure sgWClick(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;


implementation

{$R *.lfm}


{ TForm1 }

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 11 do Begin
    W[1,i] := PosW[i];
    W[2,i] := PosW[i] - PosW[12];
  End;
  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.           
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus/attachments/20130206/ed770212/attachment-0002.html>


More information about the Lazarus mailing list