?? paintgrid.~pas
字號:
unit PaintGrid;
interface
uses
Windows, Messages, SysUtils, Classes, Controls, ExtCtrls,Graphics;
type
TPaintGrid = class(TPaintBox)
procedure Paint; override;
private
{ Private declarations }
iTime:integer;
strTime:string;
Values1: array[0..18] of integer;
Values2: array[0..18] of integer;
PValue1,PValue2:integer;
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy;override;
procedure PaintTime(Value1,Value2:integer); //畫指針
published
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents('Samples', [TPaintGrid]);
end;
constructor TPaintGrid.Create(AOwner: TComponent);
var
i:integer;
begin
inherited;
iTime := 0;
for i:= 0 to 18 do
begin
Values1[i]:= 82;
Values2[i]:= 149;
end;
PValue1 := 82;
PValue2 := 149;
end;
destructor TPaintGrid.Destroy;
begin
inherited Destroy;
end;
procedure TPaintGrid.Paint(); //重載Paint事件
var
i:integer;
begin
inherited;
//畫時間軸
Canvas.Pen.Color := clBlack;
Canvas.Pen.Width:=2;
Canvas.MoveTo(iTime*19+64,25);
Canvas.LineTo(iTime*19+64,148);
//畫時間
Canvas.Brush.Style:=bsclear;//不覆蓋背景色
Canvas.Font.Color := clwhite;
Canvas.TextOut(iTime*19+40,153,strTime);
//畫第一條值
//畫時間軸前面
Canvas.Pen.Color := clYellow;
Canvas.MoveTo(64,Values1[0]);
for i:=0 to iTime do
begin
Canvas.LineTo(i*19+64,Values1[i]);//);
end;
Canvas.MoveTo((iTime)*19+64,PValue1);
for i:= iTime+1 to 18 do
begin
Canvas.LineTo(i*19+64,Values1[i]);//);
end;
//畫第二條值
Canvas.Pen.Color := clOlive;
Canvas.MoveTo(64,Values2[0]);
for i:=0 to iTime do
begin
Canvas.LineTo(i*19+64,Values2[i]);//);
end;
Canvas.MoveTo((iTime)*19+64,PValue2);
for i:= iTime+1 to 18 do
begin
Canvas.LineTo(i*19+64,Values2[i]);//);
end;
end;
procedure TPaintGrid.PaintTime(Value1,Value2:integer); //畫指針
begin
PValue1 := Values1[iTime];
PValue2 := Values2[iTime];
//值換成坐標
Values1[iTime] := 82-Value1*2 div 9;
Values2[iTime] := 149-Value2*2 div 9;
strTime := FormatDateTime('HH:MM:SS',now());
refresh;
if (iTime<18) then
begin
inc(iTime);
end
else
begin
inc(iTime);
iTime := 0;
end;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -