git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.DevExpressVCL@31 05c56307-c608-d34a-929d-697000501d7a
209 lines
6.0 KiB
ObjectPascal
209 lines
6.0 KiB
ObjectPascal
unit SchedulerRLMain;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Forms, Menus, Graphics, StdCtrls, dxPSCore,
|
|
dxPSGlbl, dxPSUtl, cxSchedulerStorage, cxControls, cxSchedulerCustomControls, cxScheduler,
|
|
dxPScxCommon, {dxPScxSchedulerLnk,} ComCtrls, ShellApi,
|
|
{dxPSPrVwAdv,} // enable for use of ExpressBars in PrintPreview
|
|
cxSchedulerUtils, ToolWin, Controls, ImgList, dxPScxScheduler3Lnk,
|
|
cxStyles, cxGraphics, cxEdit, cxSchedulerCustomResourceView,
|
|
cxSchedulerDayView, cxSchedulerDateNavigator, cxSchedulerHolidays,
|
|
cxSchedulerTimeGridView, cxSchedulerWeekView, cxSchedulerYearView,
|
|
cxSchedulerGanttView, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev,
|
|
dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns;
|
|
|
|
type
|
|
TSchedulerRLMainForm = class(TForm)
|
|
MainMenu: TMainMenu;
|
|
miFile: TMenuItem;
|
|
miDesigner: TMenuItem;
|
|
miHelp: TMenuItem;
|
|
miPageSetup: TMenuItem;
|
|
miPrintPreview: TMenuItem;
|
|
miPrint: TMenuItem;
|
|
N1: TMenuItem;
|
|
miExit: TMenuItem;
|
|
miDX: TMenuItem;
|
|
dxComponentPrinter1: TdxComponentPrinter;
|
|
ToolBar1: TToolBar;
|
|
tbSetup: TToolButton;
|
|
tbPreview: TToolButton;
|
|
tbPrint: TToolButton;
|
|
tbDevider: TToolButton;
|
|
tbDesigner: TToolButton;
|
|
tbDX: TToolButton;
|
|
tbSeparator: TToolButton;
|
|
tbExit: TToolButton;
|
|
Scheduler: TcxScheduler;
|
|
Storage: TcxSchedulerStorage;
|
|
tbnGenerate: TToolButton;
|
|
dxComponentPrinter1Link1: TcxSchedulerReportLink;
|
|
ilButtons: TImageList;
|
|
procedure miDXClick(Sender: TObject);
|
|
procedure miPageSetupClick(Sender: TObject);
|
|
procedure miPrintPreviewClick(Sender: TObject);
|
|
procedure miPrintClick(Sender: TObject);
|
|
procedure miDesignerClick(Sender: TObject);
|
|
procedure miExitClick(Sender: TObject);
|
|
procedure tbnGenerateClick(Sender: TObject);
|
|
private
|
|
procedure GenerateRandomEvents(ACount: Integer; ARandomResource: Boolean = False);
|
|
function GetRandomCaption: string;
|
|
function GetRandomDate: TDateTime;
|
|
function GetRandomState: Integer;
|
|
function GetRandomResourceID: Variant;
|
|
function GetRandomLabelColor: TColor;
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
SchedulerRLMainForm: TSchedulerRLMainForm;
|
|
|
|
implementation
|
|
|
|
|
|
{$R *.DFM}
|
|
|
|
const
|
|
Captions: array[0..22] of string =
|
|
('Men''s Track and Field',
|
|
'500 meter Men''s Speed Skating',
|
|
'100 Meter Individual Medley',
|
|
'Women''s Basketball Finals',
|
|
'Women''s Cycling 20mi',
|
|
'Men''s Gymnastics Finals',
|
|
'Women''s Hockey Finals',
|
|
'Women''s High Dive Finals',
|
|
'Karate Finals',
|
|
'Kayak Level IV Finals',
|
|
'Lacrosse Semi-finals',
|
|
'Polo Finals',
|
|
'Women''s Soccer Finals',
|
|
'Surfing: Freestyle Finals',
|
|
'Swimming: 100 m Finals',
|
|
'Track & Field: Women''s Finals',
|
|
'Archery Finals',
|
|
'Men''s Hockey Finals',
|
|
'Men''s Downhill Giant Solom',
|
|
'Men''s Ski Jump Finals',
|
|
'Women''s Downhill Ski Finals',
|
|
'Men''s Relay',
|
|
'Baseball Quarter-finals');
|
|
|
|
procedure TSchedulerRLMainForm.miDXClick(Sender: TObject);
|
|
begin
|
|
ShellExecute(Handle, PChar('OPEN'), PChar('http://www.devexpress.com'), Nil, Nil, SW_SHOWMAXIMIZED);
|
|
end;
|
|
|
|
procedure TSchedulerRLMainForm.miPageSetupClick(Sender: TObject);
|
|
begin
|
|
dxComponentPrinter1.PageSetup(nil);
|
|
end;
|
|
|
|
procedure TSchedulerRLMainForm.miPrintPreviewClick(Sender: TObject);
|
|
begin
|
|
dxComponentPrinter1.Preview(True, nil);
|
|
end;
|
|
|
|
procedure TSchedulerRLMainForm.miPrintClick(Sender: TObject);
|
|
begin
|
|
dxComponentPrinter1.Print(True, nil, nil);
|
|
end;
|
|
|
|
procedure TSchedulerRLMainForm.miDesignerClick(Sender: TObject);
|
|
begin
|
|
dxComponentPrinter1.DesignReport(nil);
|
|
end;
|
|
|
|
procedure TSchedulerRLMainForm.miExitClick(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
procedure TSchedulerRLMainForm.GenerateRandomEvents(ACount: Integer;
|
|
ARandomResource: Boolean = False);
|
|
var
|
|
I: Integer;
|
|
ADate: TDateTime;
|
|
AStorage: TcxCustomSchedulerStorage;
|
|
begin
|
|
AStorage := Scheduler.Storage;
|
|
if AStorage = nil then Exit;
|
|
AStorage.BeginUpdate;
|
|
try
|
|
Randomize;
|
|
for I := 0 to ACount div 5 * 4 - 1 do
|
|
with AStorage.CreateEvent do
|
|
begin
|
|
ADate := GetRandomDate;
|
|
Start := ADate;
|
|
Finish := ADate + Random(180) * MinuteToTime;
|
|
State := GetRandomState;
|
|
LabelColor := EventLabelColors[Random(11)];
|
|
Caption := GetRandomCaption;
|
|
if ARandomResource then
|
|
ResourceID := GetRandomResourceID;
|
|
end;
|
|
for I := 0 to ACount div 5 - 1 do
|
|
with AStorage.CreateEvent do
|
|
begin
|
|
ADate := GetRandomDate;
|
|
Start := ADate;
|
|
Finish := ADate + 1;
|
|
AllDayEvent := True;
|
|
LabelColor := EventLabelColors[Random(11)];
|
|
Caption := GetRandomCaption;
|
|
if ARandomResource then
|
|
ResourceID := GetRandomResourceID;
|
|
end;
|
|
finally
|
|
AStorage.EndUpdate;
|
|
end;
|
|
end;
|
|
|
|
function TSchedulerRLMainForm.GetRandomCaption: string;
|
|
begin
|
|
Result := Captions[Random(Length(Captions))];
|
|
end;
|
|
|
|
function TSchedulerRLMainForm.GetRandomDate: TDateTime;
|
|
begin
|
|
Result := Date + Random(60) - 30 + Scheduler.OptionsView.WorkStart;
|
|
if Trunc(Result) = Date then
|
|
Result := Result + Random(10) * HourToTime
|
|
else
|
|
Result := Result + Random(24) * HourToTime;
|
|
end;
|
|
|
|
function TSchedulerRLMainForm.GetRandomLabelColor: TColor;
|
|
begin
|
|
Result := EventLabelColors[Random(11)];
|
|
end;
|
|
|
|
function TSchedulerRLMainForm.GetRandomResourceID: Variant;
|
|
begin
|
|
if (Scheduler.Storage = nil) or (Scheduler.Storage.ResourceCount = 0) then
|
|
Exit
|
|
else
|
|
if Scheduler.Storage.ResourceCount = 1 then
|
|
Result := Scheduler.Storage.ResourceIDs[0]
|
|
else
|
|
Result := Scheduler.Storage.ResourceIDs[Random(Scheduler.Storage.ResourceCount)];
|
|
end;
|
|
|
|
function TSchedulerRLMainForm.GetRandomState: Integer;
|
|
begin
|
|
Result := Random(4);
|
|
end;
|
|
|
|
|
|
procedure TSchedulerRLMainForm.tbnGenerateClick(Sender: TObject);
|
|
begin
|
|
GenerateRandomEvents(100);
|
|
end;
|
|
|
|
end.
|