174 lines
6.5 KiB
ObjectPascal
174 lines
6.5 KiB
ObjectPascal
{********************************************************************}
|
|
{ }
|
|
{ Developer Express Visual Component Library }
|
|
{ ExpressScheduler }
|
|
{ }
|
|
{ Copyright (c) 2003-2009 Developer Express Inc. }
|
|
{ ALL RIGHTS RESERVED }
|
|
{ }
|
|
{ The entire contents of this file is protected by U.S. and }
|
|
{ International Copyright Laws. Unauthorized reproduction, }
|
|
{ reverse-engineering, and distribution of all or any portion of }
|
|
{ the code contained in this file is strictly prohibited and may }
|
|
{ result in severe civil and criminal penalties and will be }
|
|
{ prosecuted to the maximum extent possible under the law. }
|
|
{ }
|
|
{ RESTRICTIONS }
|
|
{ }
|
|
{ THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES }
|
|
{ (DCU, OBJ, DLL, ETC.) ARE CONFIDENTIAL AND PROPRIETARY TRADE }
|
|
{ SECRETS OF DEVELOPER EXPRESS INC. THE REGISTERED DEVELOPER IS }
|
|
{ LICENSED TO DISTRIBUTE THE EXPRESSSCHEDULER AND ALL ACCOMPANYING }
|
|
{ VCL CONTROLS AS PART OF AN EXECUTABLE PROGRAM ONLY. }
|
|
{ }
|
|
{ THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED }
|
|
{ FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE }
|
|
{ COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE }
|
|
{ AVAILABLE TO OTHER INDIVIDUALS WITHOUT EXPRESS WRITTEN CONSENT }
|
|
{ AND PERMISSION FROM DEVELOPER EXPRESS INC. }
|
|
{ }
|
|
{ CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON }
|
|
{ ADDITIONAL RESTRICTIONS. }
|
|
{ }
|
|
{********************************************************************}
|
|
|
|
unit cxSchedulerTaskDependencyEditor;
|
|
|
|
{$I cxVer.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, cxClasses, cxSchedulerStorage, cxGraphics, cxTextEdit, cxMaskEdit,
|
|
cxDropDownEdit, cxControls, cxContainer, cxEdit, cxLabel, Menus,
|
|
cxLookAndFeelPainters, StdCtrls, cxButtons, cxGroupBox;
|
|
|
|
type
|
|
TfmSchedulerTaskDependencyEditor = class(TForm)
|
|
lbFrom: TcxLabel;
|
|
lbTo: TcxLabel;
|
|
lbType: TcxLabel;
|
|
cbTypeRelation: TcxComboBox;
|
|
btnCancel: TcxButton;
|
|
btnOk: TcxButton;
|
|
btnDelete: TcxButton;
|
|
lbFromName: TcxLabel;
|
|
lbToName: TcxLabel;
|
|
cxGroupBox1: TcxGroupBox;
|
|
procedure cbTypeRelationPropertiesChange(Sender: TObject);
|
|
procedure btnDeleteClick(Sender: TObject);
|
|
procedure FormKeyDown(Sender: TObject; var Key: Word;
|
|
Shift: TShiftState);
|
|
private
|
|
FIsDelete: Boolean;
|
|
FEventFrom: TcxSchedulerEvent;
|
|
FEventTo: TcxSchedulerEvent;
|
|
FIsModified: Boolean;
|
|
FLinkRelation: TcxSchedulerEventRelation;
|
|
procedure CheckButtonState;
|
|
procedure SetLinkRelation(AValue: TcxSchedulerEventRelation);
|
|
protected
|
|
function GetEventStr(const AEvent: TcxSchedulerEvent): string; virtual;
|
|
procedure InitControls; virtual;
|
|
procedure SetCaptions;
|
|
public
|
|
function ShowModal: Integer; override;
|
|
|
|
property IsDelete: Boolean read FIsDelete;
|
|
property EventFrom: TcxSchedulerEvent read FEventFrom write FEventFrom;
|
|
property EventTo: TcxSchedulerEvent read FEventTo write FEventTo;
|
|
property IsModified: Boolean read FIsModified;
|
|
property LinkRelation: TcxSchedulerEventRelation read FLinkRelation write SetLinkRelation;
|
|
end;
|
|
|
|
TcxSchedulerTaskDependencyEditor = TfmSchedulerTaskDependencyEditor;
|
|
TcxSchedulerTaskDependencyEditorClass = class of TcxSchedulerTaskDependencyEditor;
|
|
|
|
implementation
|
|
|
|
uses
|
|
cxSchedulerStrs;
|
|
|
|
{$R *.dfm}
|
|
|
|
function TfmSchedulerTaskDependencyEditor.ShowModal: Integer;
|
|
begin
|
|
FIsModified := False;
|
|
InitControls;
|
|
FIsDelete := False;
|
|
Result := inherited ShowModal;
|
|
end;
|
|
|
|
function TfmSchedulerTaskDependencyEditor.GetEventStr(const AEvent: TcxSchedulerEvent): string;
|
|
begin
|
|
Result := AEvent.Caption;
|
|
end;
|
|
|
|
procedure TfmSchedulerTaskDependencyEditor.InitControls;
|
|
begin
|
|
with cbTypeRelation.ActiveProperties.Items do
|
|
begin
|
|
Clear;
|
|
Add(cxGetResourceString(@scxFinishToStartLong));
|
|
Add(cxGetResourceString(@scxStartToStartLong));
|
|
Add(cxGetResourceString(@scxFinishToFinishLong));
|
|
Add(cxGetResourceString(@scxStartToFinishLong));
|
|
end;
|
|
cbTypeRelation.ItemIndex := Integer(LinkRelation);
|
|
SetCaptions;
|
|
FIsModified := False;
|
|
CheckButtonState;
|
|
end;
|
|
|
|
procedure TfmSchedulerTaskDependencyEditor.SetCaptions;
|
|
begin
|
|
Caption := cxGetResourceString(@scxTaskDependencyEditorCaption);
|
|
btnOk.Caption := cxGetResourceString(@scxOk);
|
|
btnCancel.Caption := cxGetResourceString(@scxCancel);
|
|
btnDelete.Caption := cxGetResourceString(@scxDelete);
|
|
lbFrom.Caption := cxGetResourceString(@scxFrom);
|
|
lbTo.Caption := cxGetResourceString(@scxTo);
|
|
lbType.Caption := cxGetResourceString(@scxType);
|
|
lbFromName.Caption := cxGetStringAdjustedToWidth(lbFromName.Style.Font, GetEventStr(FEventFrom), lbFromName.ClientWidth);
|
|
lbToName.Caption := cxGetStringAdjustedToWidth(lbToName.Style.Font, GetEventStr(FEventTo), lbToName.ClientWidth);
|
|
end;
|
|
|
|
procedure TfmSchedulerTaskDependencyEditor.CheckButtonState;
|
|
begin
|
|
btnOk.Enabled := IsModified;
|
|
end;
|
|
|
|
procedure TfmSchedulerTaskDependencyEditor.SetLinkRelation(AValue: TcxSchedulerEventRelation);
|
|
begin
|
|
if AValue <> FLinkRelation then
|
|
begin
|
|
FLinkRelation := AValue;
|
|
FIsModified := True;
|
|
CheckButtonState;
|
|
end;
|
|
end;
|
|
|
|
procedure TfmSchedulerTaskDependencyEditor.cbTypeRelationPropertiesChange(Sender: TObject);
|
|
begin
|
|
LinkRelation := TcxSchedulerEventRelation(cbTypeRelation.ItemIndex);
|
|
CheckButtonState;
|
|
end;
|
|
|
|
procedure TfmSchedulerTaskDependencyEditor.btnDeleteClick(Sender: TObject);
|
|
begin
|
|
FIsDelete := True;
|
|
end;
|
|
|
|
procedure TfmSchedulerTaskDependencyEditor.FormKeyDown(Sender: TObject;
|
|
var Key: Word; Shift: TShiftState);
|
|
begin
|
|
if Key = VK_ESCAPE then
|
|
begin
|
|
ModalResult := mrCancel;
|
|
Key := 0;
|
|
end;
|
|
end;
|
|
|
|
end.
|