SpeedButton3.Enabled:=true;
SpeedButton4.Caption:='Запуск';
StartLoad.Caption:='Запуск';
Timer1.Enabled:=false;
Pause.Enabled:=false;
SpeedButton5.Enabled:=false;
//Stop;
end;
end
else
begin
ScrollBar1.Enabled:=false;
procedure TForm1.ClearClick(Sender: TObject);
form1.ItemNewClick(self);
procedure TForm1.Start;
var
n:TPoint;
new(n);
n^:=Random(255);
GraphicDiagram1.AddValue(n);
ChangeTable(n^);
procedure TForm1.LinesClick(Sender: TObject);
if not(Lines.Checked)then
GraphicDiagram1.TypeDiagram:=tdLine;
Lines.Checked:=true;
Pilar.Checked:=false;
end else
GraphicDiagram1.TypeDiagram:=tdColumn;
Lines.Checked:=false;
Pilar.Checked:=true;
procedure TForm1.FormCreate(Sender: TObject);
inherited;
randomize;
Form1.Pause.Enabled:=false;
Form1.SpeedButton5.Enabled:=false;
Edit1.Text:='0';
// SaveDialog1.Create(self);
procedure TForm1.SavePictureClick(Sender: TObject);
k:integer;
t:String;
if SavePictureDialog1.Execute then
t:=SavePictureDialog1.FileName;
repaint;
k:=GraphicDiagram1.SavePicture(t);
if k=0 then MessageDlg('Помилка при записі файла '+t,mtError,[mbOk],0);
procedure TForm1.GeneratorClick(Sender: TObject);
if not(Generator.Checked) then
Generator.Checked:=true;
COMport.Checked:=false;
LPTport.Checked:=false;
procedure TForm1.LPTportClick(Sender: TObject);
if not(LPTport.Checked)then
Generator.Checked:=false;
LPTport.Checked:=true;
procedure TForm1.COMportClick(Sender: TObject);
if not(COMport.Checked)then
COMport.Checked:=true;
procedure TForm1.ScrollBar1Scroll(Sender: TObject; ScrollCode: TScrollCode;
var ScrollPos: Integer);
if ScrollCode=scEndScroll then
if (ScrollPos<>0) and (ScrollPos<>GraphicDiagram1.GetPointsCount) then
GraphicDiagram1.DrawStart:=ScrollPos-1;
GraphicDiagram1.Invalidate;
else if ScrollPos=0 then
GraphicDiagram1.DrawStart:=0;
procedure TForm1.N2Click(Sender: TObject);
Form3.Showmodal;
procedure TForm1.N3Click(Sender: TObject);
//form2.Show;
procedure TForm1.N4Click(Sender: TObject);
form3.Show;
procedure TForm1.N6Click(Sender: TObject);
// form4.show;
procedure TForm1.AboutClick(Sender: TObject);
aboutbox.showmodal;
procedure TForm1.newGraphicExecute(Sender: TObject);
procedure TForm1.ExitPrExecute(Sender: TObject);
close;
procedure TForm1.StartGrExecute(Sender: TObject);
Fileitem.Enabled:=false;
// Interpolation.Enabled:=false;
Options.Enabled:=false;
SpeedButton1.Enabled:=false;
SpeedButton2.Enabled:=false;
SpeedButton3.Enabled:=false;
Timer1.Interval:=GraphicDiagram1.NumMiliSec;
Timer1.Enabled:=True;
Pause.Enabled:=true;
SpeedButton5.Enabled:=true;
procedure TForm1.StopGrExecute(Sender: TObject);
if GraphicDiagram1.GetPointsCount>GraphicDiagram1.DrawCount then
ScrollBar1.Enabled:=true;
ScrollBar1.SetParams(GraphicDiagram1.GetPointsCount,0,GraphicDiagram1.GetPointsCount);
Fileitem.Enabled:=true;
// Interpolation.Enabled:=true;
Options.Enabled:=true;
SpeedButton1.Enabled:=true;
SpeedButton2.Enabled:=true;
procedure TForm1.SaveGraphExecute(Sender: TObject);
SavePictureClick(Sender);
procedure TForm1.saveDataGrExecute(Sender: TObject);
if SaveDialog1.Execute then
GraphicDiagram1.SaveData(SaveDialog1.FileName);
procedure TForm1.HelpPrExecute(Sender: TObject);
aboutBox.ShowModal;
procedure TForm1.LoadDataGRExecute(Sender: TObject);
if openDialog1.Execute then
if fileExists (openDialog1.FileName) then
GraphicDiagram1.LoadData(openDialog1.FileName)
else messageDlg('Немає такого файлу!!',mtError,[mbOk],0);
procedure TForm1.BitBtn1Click(Sender: TObject);
try
GraphicDiagram1.NumMiliSec:=StrToInt(Edit16.Text);
except MessageDlg('Число повинне бути цілим та додатнім!!!',mtError,[mbOk],0); end
procedure TForm1.GeneratorOptionClick(Sender: TObject);
Form4.showmodal;
end.
Текст компонента GraphicDiagram
unit GraphicDiagram;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
const WM_MYMessage = WM_USER+1000;
const MAX_COUNT = 10000;
type
TTypeDiagram = (tdLine,tdColumn,tdUser);
TPoint = ^Longint;
TPointArray = TList;
TCount = 0..MAX_COUNT;
TnewMouseMoveEvent = procedure (Sender:TObject;Shift:TShiftState;x,y:integer;
var DoDefault:boolean) of Object;
TGraphicDiagram = class(TGraphicControl)
private
FTypeDiagram:TTypeDiagram;
FpointStart:Longint;//початок відображення точок на графіку
FPointDrawCount:Longint; //Кінець відображення точок на графіку
FNumSeccond,FNumMSeccond:word; // кількість мілісекунд, після яких добавляється точка
FPointYMax:Longint; //максимальна точка по Ігрик
FDrawX:Boolean;
FDrawY:Boolean;
FDRAWColor:TColor;
FDrawGridX:Boolean;
FDrawGridY:Boolean;
FDrawGridColor:TColor;
FPointsValue:TPointArray; // тільки додатні елементи
FDataStart,FDataStop:TDateTime;//початок відображення точок на графіку
FEnabled:Boolean;
FOnMouseMove:TnewMouseMoveEvent;
OurTime:longint;
MashtabX:real;
MashtabY:real;
FMashTab:Boolean; //маштаб якщо він змінився то true
// function GetValue(index:Longint): Longint; //читає точку
Procedure SetValue(index,value:Longint); //добавляє точку
procedure SetTypeDiagram(typeD:TTypeDiagram);
procedure SetMashtabX;
procedure SetMashtabY;
protected
procedure paint;override;
procedure WritePoints(stream:TStream);virtual;
procedure ReadPoints(stream:TStream);virtual;
procedure DefineProperties(Filer:TFiler);override;
procedure WMMouseMove(var Mes:TWMMouse); message WM_MOUSEMOVE;
Страницы: 1, 2, 3, 4, 5, 6, 7, 8