| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440 |
- unit umain;
- {$mode objfpc}{$H+}
- interface
- uses
- Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls, ExtCtrls, StdCtrls, Spin, EditBtn,
- ColorBox, BGRAFlashProgressBar, BCTrackbarUpdown, BGRASpeedButton, ColorSpeedButton, BGRABitmap, BGRABitmapTypes;
- type
- { TForm1 }
- TForm1 = class(TForm)
- btBackgroundColor: TColorSpeedButton;
- btFontColor: TColorSpeedButton;
- btBarColorM: TColorSpeedButton;
- btGraphAddValue: TBGRASpeedButton;
- btGraphTest: TBGRASpeedButton;
- btTimerPlayPause: TBGRASpeedButton;
- btTimerPlayPause1: TBGRASpeedButton;
- btTimerPlayPause2: TBGRASpeedButton;
- btTimerStart: TBGRASpeedButton;
- cbCaptionPercent: TCheckBox;
- cbBackgroundRandom: TCheckBox;
- cbCaptionPercent1: TCheckBox;
- cbCaptionPercentM: TCheckBox;
- cbShowDividers: TCheckBox;
- cbShowDividersY: TCheckBox;
- cbShowYLine: TCheckBox;
- cbTimerAutoStart: TCheckBox;
- cbTimerAutoStart1: TCheckBox;
- cbRandG: TCheckBox;
- cbShowBarAnimation: TCheckBox;
- ColorDialog1: TColorDialog;
- btBarColor: TColorSpeedButton;
- edCaption: TEdit;
- edMax: TFloatSpinEdit;
- edMin: TFloatSpinEdit;
- edValueSub1: TFloatSpinEdit;
- edValue2: TFloatSpinEdit;
- edYLineCaption: TEdit;
- edYLineAfter: TEdit;
- edYLineDigits: TSpinEdit;
- edCaptionTimerFormat: TEdit;
- BGRAMaxMProgress: TBGRAFlashProgressBar;
- edGraphValue: TFloatSpinEdit;
- edGraphValueY: TFloatSpinEdit;
- edMarqueeBounce: TSpinEdit;
- edMarqueeWidth: TBCTrackbarUpdown;
- edMax2: TFloatSpinEdit;
- edMaxY: TFloatSpinEdit;
- edMin2: TFloatSpinEdit;
- edMinY: TFloatSpinEdit;
- edValueSub: TFloatSpinEdit;
- edValue: TFloatSpinEdit;
- edValue1: TFloatSpinEdit;
- GroupBox1: TGroupBox;
- GroupBox2: TGroupBox;
- Label10: TLabel;
- Label13: TLabel;
- Label14: TLabel;
- Label15: TLabel;
- Label16: TLabel;
- Label17: TLabel;
- Label18: TLabel;
- Label19: TLabel;
- Label2: TLabel;
- Label20: TLabel;
- Label21: TLabel;
- Label22: TLabel;
- Label24: TLabel;
- Label3: TLabel;
- Label4: TLabel;
- Label5: TLabel;
- Label6: TLabel;
- Label7: TLabel;
- Label8: TLabel;
- Label9: TLabel;
- lbCount: TLabel;
- PageControl1: TPageControl;
- edCaptionDigits: TSpinEdit;
- rgCaptionAlign: TRadioGroup;
- rgCaptionAlignM: TRadioGroup;
- rgMarqueeDirection: TRadioGroup;
- rgMarqueeSpeed: TRadioGroup;
- rgMarqueeWidthType: TRadioGroup;
- TabNormal: TTabSheet;
- TabMarquee: TTabSheet;
- TabMultiProgress: TTabSheet;
- TabTimer: TTabSheet;
- TabGraph: TTabSheet;
- TimeEdit1: TTimeEdit;
- procedure BCTrackbarUpdown1Change(Sender: TObject; AByUser: boolean);
- procedure BGRAMaxMProgressTimerEnd(Sender: TObject);
- procedure btBarColorClick(Sender: TObject);
- procedure btGraphAddValueClick(Sender: TObject);
- procedure btGraphTestClick(Sender: TObject);
- procedure btTimerPlayPause2Click(Sender: TObject);
- procedure btTimerPlayPauseClick(Sender: TObject);
- procedure btTimerStartClick(Sender: TObject);
- procedure cbBackgroundRandomChange(Sender: TObject);
- procedure cbCaptionPercentMChange(Sender: TObject);
- procedure cbMarqueeWidthChange(Sender: TObject);
- procedure cbCaptionPercentChange(Sender: TObject);
- procedure cbShowBarAnimationChange(Sender: TObject);
- procedure cbShowDividersChange(Sender: TObject);
- procedure cbShowDividersYChange(Sender: TObject);
- procedure cbShowYLineChange(Sender: TObject);
- procedure cbTimerAutoStartChange(Sender: TObject);
- procedure edCaptionChange(Sender: TObject);
- procedure edCaptionDigitsChange(Sender: TObject);
- procedure edMarqueeBounceChange(Sender: TObject);
- procedure edMaxChange(Sender: TObject);
- procedure edMaxYChange(Sender: TObject);
- procedure edMinChange(Sender: TObject);
- procedure edMinYChange(Sender: TObject);
- procedure edValueSubChange(Sender: TObject; AByUser: boolean);
- procedure edCaptionTimerFormatChange(Sender: TObject);
- procedure edValueChange(Sender: TObject; AByUser: boolean);
- procedure edMarqueeWidthChange(Sender: TObject; AByUser: boolean);
- procedure edYLineAfterChange(Sender: TObject);
- procedure edYLineCaptionChange(Sender: TObject);
- procedure edYLineDigitsChange(Sender: TObject);
- procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
- procedure FormCreate(Sender: TObject);
- procedure FormShow(Sender: TObject);
- procedure PageControl1Change(Sender: TObject);
- procedure rgCaptionAlignClick(Sender: TObject);
- procedure rgCaptionAlignMClick(Sender: TObject);
- procedure rgMarqueeDirectionClick(Sender: TObject);
- procedure rgMarqueeWidthTypeClick(Sender: TObject);
- procedure rgMarqueeSpeedClick(Sender: TObject);
- private
- { private declarations }
- aCount: Integer;
- Closing: Boolean;
- public
- { public declarations }
- end;
- var
- Form1: TForm1;
- implementation
- uses Math;
- {$R *.lfm}
- { TForm1 }
- procedure TForm1.btTimerPlayPause2Click(Sender: TObject);
- begin
- BGRAMaxMProgress.StepIt(0);
- end;
- procedure TForm1.btTimerPlayPauseClick(Sender: TObject);
- begin
- BGRAMaxMProgress.TimerPlayPause;
- end;
- procedure TForm1.btTimerStartClick(Sender: TObject);
- begin
- BGRAMaxMProgress.TimerReStart;
- end;
- procedure TForm1.cbBackgroundRandomChange(Sender: TObject);
- begin
- BGRAMaxMProgress.BackgroundRandomize:= cbBackgroundRandom.Checked;
- end;
- procedure TForm1.cbCaptionPercentMChange(Sender: TObject);
- begin
- BGRAMaxMProgress.CaptionShowPercentSub:= cbCaptionPercentM.Checked;
- end;
- procedure TForm1.cbMarqueeWidthChange(Sender: TObject);
- begin
- BGRAMaxMProgress.MarqueeWidth:= edMarqueeWidth.Value;
- end;
- procedure TForm1.cbCaptionPercentChange(Sender: TObject);
- begin
- if Sender = cbCaptionPercent then
- cbCaptionPercent1.Checked := cbCaptionPercent.Checked
- else
- cbCaptionPercent.Checked := cbCaptionPercent1.Checked;
- BGRAMaxMProgress.CaptionShowPercent:= cbCaptionPercent.Checked;
- end;
- procedure TForm1.cbShowBarAnimationChange(Sender: TObject);
- begin
- BGRAMaxMProgress.ShowBarAnimation:= cbShowBarAnimation.Checked;
- end;
- procedure TForm1.cbShowDividersChange(Sender: TObject);
- begin
- BGRAMaxMProgress.ShowDividers:= cbShowDividers.Checked;
- end;
- procedure TForm1.cbShowDividersYChange(Sender: TObject);
- begin
- BGRAMaxMProgress.GraphShowYDividers:= cbShowDividersY.Checked;
- if BGRAMaxMProgress.GraphShowYDividers then
- begin
- BGRAMaxMProgress.ShowDividers:= True;
- cbShowDividers.Checked:= True;
- end;
- end;
- procedure TForm1.cbShowYLineChange(Sender: TObject);
- begin
- BGRAMaxMProgress.GraphShowYLine:= cbShowYLine.Checked;
- if BGRAMaxMProgress.GraphShowYLine then
- begin
- BGRAMaxMProgress.BackgroundColor:= clWhite;
- BGRAMaxMProgress.BackgroundRandomize:= False;
- cbBackgroundRandom.Checked:= False;
- btBackgroundColor.StateNormal.Color:= clWhite;
- end;
- end;
- procedure TForm1.cbTimerAutoStartChange(Sender: TObject);
- begin
- BGRAMaxMProgress.TimerAutoRestart:= TCheckBox(Sender).Checked;
- end;
- procedure TForm1.edCaptionChange(Sender: TObject);
- begin
- BGRAMaxMProgress.Caption:= edCaption.Text;
- end;
- procedure TForm1.edCaptionDigitsChange(Sender: TObject);
- begin
- BGRAMaxMProgress.CaptionPercentDigits:= edCaptionDigits.Value;
- end;
- procedure TForm1.edMarqueeBounceChange(Sender: TObject);
- begin
- BGRAMaxMProgress.MarqueeBounce:= edMarqueeBounce.Value;
- end;
- procedure TForm1.edMaxChange(Sender: TObject);
- begin
- BGRAMaxMProgress.MaxValue:= TFloatSpinEdit(Sender).Value;
- edMax.Value:= BGRAMaxMProgress.MaxValue;
- edMax2.Value:= BGRAMaxMProgress.MaxValue;
- edValue.MaxValue:= BGRAMaxMProgress.MaxValue;
- edValue1.MaxValue:= BGRAMaxMProgress.MaxValue;
- edGraphValue.MaxValue:= BGRAMaxMProgress.MaxValue;
- end;
- procedure TForm1.edMaxYChange(Sender: TObject);
- begin
- BGRAMaxMProgress.MaxYValue:= edMaxY.Value;
- edGraphValueY.MaxValue:= BGRAMaxMProgress.MaxYValue;
- end;
- procedure TForm1.edMinChange(Sender: TObject);
- begin
- BGRAMaxMProgress.MinValue:= TFloatSpinEdit(Sender).Value;
- edMin.Value:= BGRAMaxMProgress.MinValue;
- edMin2.Value:= BGRAMaxMProgress.MinValue;
- edValue.MinValue:= BGRAMaxMProgress.MinValue;
- edValue1.MinValue:= BGRAMaxMProgress.MinValue;
- edGraphValue.MinValue:= BGRAMaxMProgress.MinValue;
- end;
- procedure TForm1.edMinYChange(Sender: TObject);
- begin
- BGRAMaxMProgress.MinYValue:= edMinY.Value;
- edGraphValueY.MinValue:= BGRAMaxMProgress.MinYValue;
- end;
- procedure TForm1.edValueSubChange(Sender: TObject; AByUser: boolean);
- begin
- BGRAMaxMProgress.ValueSub:= TFloatSpinEdit(Sender).Value;
- edValueSub.Value:= BGRAMaxMProgress.ValueSub;
- edValueSub1.Value:= BGRAMaxMProgress.ValueSub;
- end;
- procedure TForm1.edCaptionTimerFormatChange(Sender: TObject);
- begin
- BGRAMaxMProgress.CaptionPercentTimerFormat:= edCaptionTimerFormat.Text;
- end;
- procedure TForm1.edValueChange(Sender: TObject; AByUser: boolean);
- begin
- BGRAMaxMProgress.Value:= TFloatSpinEdit(Sender).Value;
- edValue.Value:= BGRAMaxMProgress.Value;
- edValue1.Value:= BGRAMaxMProgress.Value;
- edValue2.Value:= BGRAMaxMProgress.Value;
- end;
- procedure TForm1.edMarqueeWidthChange(Sender: TObject; AByUser: boolean);
- begin
- if AByUser then BGRAMaxMProgress.MarqueeWidth:= edMarqueeWidth.Value;
- end;
- procedure TForm1.edYLineAfterChange(Sender: TObject);
- begin
- BGRAMaxMProgress.GraphYLineAfter:= edYLineAfter.Text;
- end;
- procedure TForm1.edYLineCaptionChange(Sender: TObject);
- begin
- BGRAMaxMProgress.GraphYLineCaption:= edYLineCaption.Text;
- end;
- procedure TForm1.edYLineDigitsChange(Sender: TObject);
- begin
- BGRAMaxMProgress.GraphYLineDigits:= edYLineDigits.Value;
- end;
- procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
- begin
- Closing:= True;
- end;
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- Closing:= False;
- end;
- procedure TForm1.FormShow(Sender: TObject);
- begin
- PageControl1.ActivePage:= TabNormal;
- end;
- procedure TForm1.PageControl1Change(Sender: TObject);
- begin
- //Update Controls
- if (PageControl1.ActivePage.Tag = 4)
- then BGRAMaxMProgress.Height:= 100 //Graph
- else BGRAMaxMProgress.Height:= 34;
- if (PageControl1.ActivePage.Tag = 3) then
- begin
- //Timer
- aCount:= 0;
- BGRAMaxMProgress.MaxValue:= TimeEdit1.Time;
- BGRAMaxMProgress.TimerAutoRestart:= cbTimerAutoStart.Checked;
- BGRAMaxMProgress.CaptionShowPercent:= cbCaptionPercent1.Checked;
- BGRAMaxMProgress.CaptionPercentTimerFormat:= edCaptionTimerFormat.Text;
- end;
- BGRAMaxMProgress.Style:= TBGRAPBarStyle(PageControl1.ActivePage.Tag);
- end;
- procedure TForm1.rgCaptionAlignClick(Sender: TObject);
- begin
- BGRAMaxMProgress.CaptionPercentAlign:= TAlignment(rgCaptionAlign.ItemIndex);
- end;
- procedure TForm1.rgCaptionAlignMClick(Sender: TObject);
- begin
- BGRAMaxMProgress.CaptionPercentSubAlign:= TAlignment(rgCaptionAlignM.ItemIndex);
- end;
- procedure TForm1.rgMarqueeDirectionClick(Sender: TObject);
- begin
- BGRAMaxMProgress.MarqueeDirection:= TBGRAPBarMarqueeDirection(rgMarqueeDirection.ItemIndex);
- end;
- procedure TForm1.rgMarqueeWidthTypeClick(Sender: TObject);
- begin
- BGRAMaxMProgress.MarqueeWidthType:= TBGRAPBarMarqueeWidthType(rgMarqueeWidthType.ItemIndex);
- // edMarqueeWidth.Enabled:= (BGRAMaxMProgress.MarqueeWidthType = pbmwFixed);
- end;
- procedure TForm1.rgMarqueeSpeedClick(Sender: TObject);
- begin
- BGRAMaxMProgress.MarqueeSpeed:= TBGRAPBarMarqueeSpeed(rgMarqueeSpeed.ItemIndex);
- end;
- procedure TForm1.BCTrackbarUpdown1Change(Sender: TObject; AByUser: boolean);
- begin
- BGRAMaxMProgress.Value := edValue.Value;
- end;
- procedure TForm1.BGRAMaxMProgressTimerEnd(Sender: TObject);
- begin
- inc(aCount);
- lbCount.Caption:= IntToStr(aCount);
- end;
- procedure TForm1.btBarColorClick(Sender: TObject);
- begin
- if ColorDialog1.Execute then
- begin
- if Sender=btBarColor then BGRAMaxMProgress.BarColor:=ColorDialog1.Color
- else
- if Sender=btBarColorM then BGRAMaxMProgress.BarColorSub:=ColorDialog1.Color
- else
- if Sender=btBackgroundColor then BGRAMaxMProgress.BackgroundColor:=ColorDialog1.Color
- else
- if Sender=btFontColor then BGRAMaxMProgress.Font.Color:=ColorDialog1.Color;
- TColorSpeedButton(Sender).StateNormal.Color:=ColorDialog1.Color;
- end;
- end;
- procedure TForm1.btGraphAddValueClick(Sender: TObject);
- begin
- BGRAMaxMProgress.SetValue(edGraphValue.Value, edGraphValueY.Value);
- end;
- procedure TForm1.btGraphTestClick(Sender: TObject);
- var
- i,
- iStep,
- YVal: Double;
- begin
- BGRAMaxMProgress.Style:= pbstGraph;
- BGRAMaxMProgress.Value:= 0;
- iStep:= (BGRAMaxMProgress.MaxValue-BGRAMaxMProgress.MinValue) / 100;
- YVal:= 50;
- Randomize;
- i:= BGRAMaxMProgress.MinValue;
- while (i < BGRAMaxMProgress.MaxValue) do
- begin
- i:= i+iStep;
- if cbRandG.Checked
- then YVal:= YVal+RandG(BGRAMaxMProgress.MinYValue, 10)
- else YVal:= Random * (BGRAMaxMProgress.MaxYValue - BGRAMaxMProgress.MinYValue) + BGRAMaxMProgress.MinYValue;
- BGRAMaxMProgress.SetValue(i, YVal);
- Application.ProcessMessages;
- Sleep(150);
- end;
- end;
- end.
|