771 lines
26 KiB
C++
771 lines
26 KiB
C++
|
|
//---------------------------------------------------------------------------
|
||
|
|
#include "..\cxDemosBCB.inc"
|
||
|
|
|
||
|
|
#include <vcl.h>
|
||
|
|
#pragma hdrstop
|
||
|
|
|
||
|
|
#include "cxDemosBCB.inc"
|
||
|
|
#include "DemoBasicMain.h"
|
||
|
|
#include "SysUtils.hpp"
|
||
|
|
#include "cxSchedulerUtils.hpp"
|
||
|
|
#include "cxSchedulerDialogs.hpp"
|
||
|
|
#include "cxExportSchedulerLink.hpp"
|
||
|
|
#include "cxSchedulerOutlookExchange.hpp"
|
||
|
|
|
||
|
|
#include "AboutDemoForm.h"
|
||
|
|
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
#pragma package(smart_init)
|
||
|
|
#pragma link "cxControls"
|
||
|
|
#pragma link "cxEdit"
|
||
|
|
#pragma link "cxGraphics"
|
||
|
|
#pragma link "cxScheduler"
|
||
|
|
#pragma link "cxSchedulerCustomControls"
|
||
|
|
#pragma link "cxSchedulerCustomResourceView"
|
||
|
|
#pragma link "cxSchedulerDateNavigator"
|
||
|
|
#pragma link "cxSchedulerDayView"
|
||
|
|
#pragma link "cxSchedulerStorage"
|
||
|
|
#pragma link "cxStyles"
|
||
|
|
#pragma link "cxControls"
|
||
|
|
#pragma link "cxEdit"
|
||
|
|
#pragma link "cxGraphics"
|
||
|
|
#pragma link "cxScheduler"
|
||
|
|
#pragma link "cxSchedulerCustomControls"
|
||
|
|
#pragma link "cxSchedulerCustomResourceView"
|
||
|
|
#pragma link "cxSchedulerDateNavigator"
|
||
|
|
#pragma link "cxSchedulerOutlookExchange"
|
||
|
|
#pragma link "cxSchedulerDayView"
|
||
|
|
#pragma link "cxStyles"
|
||
|
|
#pragma link "cxSchedulerStorage"
|
||
|
|
#pragma link "cxSchedulerTimeGridView"
|
||
|
|
#pragma link "cxSchedulerUtils"
|
||
|
|
#pragma link "cxSchedulerWeekView"
|
||
|
|
#pragma link "cxSchedulerYearView"
|
||
|
|
#pragma resource "*.dfm"
|
||
|
|
int MaxRandomPeriod = 60;
|
||
|
|
|
||
|
|
TDemoBasicMainForm *DemoBasicMainForm;
|
||
|
|
|
||
|
|
const
|
||
|
|
int StartIndexes[22] =
|
||
|
|
{0, 12, 30, 44, 58, 80, 90, 106, 126, 157, 174, 196,
|
||
|
|
208, 220, 226, 234, 238, 242, 249, 260, 267, 272};
|
||
|
|
|
||
|
|
int EventsCount[22] =
|
||
|
|
{12, 18, 14, 14, 22, 10, 16, 20, 31, 17,
|
||
|
|
22, 12, 12, 6, 8, 4, 4, 7, 11, 7, 5, 8};
|
||
|
|
|
||
|
|
String SportEvents[280] =
|
||
|
|
{"Basketball Qualifying - Men",
|
||
|
|
"Basketball Qualifying - Women",
|
||
|
|
"Basketball First Group Phase - Men",
|
||
|
|
"Basketball First Group Phase - Women",
|
||
|
|
"Basketball Quarterfinals - Men",
|
||
|
|
"Basketball Quarterfinals - Women",
|
||
|
|
"Basketball Semifinals - Men",
|
||
|
|
"Basketball Semifinals - Women",
|
||
|
|
"Basketball Places 3/4 - Men",
|
||
|
|
"Basketball Places 3/4 - Women",
|
||
|
|
"Basketball Finals - Men",
|
||
|
|
"Basketball Finals - Women",
|
||
|
|
|
||
|
|
"Lamon Brewster (32-2) vs. Luan Krasniqi (28-1-1) (WBO heavyweight belt)",
|
||
|
|
"(PPV) Antonio Tarver (23-3) vs. Roy Jones (49-3) (IBO light heavyweight belt)",
|
||
|
|
"(Showtime) James Toney (68-4-2) vs. Dominick Guinn (25-2-1)",
|
||
|
|
"Nicolay Valuev (41-0) vs. TBA",
|
||
|
|
"Danilo Haussler (25-3) vs. TBA",
|
||
|
|
"Cengiz Koc (22-1) vs. TBA",
|
||
|
|
"(PPV) Diego Corrales (40-2) vs. Jose Luis Castillo (52-7-1)",
|
||
|
|
"(WBC and WBO lightweight belts) (PPV) Carlos Hernandez vs. Bobby Pacquiao",
|
||
|
|
"(PPV) Jorge Arce vs. Hussein Hussein",
|
||
|
|
"Vince Philips (47-9-1) vs. Reynaldo Pelonia (35-21-3)",
|
||
|
|
"Kili Madrid (6-0-1) vs. Donny Fosmire (10-7)",
|
||
|
|
"Nelson Zepeda (1-0-1) vs. Kaleo Padilla (0-0)",
|
||
|
|
"Justin Mercado (1-1) vs. Waldo Rojas (0-0)",
|
||
|
|
"Illima Vicente (0-0) vs. Jenny Houts (0-0)",
|
||
|
|
"Tomasz Adamek (29-0) vs. Thomas Ulrich (28-1) (WBC light heavyweight belt)",
|
||
|
|
"(Showtime) Jeff Lacy (20-0) vs. Joe Calzaghe (39-0) (IBF, IBO and WBO super middleweight belts)",
|
||
|
|
"Jermain Taylor vs. Bernard Hopkins",
|
||
|
|
"Ronald ""Winky"" Wright vs. TBA",
|
||
|
|
|
||
|
|
"Australian Open",
|
||
|
|
"Pacific Life Open",
|
||
|
|
"NASDAQ-100 Open",
|
||
|
|
"Tennis Masters Monte Carlo",
|
||
|
|
"Telecom Italia Masters Roma",
|
||
|
|
"Tennis Masters Hamburg",
|
||
|
|
"Roland Garros",
|
||
|
|
"Wimbledon",
|
||
|
|
"Tennis Masters Montreal",
|
||
|
|
"Western and Southern Financial Group Masters",
|
||
|
|
"US Open",
|
||
|
|
"Tennis Masters Madrid",
|
||
|
|
"BNP Paribas Masters",
|
||
|
|
"Tennis Masters Cup",
|
||
|
|
|
||
|
|
"Weightlifting 48 Kg - Women - Final",
|
||
|
|
"Weightlifting 56 Kg - Men - Final",
|
||
|
|
"Weightlifting 53 Kg - Women - Final",
|
||
|
|
"Weightlifting 62 Kg - Men - Final",
|
||
|
|
"Weightlifting 63 Kg - Women - Final",
|
||
|
|
"Weightlifting 69 Kg - Men - Final",
|
||
|
|
"Weightlifting 69 Kg - Women - Final",
|
||
|
|
"Weightlifting 77 Kg - Men - Final",
|
||
|
|
"Weightlifting 75 Kg - Women - Final",
|
||
|
|
"Weightlifting 75kg - Women - Final",
|
||
|
|
"Weightlifting 85 Kg - Men - Final",
|
||
|
|
"Weightlifting 94 Kg - Men - Final",
|
||
|
|
"Weightlifting 105 Kg - Men - Final",
|
||
|
|
"Weightlifting 105kg - Men - Final",
|
||
|
|
|
||
|
|
"Sabre - Men - 1st Round",
|
||
|
|
"Sabre - Men - Round 2",
|
||
|
|
"Sabre - Men - 3rd Round",
|
||
|
|
"Sabre - Men - Quarter final",
|
||
|
|
"Sabre - Men - Semi-finals",
|
||
|
|
"Sabre - Men - Final",
|
||
|
|
"Epee - Women - 1st Round",
|
||
|
|
"Epee - Women - Round 2",
|
||
|
|
"Epee - Women - 3rd Round",
|
||
|
|
"Epee - Women - Quarter final",
|
||
|
|
"Epee - Women - Semi-finals",
|
||
|
|
"Epee - Women - Final",
|
||
|
|
"Epee - Women/Team - 1st Round",
|
||
|
|
"Epee - Women/Team - Quarter final",
|
||
|
|
"Epee - Women/Team - Semi-finals",
|
||
|
|
"Epee - Women/Team - Final",
|
||
|
|
"Foil - Men - 1st Round",
|
||
|
|
"Foil - Men - Round 2",
|
||
|
|
"Foil - Men - 3rd Round",
|
||
|
|
"Foil - Men - Quarter final",
|
||
|
|
"Foil - Men - Semi-finals",
|
||
|
|
"Foil - Men - Final",
|
||
|
|
|
||
|
|
"Soccer 1st Round - *Men's Preliminaries - Men",
|
||
|
|
"Soccer 1st Round - *Women's Preliminaries - Women",
|
||
|
|
"Soccer Quarter final - *Men's Quarterfinal - Men",
|
||
|
|
"Soccer Quarter final - *Women's Quarterfinal - Women",
|
||
|
|
"Soccer Semi-finals - *Women's Semifinal - Men",
|
||
|
|
"Soccer Semi-finals - *Women's Semifinal - Women",
|
||
|
|
"Soccer places 3/4 - *Men's Bronze Medal Match - Men",
|
||
|
|
"Soccer places 3/4 - *Women's Bronze Medal Match - Women",
|
||
|
|
"Soccer Final - *Men's Gold Medal Match - Men",
|
||
|
|
"Soccer Final - *Women's Gold Medal Match - Women",
|
||
|
|
|
||
|
|
"Men - Qualifying",
|
||
|
|
"Women - Qualifying",
|
||
|
|
"Men/Team - Final",
|
||
|
|
"Women/Team - Final",
|
||
|
|
"Individual All-Around - Men - Final",
|
||
|
|
"Individual All-Around - Women - Final",
|
||
|
|
"Floor Exercise - Men - Final",
|
||
|
|
"Vault - Women - Final",
|
||
|
|
"Uneven Bars - Women - Final",
|
||
|
|
"Pommel Horse - Men - Final",
|
||
|
|
"Rings - Men - Final",
|
||
|
|
"Vault - Men - Final",
|
||
|
|
"Beam - Women - Final",
|
||
|
|
"Parallel Bars - Men - Final",
|
||
|
|
"Floor Exercise - Women - Final",
|
||
|
|
"Horizontal Bar - Men - Final",
|
||
|
|
|
||
|
|
"Slalom C1 - Men - Heats",
|
||
|
|
"Slalom C1 - Men - Heats",
|
||
|
|
"Slalom C1 - Men - Semi-finals",
|
||
|
|
"Slalom C1 - Men - Final",
|
||
|
|
"Slalom C2 - Men - Heats",
|
||
|
|
"Slalom C2 - Men - Heats",
|
||
|
|
"Slalom C2 - Men - Semi-finals",
|
||
|
|
"Slalom C2 - Men - Final",
|
||
|
|
"Flatwater C1 - 1000m - Men - Heats",
|
||
|
|
"Flatwater C2 - 1000m - Men - Heats",
|
||
|
|
"Flatwater C1 - 500m - Men - Heats",
|
||
|
|
"Flatwater C2 - 500m - Men - Heats",
|
||
|
|
"Flatwater C1 - 1000m - Men - Semi-finals",
|
||
|
|
"Flatwater C2 - 1000m - Men - Semi-finals",
|
||
|
|
"Flatwater C1 - 500m - Men - Semi-finals",
|
||
|
|
"Flatwater C2 - 500m - Men - Semi-finals",
|
||
|
|
"Flatwater C1 - 1000m - Men - Final",
|
||
|
|
"Flatwater C2 - 1000m - Men - Final",
|
||
|
|
"Flatwater C1 - 500m - Men - Final",
|
||
|
|
"Flatwater C2 - 500m - Men - Final",
|
||
|
|
|
||
|
|
"Slalom K1 - Women - Heats",
|
||
|
|
"Slalom K1 - Women - Heats",
|
||
|
|
"Slalom K1 - Women - Semi-finals",
|
||
|
|
"Slalom K1 - Women - Final",
|
||
|
|
"Slalom K2 - Men - Heats",
|
||
|
|
"Slalom K2 - Men - Heats",
|
||
|
|
"Slalom K2 - Men - Semi-finals",
|
||
|
|
"Slalom K1 - Men - Final",
|
||
|
|
"Flatwater K1 - 1000m - Men - Heats",
|
||
|
|
"Flatwater K4 - 500m - Women - Heats",
|
||
|
|
"Flatwater K2 - 1000m - Men - Heats",
|
||
|
|
"Flatwater K4 - 1000m - Men - Heats",
|
||
|
|
"Flatwater K1 - 500m - Men - Heats",
|
||
|
|
"Flatwater K2 - 500m - Men - Heats",
|
||
|
|
"Flatwater K2 - 500m - Women - Heats",
|
||
|
|
"Flatwater K1 - 1000m - Men - Semi-finals",
|
||
|
|
"Flatwater K4 - 500m - Women - Semi-finals",
|
||
|
|
"Flatwater K2 - 1000m - Men - Semi-finals",
|
||
|
|
"Flatwater K4 - 1000m - Men - Semi-finals",
|
||
|
|
"Flatwater K1 - 500m - Men - Semi-finals",
|
||
|
|
"Flatwater K1 - 500m - Women - Semi-finals",
|
||
|
|
"Flatwater K2 - 500m - Men - Semi-finals",
|
||
|
|
"Flatwater K2 - 500m - Women - Semi-finals",
|
||
|
|
"Flatwater K1 - 1000m - Men - Final",
|
||
|
|
"Flatwater K4 - 500m - Women - Final",
|
||
|
|
"Flatwater K2 - 1000m - Men - Final",
|
||
|
|
"Flatwater K4 - 1000m - Men - Final",
|
||
|
|
"Flatwater K1 - 500m - Men - Final",
|
||
|
|
"Flatwater K1 - 500m - Women - Final",
|
||
|
|
"Flatwater K2 - 500m - Men - Final",
|
||
|
|
"Flatwater K2 - 500m - Women - Final",
|
||
|
|
|
||
|
|
"Greco-Roman 55kg - Men - Qualifying",
|
||
|
|
"Greco-Roman 66kg - Men - Qualifying",
|
||
|
|
"Greco-Roman 84kg - Men - Qualifying",
|
||
|
|
"Greco-Roman 120kg - Men - Qualifying",
|
||
|
|
"Greco-Roman 55kg - Men - Semi-finals",
|
||
|
|
"Greco-Roman 66kg - Men - Semi-finals",
|
||
|
|
"Greco-Roman 84kg - Men - Semi-finals",
|
||
|
|
"Greco-Roman 120kg - Men - Semi-finals",
|
||
|
|
"Greco-Roman 96kg - Men - Qualifying",
|
||
|
|
"Greco-Roman 55kg - Men - Final",
|
||
|
|
"Greco-Roman 66kg - Men - Final",
|
||
|
|
"Greco-Roman 84kg - Men - Final",
|
||
|
|
"Greco-Roman 120kg - Men - Final",
|
||
|
|
"Greco-Roman 55kg - Men - Play Off",
|
||
|
|
"Greco-Roman 66kg - Men - Play Off",
|
||
|
|
"Greco-Roman 84kg - Men - Play Off",
|
||
|
|
"Greco-Roman 120kg - Men - Play Off",
|
||
|
|
|
||
|
|
"Individual Eventing Dressage - 1st Day",
|
||
|
|
"Team Eventing Dressage - 1st Day",
|
||
|
|
"Individual Eventing Dressage - 2nd Day",
|
||
|
|
"Team Eventing Dressage - 2nd Day",
|
||
|
|
"Individual Eventing Cross Country - Final",
|
||
|
|
"Team Eventing Cross Country - Final",
|
||
|
|
"Team Eventing Jumping - Final",
|
||
|
|
"Individual Eventing Jumping - Qualifying",
|
||
|
|
"Individual Eventing Jumping - Final",
|
||
|
|
"Individual Dressage Grand Prix - 1st Day",
|
||
|
|
"Team Dressage Grand Prix - 1st Day",
|
||
|
|
"Individual Dressage Grand Prix - 2nd Day",
|
||
|
|
"Team Dressage Grand Prix - 2nd Day",
|
||
|
|
"Individual Jumping - Qualifying",
|
||
|
|
"Individual Dressage Grand Prix Special - Final",
|
||
|
|
"Team Jumping - Final",
|
||
|
|
"Individual Jumping - Qualifying",
|
||
|
|
"Individual Jumping - Qualifying",
|
||
|
|
"Team Jumping - Final",
|
||
|
|
"Individual Dressage Grand Prix Freestyle - Final",
|
||
|
|
"Individual Jumping - Final",
|
||
|
|
"Individual Jumping - Final",
|
||
|
|
|
||
|
|
"Men's 470 - Race 01",
|
||
|
|
"Women's 470 - Race 01",
|
||
|
|
"Men's 470 - Race 02",
|
||
|
|
"Women's 470 - Race 02",
|
||
|
|
"Finn - Race 1",
|
||
|
|
"Yngling - Race 1",
|
||
|
|
"Finn - Race 2",
|
||
|
|
"Yngling - Race 2",
|
||
|
|
"Laser - Race 1",
|
||
|
|
"Women's Mistral - Race 01",
|
||
|
|
"Men's Mistral - Race 02",
|
||
|
|
"49er - Race 1",
|
||
|
|
|
||
|
|
"Men's 400m Individual Medley - Heat 1",
|
||
|
|
"Men's 400m Individual Medley - Heat 2",
|
||
|
|
"Women's 100m Butterfly - Heat 1",
|
||
|
|
"Men's 400m Freestyle - Heat 1",
|
||
|
|
"Women's 400m Individual Medley - Heat 1",
|
||
|
|
"Women's 400m Individual Medley - Heat 2",
|
||
|
|
"Men's 100m Breaststroke - Heat 1",
|
||
|
|
"Men's 100m Breaststroke - Heat 2",
|
||
|
|
"Women's 4 x 100m Freestyle Relay - Heat 1",
|
||
|
|
"Women's 4 x 100m Freestyle Relay - Heat 2",
|
||
|
|
"Women's 100m Butterfly Semifinal 1",
|
||
|
|
"Women's 4 x 100m Freestyle Relay Final",
|
||
|
|
|
||
|
|
"Women's Synchronised 3m Springboard Final",
|
||
|
|
"Men's Synchronised 3m Springboard Final",
|
||
|
|
"Women's Synchronised 10m Platform Final",
|
||
|
|
"Men's Synchronised 10m Platform Final",
|
||
|
|
"Women's 10m Platform Preliminary",
|
||
|
|
"Men's 10m Platform Semifinal",
|
||
|
|
|
||
|
|
"Men's Preliminaries - Pool A Match 1 - Spain - Korea",
|
||
|
|
"Women's Preliminaries - Pool A Match 1 - China - Hungary",
|
||
|
|
"Men's Classification 11-12 Match 31 - Slovenia - Egypt",
|
||
|
|
"Women's Classification 9-10 Match 21 - Greece - Angola",
|
||
|
|
"Men's Classification 9-10 Match 32 - Brazil - Iceland",
|
||
|
|
"Women's Quarterfinal Match 22 - Ukraine - Spain",
|
||
|
|
"Men's Semifinal Match 40 - Germany - Russia",
|
||
|
|
"Women's Semifinal Match 27 - France - Korea",
|
||
|
|
|
||
|
|
"Men - Qualifying",
|
||
|
|
"Women - Qualifying",
|
||
|
|
"Men/Team - Final",
|
||
|
|
"Women/Team - Final",
|
||
|
|
|
||
|
|
"Women's 100m Round 1 - Heat 1",
|
||
|
|
"Men's 100m Round 1 - Heat 1",
|
||
|
|
"Men's 100m Semifinal 1",
|
||
|
|
"Women's 100m Final",
|
||
|
|
|
||
|
|
"Men's 10m Air Pistol Qualification",
|
||
|
|
"Men's 10m Air Pistol Final",
|
||
|
|
"Women's 10m Air Pistol Pre-event Training",
|
||
|
|
"Men's 10m Air Pistol Medal Ceremony",
|
||
|
|
"Women's 10m Air Pistol Qualification",
|
||
|
|
"Men's 50m Pistol Qualification",
|
||
|
|
"Women's 25m Pistol Final",
|
||
|
|
|
||
|
|
"Women's Individual 1/32 Eliminations",
|
||
|
|
"Men's Individual 1/32 Eliminations",
|
||
|
|
"Women's Individual 1/16 Eliminations",
|
||
|
|
"Men's Individual 1/16 Eliminations",
|
||
|
|
"Women's Individual 1/8 Eliminations",
|
||
|
|
"Men's Individual 1/8 Eliminations",
|
||
|
|
"Women's Individual Quarterfinal 1",
|
||
|
|
"Men's Individual Quarterfinal 1",
|
||
|
|
"Men's Individual Semifinal 1",
|
||
|
|
"Men's Individual Bronze Medal Match",
|
||
|
|
"Women's Team Gold Medal Match",
|
||
|
|
|
||
|
|
"Men's Road Race",
|
||
|
|
"Women's Road Race",
|
||
|
|
"Women's Individual Time Trial",
|
||
|
|
"Men's Individual Time Trial",
|
||
|
|
"Women's Sprint 1/8 Finals",
|
||
|
|
"Women's Individual Pursuit Final",
|
||
|
|
"Men's Sprint 1/8 Finals",
|
||
|
|
|
||
|
|
"Men's Preliminaries - Group B - EGY - AUS",
|
||
|
|
"Women's Classification 7th-8th - KAZ - CAN",
|
||
|
|
"Women's Quarterfinal 02 - ITA - HUN",
|
||
|
|
"Women Bronze Medal Game",
|
||
|
|
"Men's Semifinal 02",
|
||
|
|
|
||
|
|
"Women's Preliminaries - Pool B Match 1 - CUB - GER",
|
||
|
|
"Men's Preliminaries - Pool A Match 1 - SCG - POL",
|
||
|
|
"Women's Quarterfinal 04 - JPN - CHN",
|
||
|
|
"Men's Quarterfinal 03 - GRE - USA",
|
||
|
|
"Women's Semifinal 02 - CUB - CHN",
|
||
|
|
"Men's Semifinal 02 - USA - BRA",
|
||
|
|
"Women's Gold Medal Match - RUS - CHN",
|
||
|
|
"Men's Bronze Medal Match - RUS - USA"};
|
||
|
|
|
||
|
|
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
__fastcall TDemoBasicMainForm::TDemoBasicMainForm(TComponent* Owner)
|
||
|
|
: TForm(Owner)
|
||
|
|
{
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TDemoBasicMainForm::FileExitExecute(TObject* Sender)
|
||
|
|
{
|
||
|
|
Close();
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TDemoBasicMainForm::LookAndFeelChange(TObject* Sender)
|
||
|
|
{
|
||
|
|
if (((TMenuItem*)Sender)->Tag > 3) {
|
||
|
|
Scheduler->LookAndFeel->NativeStyle =
|
||
|
|
!Scheduler->LookAndFeel->NativeStyle;
|
||
|
|
((TMenuItem*)Sender)->Checked = Scheduler->LookAndFeel->NativeStyle;
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
((TMenuItem*)Sender)->Checked = true;
|
||
|
|
Scheduler->LookAndFeel->Kind = (TcxLookAndFeelKind)((TMenuItem*)Sender)->Tag;
|
||
|
|
Scheduler->LookAndFeel->NativeStyle = false;
|
||
|
|
miNativeStyle->Checked = false;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TDemoBasicMainForm::miViewDateNavigatorClick(TObject* Sender)
|
||
|
|
{
|
||
|
|
Scheduler->DateNavigator->Visible = ((TMenuItem*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TDemoBasicMainForm::ViewClick(TObject* Sender)
|
||
|
|
{
|
||
|
|
((TMenuItem*)Sender)->Checked = !((TMenuItem*)Sender)->Checked;
|
||
|
|
switch (((TMenuItem*)Sender)->Tag) {
|
||
|
|
case 0:
|
||
|
|
Scheduler->DateNavigator->Visible = ((TMenuItem*)Sender)->Checked;
|
||
|
|
break;
|
||
|
|
case 1:
|
||
|
|
Scheduler->ControlBox->Visible = ((TMenuItem*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TDemoBasicMainForm::ViewModeClick(TObject* Sender)
|
||
|
|
{
|
||
|
|
if (Scheduler->SelectedDays->Count > 0) {
|
||
|
|
AnchorDate = Scheduler->SelectedDays->Items[0];}
|
||
|
|
Scheduler->SelectDays(AnchorDate, AnchorDate,
|
||
|
|
((TMenuItem*)Sender)->Tag == 0 || ((TMenuItem*)Sender)->Tag == 1 ||
|
||
|
|
((TMenuItem*)Sender)->Tag == 4 || ((TMenuItem*)Sender)->Tag == 5);
|
||
|
|
switch (((TMenuItem*)Sender)->Tag) {
|
||
|
|
case 0:
|
||
|
|
Scheduler->ViewDay->Active = True;
|
||
|
|
break;
|
||
|
|
case 1:
|
||
|
|
Scheduler->SelectWorkDays(Date());
|
||
|
|
break;
|
||
|
|
case 2:
|
||
|
|
Scheduler->ViewWeek->Active = True;
|
||
|
|
break;
|
||
|
|
case 3:
|
||
|
|
Scheduler->GoToDate(Scheduler->SelectedDays->Items[0], vmMonth);
|
||
|
|
break;
|
||
|
|
case 4:
|
||
|
|
Scheduler->ViewTimeGrid->Active = True;
|
||
|
|
break;
|
||
|
|
case 5:
|
||
|
|
Scheduler->ViewYear->Active = True;
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TDemoBasicMainForm::ViewPositionClick(TObject* Sender)
|
||
|
|
{
|
||
|
|
((TMenuItem*)Sender)->Checked = !((TMenuItem*)Sender)->Checked;
|
||
|
|
switch (((TMenuItem*)Sender)->Tag) {
|
||
|
|
case 0:
|
||
|
|
Scheduler->OptionsView->ViewPosition = vpLeft;
|
||
|
|
break;
|
||
|
|
case 1:
|
||
|
|
Scheduler->OptionsView->ViewPosition = vpRight;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TDemoBasicMainForm::miAboutClick(TObject* Sender)
|
||
|
|
{
|
||
|
|
ShowAboutDemoForm();
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TDemoBasicMainForm::miGotoDateClick(TObject* Sender)
|
||
|
|
{
|
||
|
|
TDateTime ADate;
|
||
|
|
TcxSchedulerViewMode AMode;
|
||
|
|
|
||
|
|
ADate = Scheduler->SelectedDays->Items[0];
|
||
|
|
if (cxShowGoToDateDialog(Scheduler, Scheduler->LookAndFeel, ADate, AMode))
|
||
|
|
Scheduler->GoToDate(ADate, AMode);
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TDemoBasicMainForm::FormCreate(TObject* Sender)
|
||
|
|
{
|
||
|
|
AnchorDate = Date();
|
||
|
|
if (Scheduler->Storage != NULL)
|
||
|
|
Resources1->Visible = Scheduler->Storage->ResourceCount > 0;
|
||
|
|
miSharing->Visible = Resources1->Visible;
|
||
|
|
Scheduler->SelectDays(Date() - 1, Date() + 1, True);
|
||
|
|
Height = 550;
|
||
|
|
Width = 700;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
int LastCount;
|
||
|
|
|
||
|
|
void __fastcall TDemoBasicMainForm::Timer1Timer(TObject* Sender)
|
||
|
|
{
|
||
|
|
int ACount;
|
||
|
|
|
||
|
|
if (Scheduler->Storage != NULL)
|
||
|
|
ACount = Scheduler->Storage->EventCount;
|
||
|
|
else ACount = 0;
|
||
|
|
if (LastCount != ACount) {
|
||
|
|
LastCount = ACount;
|
||
|
|
StatusBar->SimpleText = "Data Storage contains " + IntToStr(ACount) + " events";
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TDemoBasicMainForm::Resourcelayout1Click(TObject* Sender)
|
||
|
|
{
|
||
|
|
if (Scheduler->Storage != NULL)
|
||
|
|
cxShowResourcesLayoutEditor(Scheduler->Storage, Scheduler->LookAndFeel);
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TDemoBasicMainForm::miGroupByClick(TObject* Sender)
|
||
|
|
{
|
||
|
|
((TMenuItem*)Sender)->Checked = !((TMenuItem*)Sender)->Checked;
|
||
|
|
switch (((TMenuItem*)Sender)->Tag)
|
||
|
|
{
|
||
|
|
case 0:
|
||
|
|
Scheduler->OptionsView->GroupingKind = gkNone;
|
||
|
|
break;
|
||
|
|
case 1:
|
||
|
|
Scheduler->OptionsView->GroupingKind = gkByResource;
|
||
|
|
break;
|
||
|
|
case 2:
|
||
|
|
Scheduler->OptionsView->GroupingKind = gkByDate;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TDemoBasicMainForm::ExportToClick(TObject* Sender)
|
||
|
|
{
|
||
|
|
switch (((TMenuItem*)Sender)->Tag) {
|
||
|
|
case 0:
|
||
|
|
cxSchedulerExportToOutlook(Scheduler->Storage, NULL, NULL, NULL);
|
||
|
|
break;
|
||
|
|
case 1:
|
||
|
|
case 2:
|
||
|
|
case 3:
|
||
|
|
case 4:
|
||
|
|
if (SaveDialog->Execute()) {
|
||
|
|
switch (((TMenuItem*)Sender)->Tag) {
|
||
|
|
case 1:
|
||
|
|
cxExportSchedulerToExcel(SaveDialog->FileName, Scheduler, false, false,
|
||
|
|
"Event # %d", (TDateTime)NullDate, (TDateTime)NullDate, "xls");
|
||
|
|
break;
|
||
|
|
case 2:
|
||
|
|
cxExportSchedulerToText(SaveDialog->FileName, Scheduler, false, false,
|
||
|
|
"Event # %d", (TDateTime)NullDate, (TDateTime)NullDate, "", "", "", "txt");
|
||
|
|
break;
|
||
|
|
case 3:
|
||
|
|
cxExportSchedulerToHTML(SaveDialog->FileName, Scheduler, false, false,
|
||
|
|
"Event # %d", (TDateTime)NullDate, (TDateTime)NullDate, "html");
|
||
|
|
break;
|
||
|
|
case 4:
|
||
|
|
cxExportSchedulerToXML(SaveDialog->FileName, Scheduler, false, false,
|
||
|
|
"Event # %d", (TDateTime)NullDate, (TDateTime)NullDate, "xml");
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TDemoBasicMainForm::OnNewEvent(TcxSchedulerEvent *AEvent, int AIndex)
|
||
|
|
{
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
void TDemoBasicMainForm::CreateEventObject(bool AAllDayEvent, bool ARandomResource)
|
||
|
|
{
|
||
|
|
TcxSchedulerEvent *AEvent = Scheduler->Storage->createEvent();
|
||
|
|
TDateTime ADate = GetRandomDate();
|
||
|
|
AEvent->Start = ADate;
|
||
|
|
if (!AAllDayEvent)
|
||
|
|
{
|
||
|
|
AEvent->Finish = ADate + (double)((random(180) + 30) * MinuteToTime);
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
AEvent->Finish = ADate + 1;
|
||
|
|
AEvent->AllDayEvent = True;
|
||
|
|
};
|
||
|
|
AEvent->State = GetRandomState();
|
||
|
|
AEvent->LabelColor = EventLabelColors[random(11)];
|
||
|
|
int AIndex = random(22);
|
||
|
|
AEvent->Caption = SportEvents[StartIndexes[AIndex] + random(EventsCount[AIndex])];
|
||
|
|
if (ARandomResource) {
|
||
|
|
AEvent->ResourceID = GetRandomResourceID(); }
|
||
|
|
OnNewEvent(AEvent, AIndex);
|
||
|
|
}
|
||
|
|
|
||
|
|
void TDemoBasicMainForm::GenerateRandomEvents(int ACount, bool ARandomResource)
|
||
|
|
{
|
||
|
|
TDateTime ADate;
|
||
|
|
TcxSchedulerEvent *AEvent;
|
||
|
|
TcxCustomSchedulerStorage *AStorage;
|
||
|
|
|
||
|
|
AStorage = Scheduler->Storage;
|
||
|
|
if (AStorage == NULL) return;
|
||
|
|
AStorage->BeginUpdate();
|
||
|
|
try {
|
||
|
|
Randomize();
|
||
|
|
for (int I = 0; I < (int)(ACount/5 * 4); I++){
|
||
|
|
CreateEventObject(false, ARandomResource);
|
||
|
|
}
|
||
|
|
for (int I = 0; I < (int)(ACount/5); I++){
|
||
|
|
CreateEventObject(true, ARandomResource);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
__finally {
|
||
|
|
AStorage->EndUpdate();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
String TDemoBasicMainForm::GetRandomCaption()
|
||
|
|
{
|
||
|
|
int AIndex = random(22);
|
||
|
|
return SportEvents[StartIndexes[AIndex] + random(EventsCount[AIndex])];
|
||
|
|
}
|
||
|
|
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
TDateTime TDemoBasicMainForm::GetRandomDate()
|
||
|
|
{
|
||
|
|
TDateTime ADate = Date() + random(MaxRandomPeriod) - 30 + Scheduler->OptionsView->WorkStart;
|
||
|
|
if ((int)(ADate) == (int)Date())
|
||
|
|
ADate = ADate + (double)(random(10) * HourToTime);
|
||
|
|
else
|
||
|
|
ADate = ADate + (double)(random(24) * HourToTime);
|
||
|
|
return ADate;
|
||
|
|
}
|
||
|
|
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
TColor TDemoBasicMainForm::GetRandomLabelColor()
|
||
|
|
{
|
||
|
|
return EventLabelColors[random(11)];
|
||
|
|
}
|
||
|
|
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
Variant TDemoBasicMainForm::GetRandomResourceID()
|
||
|
|
{
|
||
|
|
if ((Scheduler->Storage == NULL) || (Scheduler->Storage->ResourceCount == 0))
|
||
|
|
return Null;
|
||
|
|
else
|
||
|
|
if (Scheduler->Storage->ResourceCount == 1)
|
||
|
|
return Scheduler->Storage->ResourceIDs[0];
|
||
|
|
else
|
||
|
|
return Scheduler->Storage->ResourceIDs[random(Scheduler->Storage->ResourceCount)];
|
||
|
|
}
|
||
|
|
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
int TDemoBasicMainForm::GetRandomState()
|
||
|
|
{
|
||
|
|
return random(4);
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TDemoBasicMainForm::SyncClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
TcxCustomSchedulerStorageField *SyncIDField = Scheduler->Storage->GetFieldByName("SyncIDField");
|
||
|
|
if (SyncIDField == NULL) return;
|
||
|
|
TcxOutlookSynchronize *OutlookSync = new TcxOutlookSynchronize(Scheduler->Storage);
|
||
|
|
OutlookSync->EntryIDField = SyncIDField;
|
||
|
|
if (((TMenuItem*)Sender)->Tag == 0)
|
||
|
|
{
|
||
|
|
OutlookSync->SynchronizeWithStorage(false);
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
OutlookSync->SynchronizeWithOutlook(false);
|
||
|
|
}
|
||
|
|
delete OutlookSync;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TDemoBasicMainForm::miResCountClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
Scheduler->OptionsView->ResourcesPerPage = ((TMenuItem*)Sender)->Tag;
|
||
|
|
if (((TMenuItem*)Sender)->Tag == 0)
|
||
|
|
{
|
||
|
|
Scheduler->ResourceNavigator->Visibility = snvNever;
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
Scheduler->ResourceNavigator->Visibility = snvAlways;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TDemoBasicMainForm::miTimeWorktimeonlyClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
((TMenuItem*)Sender)->Checked = !((TMenuItem*)Sender)->Checked;
|
||
|
|
Scheduler->ViewTimeGrid->WorkTimeOnly = ((TMenuItem*)Sender)->Checked;
|
||
|
|
Scheduler->ViewTimeGrid->WorkDaysOnly = ((TMenuItem*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TDemoBasicMainForm::miDaySettingsClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
((TMenuItem*)Sender)->Checked = !((TMenuItem*)Sender)->Checked;
|
||
|
|
bool AChecked = ((TMenuItem*)Sender)->Checked;
|
||
|
|
switch (((TMenuItem*)Sender)->Tag) {
|
||
|
|
case 0:
|
||
|
|
Scheduler->ViewDay->HeaderContainer = AChecked;
|
||
|
|
break;
|
||
|
|
case 1:
|
||
|
|
Scheduler->ViewDay->AlwaysShowEventTime = AChecked;
|
||
|
|
break;
|
||
|
|
case 2:
|
||
|
|
Scheduler->ViewDay->WorkTimeOnly = AChecked;
|
||
|
|
break;
|
||
|
|
case 3:
|
||
|
|
Scheduler->ViewDay->TimeRulerMinutes = AChecked;
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TDemoBasicMainForm::miWeekViewClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
((TMenuItem*)Sender)->Checked = !((TMenuItem*)Sender)->Checked;
|
||
|
|
if (((TMenuItem*)Sender)->Tag == 0)
|
||
|
|
{
|
||
|
|
Scheduler->ViewWeek->CompressWeekEnd = ((TMenuItem*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
if (((TMenuItem*)Sender)->Checked)
|
||
|
|
{
|
||
|
|
Scheduler->ViewWeek->DaysLayout = wdlOneColumn;
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
Scheduler->ViewWeek->DaysLayout = wdlTwoColumns;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TDemoBasicMainForm::miCompressweekendsClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
((TMenuItem*)Sender)->Checked = !((TMenuItem*)Sender)->Checked;
|
||
|
|
Scheduler->ViewWeeks->CompressWeekEnd = ((TMenuItem*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TDemoBasicMainForm::AlldayeventsonlyClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
((TMenuItem*)Sender)->Checked = !((TMenuItem*)Sender)->Checked;
|
||
|
|
Scheduler->ViewYear->AllDayEventsOnly = ((TMenuItem*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|
||
|
|
void __fastcall TDemoBasicMainForm::miSharingClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
((TMenuItem*)Sender)->Checked = !((TMenuItem*)Sender)->Checked;
|
||
|
|
Scheduler->EventOperations->SharingBetweenResources = ((TMenuItem*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
|
||
|
|
void __fastcall TDemoBasicMainForm::miIntersectionClick(TObject *Sender)
|
||
|
|
{
|
||
|
|
((TMenuItem*)Sender)->Checked = !((TMenuItem*)Sender)->Checked;
|
||
|
|
Scheduler->EventOperations->Intersection = ((TMenuItem*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
|
||
|
|
void __fastcall TDemoBasicMainForm::miWeekCompressWeekendsClick(
|
||
|
|
TObject *Sender)
|
||
|
|
{
|
||
|
|
((TMenuItem*)Sender)->Checked = !((TMenuItem*)Sender)->Checked;
|
||
|
|
Scheduler->ViewWeek->CompressWeekEnd = ((TMenuItem*)Sender)->Checked;
|
||
|
|
}
|
||
|
|
//---------------------------------------------------------------------------
|
||
|
|
|