Новые сообщения · Правила  
  • Страница 1 из 1
  • 1
Модератор форума: Berestovskiy  
Нужна помощь в коррекции программы
Доброго времени суток, нужна помощь в коррекции программы. Есть программа, она открывает данные с txt файла где 6 станций с 3мя столбиками значений на каждую, нужно скорректировать, чтоб данные считывались с excel файла в котором 6 станций и на каждую только по 1 столбику значений (упростил, убрав лишние) и сразу, по открытию файла с данными, строить график (данные зависящие от времени) по 6-ти станциям, а при открытии выпадающего меню, должно строить отдельно один график по выбранному названию станции, в новой форме, по названию станции. Программу и данные вышлю на почту или куда скажете, ато тут не знаю как прикрепить. Кто может помочь? Сам самоучка и недавно начал учиться программировать в Delphi.

Код
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Dialogs, StdCtrls,
  Controls, ExtCtrls, TeeProcs, TeEngine, Chart,Graphics,
  Forms, Series, Menus, OleServer, ExcelXP;

type
  TMassSeries = array of TLineSeries;

  TDataXY = record
    X,Y : Extended;
  end;

  TForm1 = class(TForm)
    Chart1: TChart;
    Memo1: TMemo;
    Button2: TButton;
    Button3: TButton;
    OpenDialog1: TOpenDialog;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    SaveDialog1: TSaveDialog;
    N5: TMenuItem;
    Noise1: TMenuItem;
    JNX164001: TMenuItem;
    GBZ195801: TMenuItem;
    ICV202701: TMenuItem;
    HWU217501: TMenuItem;
    DHO38234001: TMenuItem;
    Button8: TButton;
    Chart2: TMenuItem;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ButtonAllClick(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure Chart2Click(Sender: TObject);

  private
    { Private declarations }
    FFileBaseData : TStringList;
    FMassSeries: TMassSeries;
  public
    { Public declarations }
    function OutFloatData(AStr: string; NumPos : integer =0): TDataXY;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ButtonAllClick(Sender: TObject);
var i:Integer;  ExtXY: TDataXY;
begin
 for I := 1 to FFileBaseData.Count - 1 do
  begin
   ExtXY:=OutFloatData(FFileBaseData.Strings[i],(Sender as TButton).Tag);
   FMassSeries[(Sender as TButton).Tag].AddXY(ExtXY.X, ExtXY.Y);
  end;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var i:Integer;
begin
 for I := 0 to High(FMassSeries) do
 FreeAndNil(FMassSeries);
 FreeAndNil(FFileBaseData);
end;

function TForm1.OutFloatData(AStr: string; NumPos: integer): TDataXY;
var aSL: TStringList; sx, sy: string;
begin
 aSL:= TStringList.Create;
 aSL.DelimitedText:=AStr;
 sx:=aSL.Strings[2 + 3 * NumPos];
 sx[Pos('.',sx)]:=decimalseparator;
 sy:=aSL.Strings[3 + 3 * NumPos];
 sy[Pos('.',sy)]:=decimalseparator;
 Result.X:=StrToFloat(SX);
 Result.Y:=StrToFloat(SY);
 FreeAndNil(aSL);
end;

procedure TForm1.N2Click(Sender: TObject);
 var i: Integer;
begin
SetLength(FMassSeries, 6);

for I := 0 to High(FMassSeries) do
begin
FMassSeries:= TLineSeries.Create(self);
Chart1.AddSeries(FMassSeries);
end;
 if OpenDialog1.Execute then
 begin
  FFileBaseData:=TStringList.Create;
  FFileBaseData.LoadFromFile(OpenDialog1.FileName);
  Memo1.Lines:=FFileBaseData;
  Button2.Enabled:=True;
  Button3.Enabled:=True;
  Button4.Enabled:=True;
  Button5.Enabled:=True;
  Button6.Enabled:=True;
  Button7.Enabled:=True;
 end else
 MessageBox(Application.Handle, 'файл не загружен.', '', MB_OK);
end;

procedure TForm1.N4Click(Sender: TObject);
begin
close;
end;

procedure TForm1.N3Click(Sender: TObject);
begin
 if savedialog1.Execute then begin
    Memo1.Lines.SaveToFile(savedialog1.FileName);
end;
end;

procedure TForm1.Chart2Click(Sender: TObject);
begin
Chart1.SeriesList[0].Clear;
Chart1.SeriesList[1].Clear;
Chart1.SeriesList[2].Clear;
Chart1.SeriesList[3].Clear;
Chart1.SeriesList[4].Clear;
Chart1.SeriesList[5].Clear;
end;

end.[/i]
1 | Автор: skorp | 2018-10-30, 11:16   |  Репутация: [ + 0 ]
  • Страница 1 из 1
  • 1
Поиск: