home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC Expert 29
/
Pce29cd.iso
/
RUNIMAGE
/
DELPHI40
/
DEMOS
/
TEECHART
/
UKEYBOA.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1998-06-16
|
3KB
|
104 lines
{*********************************************}
{ TeeChart Delphi Component Library }
{ Keyboard Scrolling Demo }
{ Copyright (c) 1996 by David Berneda }
{ All rights reserved }
{*********************************************}
unit Ukeyboa;
interface
uses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, Teengine, Series, ExtCtrls, Chart, StdCtrls, Buttons,
TeeProcs;
type
TKeyboardForm = class(TForm)
Chart1: TChart;
LineSeries1: TLineSeries;
Panel1: TPanel;
BitBtn1: TBitBtn;
InvertScroll: TCheckBox;
CheckLimits: TCheckBox;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure CheckLimitsClick(Sender: TObject);
procedure InvertScrollClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
implementation
{$R *.DFM}
procedure TKeyboardForm.FormCreate(Sender: TObject);
begin
LineSeries1.FillSampleValues(500);
AnimatedZoomFactor:=4;
end;
procedure TKeyboardForm.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
Var XDelta,YDelta,
XRange,YRange:Double;
begin
{ initialize some temporary variables... }
XDelta:=0;
YDelta:=0;
With LineSeries1.GetHorizAxis do XRange:=Maximum-Minimum;
With LineSeries1.GetVertAxis do YRange:=Maximum-Minimum;
{ handle keyboard !!! }
if ssShift in Shift then
begin
Case key of
VK_LEFT,VK_UP : Chart1.ZoomPercent( 110 );
VK_RIGHT,VK_DOWN : Chart1.ZoomPercent( 90 );
end;
exit;
end
else
Case key of
VK_LEFT : XDelta:=-XRange/100;
VK_RIGHT : XDelta:= XRange/100;
VK_UP : YDelta:= YRange/100;
VK_DOWN : YDelta:=-YRange/100;
vk_Next : YDelta:=-YRange/10;
vk_Prior : YDelta:= YRange/10;
VK_SPACE : Begin Chart1.UndoZoom; Exit; End; { <-- reset scrolling }
end;
{ just to make this example a little better... }
if not InvertScroll.Checked then
begin
XDelta:=-XDelta;
YDelta:=-YDelta;
end;
{ apply scrolling !!! }
With Chart1 do
Begin
LeftAxis.Scroll(YDelta,CheckLimits.Checked);
RightAxis.Scroll(YDelta,CheckLimits.Checked);
BottomAxis.Scroll(XDelta,CheckLimits.Checked);
TopAxis.Scroll(XDelta,CheckLimits.Checked);
SetFocus;
End;
end;
procedure TKeyboardForm.CheckLimitsClick(Sender: TObject);
begin
ShowMessage('Please zoom before scrolling.');
Chart1.SetFocus;
end;
procedure TKeyboardForm.InvertScrollClick(Sender: TObject);
begin
Chart1.SetFocus;
end;
end.