Thema: Delphi StringGrid ausrechnen??

Einzelnen Beitrag anzeigen

MondoShiva

Registriert seit: 14. Aug 2007
Ort: Mönchengladbach
63 Beiträge
 
Delphi XE2 Professional
 
#3

Re: StringGrid ausrechnen??

  Alt 23. Aug 2007, 11:13
wollte nur einmal posten wie es nun aussieht! porblem gelöst

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Panel: TPanel;
    Open: TButton;
    save: TButton;
    calculate: TButton;
    StringGrid: TStringGrid;
    OpenDialog: TOpenDialog;
    SaveDialog: TSaveDialog;
    Transport: TButton;
    Button: TButton;
    procedure OpenClick(Sender: TObject);
    procedure TransportClick(Sender: TObject);
    procedure ButtonClick(Sender: TObject);
    procedure StringGridDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure FormShow(Sender: TObject);
  private
    ergebnis: real;
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.OpenClick(Sender: TObject);
begin
    opendialog.Execute;
// RichEdit.Lines.LoadFromFile(opendialog.FileName);
// opendialog.Execute;
// richedit.linies.
// stringGrid.Cells[1,1] := 'fdggjkfdgjkg';//.LoadFromFile(opendialog.FileName);

end;

procedure TForm1.TransportClick(Sender: TObject);
var
  f: textfile;
  Spalte1,spalte2: String;
  i, count: Integer;
  delimiter: char;
  mylist : tstringlist;
begin
  opendialog.Execute;
  mylist := TStringList.Create;
  mylist.LoadFromFile(Opendialog.FileName);
  mylist.Delimiter := #9;
  mylist.DelimitedText := mylist.Text;
  count := 0;
  i:=0;

// if mylist.Strings[count] = 'minus' then ;
// mylist.strings[count+3]:= inttostr(strtoint(mylist.Strings[count+1])-strtoint(mylist.Strings[count+2]));
  ergebnis:=0;

  while count < mylist.Count do
  begin
     stringgrid.Cells[1,i+1] := mylist.Strings[count];
     stringgrid.Cells[2,i+1] := mylist.Strings[count+1];
     stringgrid.Cells[3,i+1] := mylist.Strings[count+2];
     if mylist.Strings[count] = 'minusthen
        stringgrid.Cells[4,i+1] := inttostr(strtoint(mylist.Strings[count+1]) - strtoint(mylist.Strings[count+2]));
     if mylist.Strings[count] = 'summethen
        stringgrid.Cells[4,i+1] := inttostr(strtoint(mylist.Strings[count+1]) + strtoint(mylist.Strings[count+2]));
     if mylist.Strings[count] = 'malthen
        stringgrid.Cells[4,i+1] := inttostr(strtoint(mylist.Strings[count+1]) * strtoint(mylist.Strings[count+2]));
     if mylist.Strings[count] = 'teilenthen
        stringgrid.Cells[4,i+1] := floattostr(strtoint(mylist.Strings[count+1]) / strtoint(mylist.Strings[count+2]));
     ergebnis:= ergebnis + strtofloat(stringgrid.Cells[4,i+1]);
     count := count + 3;
     inc(i);
        //stringgrid.Cells[5, 13] := floattostr(strtoint(mylist.Strings[count+1]) + strtoint(mylist.Strings[count+2]));
  end;

end;

procedure TForm1.ButtonClick(Sender: TObject);
begin
  stringgrid.Cells[4,14] := floattostr(ergebnis);
  Stringgrid.Cells[4,13] := 'Ergebnis';
end;

procedure TForm1.StringGridDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  keineahnung: integer;
begin
   if (ACol=4) and (StringGrid.Cells[ACol,ARow] <> '') then
   begin
     StringGrid.Canvas.Brush.Color := clYellow;
     if (ACol=4) and ((ARow = 13) or (ARow = 14)) then
       StringGrid.Canvas.Brush.Color := clRed;
   end;
   if (Stringgrid.Cells[acol,arow] <> '') and (TryStrToInt(StringGrid.Cells[ACol,ARow],keineahnung)) then
   begin
     if not (ACol=4) then
     begin
       if strtoint(Stringgrid.Cells[acol,arow]) <20 then
          StringGrid.Canvas.Brush.Color := clGreen;
       if strtoint(Stringgrid.Cells[acol,arow]) >20 then
          StringGrid.Canvas.Brush.Color := clBlue;
       if strtoint(Stringgrid.Cells[acol,arow]) <10 then
          StringGrid.Canvas.Brush.Color := clPurple;
     end;
// if StrToBool(Stringgrid.Cells[acol,arow])=(StringGrid.Cells[ACol,ARow] <> '') then
// StringGrid.Canvas.Brush.Color := clYellow;
   end;
   if (ACol > 0) and (ARow > 0) then
   begin
      StringGrid.Canvas.FillRect(Rect);
      StringGrid.Canvas.TextOut(Rect.Left, Rect.Top, StringGrid.Cells[ACol,ARow]);
   end;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
// StringGrid.Cells[4,10] := 'text';
end;

end.
  Mit Zitat antworten Zitat