git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.DevExpressVCL@31 05c56307-c608-d34a-929d-697000501d7a
240 lines
7.5 KiB
ObjectPascal
240 lines
7.5 KiB
ObjectPascal
unit HolidaysDemoMain;
|
|
|
|
interface
|
|
|
|
{$I ..\cxVer.inc}
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Variants,
|
|
Graphics, Controls, Forms, Dialogs, DemoBasicMain, cxLookAndFeels, ActnList,
|
|
ImgList, Menus, StdCtrls, ComCtrls, cxStyles, cxGraphics, cxEdit, cxScheduler,
|
|
cxSchedulerCustomControls, cxSchedulerCustomResourceView,
|
|
cxSchedulerDayView, cxSchedulerDateNavigator, cxSchedulerStorage,
|
|
cxControls, cxContainer, cxTextEdit, cxMemo, cxRichEdit, ExtCtrls, Buttons,
|
|
cxSchedulerWeekView, cxSchedulerTimeGridView, cxSchedulerUtils,
|
|
cxSchedulerYearView, cxSchedulerHolidays, cxHint, cxSchedulerGanttView,
|
|
cxLookAndFeelPainters, cxButtons;
|
|
|
|
const
|
|
ColorsCount = 4;
|
|
Colors: array [0..3] of TColor = (clRed, clYellow, clGreen, clBlue);
|
|
|
|
type
|
|
THolidaysDemoMainForm = class(TDemoBasicMainForm)
|
|
SchedulerUnboundStorage: TcxSchedulerStorage;
|
|
EventImages: TImageList;
|
|
Holidays: TcxSchedulerHolidays;
|
|
Holidays1: TMenuItem;
|
|
miShowHolidaysHints: TMenuItem;
|
|
miHighlightHolidays: TMenuItem;
|
|
miHolidaySeparator1: TMenuItem;
|
|
miHighlight: TMenuItem;
|
|
miRed: TMenuItem;
|
|
miYellow: TMenuItem;
|
|
miGreen: TMenuItem;
|
|
miBlue: TMenuItem;
|
|
PopupMenu: TPopupMenu;
|
|
Forall1: TMenuItem;
|
|
OnllyFOXSPORTS11: TMenuItem;
|
|
FOXFOOTYandFUEL1: TMenuItem;
|
|
btnGenerate: TcxButton;
|
|
btnHolidaysEditor: TcxButton;
|
|
imgResources: TcxImageList;
|
|
procedure btnDeleteClick(Sender: TObject);
|
|
procedure btnGenerateClick(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure SchedulerInitEventImages(Sender: TcxCustomScheduler;
|
|
AEvent: TcxSchedulerControlEvent; AImages: TcxSchedulerEventImages);
|
|
procedure SchedulerUnboundStorageRemindersOpenEvent(
|
|
Sender: TcxSchedulerReminders; AEvent: TcxSchedulerControlEvent);
|
|
procedure miShowHolidaysHintsClick(Sender: TObject);
|
|
procedure miHighlightClick(Sender: TObject);
|
|
procedure miColorClick(Sender: TObject);
|
|
procedure FormDestroy(Sender: TObject);
|
|
procedure Forall1Click(Sender: TObject);
|
|
procedure OnllyFOXSPORTS11Click(Sender: TObject);
|
|
procedure FOXFOOTYandFUEL1Click(Sender: TObject);
|
|
procedure SchedulerShowDateHint(Sender: TObject;
|
|
const ADate: TDateTime; var AHintText: String; var AAllow: Boolean);
|
|
procedure btnHolidaysEditorClick(Sender: TObject);
|
|
procedure LookAndFeelChange(Sender: TObject);
|
|
private
|
|
FArrayBitmap: array [0..ColorsCount] of TBitmap;
|
|
protected
|
|
procedure OnNewEvent(AEvent: TcxSchedulerEvent; AIndex: Integer); override;
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
HolidaysDemoMainForm: THolidaysDemoMainForm;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
uses
|
|
cxClasses, cxSchedulerDialogs, Types;
|
|
|
|
const
|
|
GenerateCount = 500;
|
|
|
|
procedure THolidaysDemoMainForm.btnDeleteClick(Sender: TObject);
|
|
var
|
|
AHolidays: TcxSchedulerHolidays;
|
|
begin
|
|
AHolidays := Holidays;
|
|
cxShowHolidaysEditor(AHolidays, Scheduler.LookAndFeel);
|
|
end;
|
|
|
|
procedure THolidaysDemoMainForm.btnGenerateClick(Sender: TObject);
|
|
var
|
|
APos: TPoint;
|
|
begin
|
|
APos := btnGenerate.ClientToScreen(Point(0, 0));
|
|
PopupMenu.Popup(APos.X, APos.Y);
|
|
end;
|
|
|
|
procedure THolidaysDemoMainForm.FormCreate(Sender: TObject);
|
|
|
|
function CreateBitmap(AColor: TColor): TBitmap;
|
|
var
|
|
ADefaultSize: TSize;
|
|
begin
|
|
ADefaultSize.cx := 13;
|
|
ADefaultSize.cy := 13;
|
|
Result := TBitmap.Create;
|
|
with Result do
|
|
begin
|
|
Width := ADefaultSize.cx;
|
|
Height := ADefaultSize.cy;
|
|
Canvas.Brush.Style := bsSolid;
|
|
Canvas.Brush.Color := clBlack;
|
|
Canvas.FillRect(Rect(0, 0, ADefaultSize.cx, ADefaultSize.cy));
|
|
Canvas.Brush.Color := AColor;
|
|
Canvas.FillRect(Rect(1, 1, ADefaultSize.cx - 1, ADefaultSize.cy - 1));
|
|
end;
|
|
end;
|
|
var
|
|
I: Integer;
|
|
begin
|
|
inherited;
|
|
Scheduler.SelectDays(Date, Date, True);
|
|
for I := 0 to ColorsCount - 1 do
|
|
FArrayBitmap[I] := CreateBitmap(Colors[I]);
|
|
miRed.Bitmap := FArrayBitmap[0];
|
|
miYellow.Bitmap := FArrayBitmap[1];
|
|
miGreen.Bitmap := FArrayBitmap[2];
|
|
miBlue.Bitmap := FArrayBitmap[3];
|
|
Holidays.LoadFromFile('..\..\Data\Holidays.hol');
|
|
for I := 0 to Holidays.Locations.Count - 1 do
|
|
Holidays.Locations[I].Visible := True;
|
|
btnGenerate.LookAndFeel := Scheduler.LookAndFeel;
|
|
btnHolidaysEditor.LookAndFeel := Scheduler.LookAndFeel;
|
|
end;
|
|
|
|
procedure THolidaysDemoMainForm.SchedulerInitEventImages(
|
|
Sender: TcxCustomScheduler; AEvent: TcxSchedulerControlEvent;
|
|
AImages: TcxSchedulerEventImages);
|
|
var
|
|
AValue: Variant;
|
|
begin
|
|
AValue := AEvent.GetCustomFieldValueByName('IconIndex');
|
|
if VarIsNull(AValue) or VarIsEmpty(AValue) or (AValue = -1) then Exit;
|
|
AImages.Add(AValue, False);
|
|
end;
|
|
|
|
procedure THolidaysDemoMainForm.OnNewEvent(
|
|
AEvent: TcxSchedulerEvent; AIndex: Integer);
|
|
begin
|
|
AEvent.SetCustomFieldValueByName('IconIndex', AIndex);
|
|
AEvent.Reminder := (Trunc(AEvent.Start) >= Trunc(Now)) and Boolean(Random(2));
|
|
end;
|
|
|
|
|
|
procedure THolidaysDemoMainForm.SchedulerUnboundStorageRemindersOpenEvent(
|
|
Sender: TcxSchedulerReminders; AEvent: TcxSchedulerControlEvent);
|
|
begin
|
|
Scheduler.EditEventUsingDialog(AEvent);
|
|
end;
|
|
|
|
procedure THolidaysDemoMainForm.miShowHolidaysHintsClick(Sender: TObject);
|
|
begin
|
|
Scheduler.OptionsView.ShowHints := not Scheduler.OptionsView.ShowHints;
|
|
miShowHolidaysHints.Checked := Scheduler.OptionsView.ShowHints;
|
|
end;
|
|
|
|
procedure THolidaysDemoMainForm.miHighlightClick(Sender: TObject);
|
|
begin
|
|
Scheduler.DateNavigator.ShowDatesContainingHolidaysInColor := not Scheduler.DateNavigator.ShowDatesContainingHolidaysInColor;
|
|
miHighlight.Checked := Scheduler.DateNavigator.ShowDatesContainingHolidaysInColor;
|
|
miShowHolidaysHints.Enabled := miHighlight.Checked;
|
|
end;
|
|
|
|
procedure THolidaysDemoMainForm.miColorClick(Sender: TObject);
|
|
begin
|
|
Scheduler.DateNavigator.HolidayColor := Colors[(Sender as TMenuItem).Tag];
|
|
end;
|
|
|
|
procedure THolidaysDemoMainForm.FormDestroy(Sender: TObject);
|
|
var
|
|
I: Integer;
|
|
begin
|
|
for I := 0 to ColorsCount - 1 do
|
|
FArrayBitmap[I].Free;
|
|
inherited;
|
|
end;
|
|
|
|
procedure THolidaysDemoMainForm.Forall1Click(Sender: TObject);
|
|
var
|
|
I: Integer;
|
|
AArrayVariant: array of Variant;
|
|
begin
|
|
SetLength(AArrayVariant, SchedulerUnboundStorage.ResourceCount);
|
|
try
|
|
for I := 0 to SchedulerUnboundStorage.ResourceCount - 1 do
|
|
AArrayVariant[I] := SchedulerUnboundStorage.ResourceIDs[I];
|
|
SchedulerUnboundStorage.GenerateHolidayEvents(VarArrayOf(AArrayVariant));
|
|
finally
|
|
SetLength(AArrayVariant, 0);
|
|
end;
|
|
end;
|
|
|
|
procedure THolidaysDemoMainForm.OnllyFOXSPORTS11Click(Sender: TObject);
|
|
begin
|
|
SchedulerUnboundStorage.GenerateHolidayEvents('0');
|
|
end;
|
|
|
|
procedure THolidaysDemoMainForm.FOXFOOTYandFUEL1Click(Sender: TObject);
|
|
var
|
|
AResources: array [0..1] of Variant;
|
|
begin
|
|
AResources[0] := '3';
|
|
AResources[1] := '4';
|
|
SchedulerUnboundStorage.GenerateHolidayEvents(VarArrayOf(AResources));
|
|
end;
|
|
|
|
procedure THolidaysDemoMainForm.SchedulerShowDateHint(Sender: TObject;
|
|
const ADate: TDateTime; var AHintText: String; var AAllow: Boolean);
|
|
begin
|
|
if AHintText = '' then
|
|
AHintText := DateToStr(ADate);
|
|
AAllow := True;
|
|
end;
|
|
|
|
procedure THolidaysDemoMainForm.btnHolidaysEditorClick(Sender: TObject);
|
|
var
|
|
AHolidays: TcxSchedulerHolidays;
|
|
begin
|
|
AHolidays := Holidays;
|
|
cxShowHolidaysEditor(AHolidays, Scheduler.LookAndFeel);
|
|
end;
|
|
|
|
procedure THolidaysDemoMainForm.LookAndFeelChange(Sender: TObject);
|
|
begin
|
|
inherited LookAndFeelChange(Sender);
|
|
btnGenerate.LookAndFeel := Scheduler.LookAndFeel;
|
|
btnHolidaysEditor.LookAndFeel := Scheduler.LookAndFeel;
|
|
end;
|
|
|
|
end.
|