You've already forked lazarus-ccr
415 lines
14 KiB
ObjectPascal
415 lines
14 KiB
ObjectPascal
![]() |
{*********************************************************}
|
||
|
{* VPREG.PAS 1.03 *}
|
||
|
{*********************************************************}
|
||
|
|
||
|
{* ***** BEGIN LICENSE BLOCK ***** *}
|
||
|
{* Version: MPL 1.1 *}
|
||
|
{* *}
|
||
|
{* The contents of this file are subject to the Mozilla Public License *}
|
||
|
{* Version 1.1 (the "License"); you may not use this file except in *}
|
||
|
{* compliance with the License. You may obtain a copy of the License at *}
|
||
|
{* http://www.mozilla.org/MPL/ *}
|
||
|
{* *}
|
||
|
{* Software distributed under the License is distributed on an "AS IS" basis, *}
|
||
|
{* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License *}
|
||
|
{* for the specific language governing rights and limitations under the *}
|
||
|
{* License. *}
|
||
|
{* *}
|
||
|
{* The Original Code is TurboPower Visual PlanIt *}
|
||
|
{* *}
|
||
|
{* The Initial Developer of the Original Code is TurboPower Software *}
|
||
|
{* *}
|
||
|
{* Portions created by TurboPower Software Inc. are Copyright (C) 2002 *}
|
||
|
{* TurboPower Software Inc. All Rights Reserved. *}
|
||
|
{* *}
|
||
|
{* Contributor(s): *}
|
||
|
{* *}
|
||
|
{* ***** END LICENSE BLOCK ***** *}
|
||
|
|
||
|
{$I Vp.INC} { Compiler Version Defines }
|
||
|
{$IFNDEF LCL}
|
||
|
{$R VpREG.RES} { Palette Glyphs }
|
||
|
{$ENDIF}
|
||
|
|
||
|
unit VpReg;
|
||
|
{Registration unit for the Visual PlanIt design-time interface}
|
||
|
|
||
|
interface
|
||
|
|
||
|
uses
|
||
|
{$IFDEF LCL}
|
||
|
LMessages,LCLProc,LCLType,LCLIntf,
|
||
|
{$ELSE}
|
||
|
Windows,
|
||
|
{$ENDIF}
|
||
|
Dialogs,
|
||
|
{$IFDEF VERSION6}
|
||
|
{$IFNDEF LCL}
|
||
|
DesignIntf,
|
||
|
DesignEditors,
|
||
|
VCLEditors,
|
||
|
{$ELSE}
|
||
|
PropEdits,
|
||
|
LazarusPackageIntf,
|
||
|
FieldsEditor,
|
||
|
ComponentEditors,
|
||
|
{$ENDIF}
|
||
|
{$ELSE}
|
||
|
DsgnIntf,
|
||
|
{$ENDIF}
|
||
|
Classes,
|
||
|
Controls,
|
||
|
TypInfo,
|
||
|
Forms,
|
||
|
SysUtils,
|
||
|
VpDatePropEdit;
|
||
|
|
||
|
type
|
||
|
{TDBStringProperty}
|
||
|
TDBStringProperty = class(TStringProperty)
|
||
|
public
|
||
|
function GetAttributes: TPropertyAttributes; override;
|
||
|
procedure GetValueList(List: TStrings); virtual;
|
||
|
procedure GetValues(Proc: TGetStrProc); override;
|
||
|
end;
|
||
|
|
||
|
{TAliasNameProperty}
|
||
|
TAliasNameProperty = class(TDBStringProperty)
|
||
|
public
|
||
|
procedure GetValueList(List: TStrings); override;
|
||
|
end;
|
||
|
|
||
|
{TDriverNameProperty}
|
||
|
TDriverNameProperty = class(TDBStringProperty)
|
||
|
public
|
||
|
procedure GetValueList(List: TStrings); override;
|
||
|
end;
|
||
|
|
||
|
{ TDataStoreProperty }
|
||
|
TDataStoreProperty = class(TComponentProperty)
|
||
|
private
|
||
|
FCheckProc: TGetStrProc;
|
||
|
procedure CheckComponent(const Value: string);
|
||
|
public
|
||
|
procedure GetValues(Proc: TGetStrProc); override;
|
||
|
end;
|
||
|
|
||
|
TVpDateProperty = class (TFloatProperty)
|
||
|
public
|
||
|
procedure Edit; override;
|
||
|
function GetAttributes : TPropertyAttributes; override;
|
||
|
function GetValue : string; override;
|
||
|
procedure SetValue (const Value : string); override;
|
||
|
end;
|
||
|
|
||
|
TVpGenericFileNameProperty = class (TStringProperty)
|
||
|
protected
|
||
|
public
|
||
|
function GetAttributes: TPropertyAttributes; override;
|
||
|
procedure Edit; override;
|
||
|
end;
|
||
|
|
||
|
TVpLocalizeFileNameProperty = class (TVpGenericFileNameProperty)
|
||
|
end;
|
||
|
|
||
|
procedure Register;
|
||
|
|
||
|
implementation
|
||
|
|
||
|
uses
|
||
|
// DbTables, { VCL - BDE runtime unit }
|
||
|
VpWavPE, { Wav File Finder - Property Editor }
|
||
|
|
||
|
{ Component Units }
|
||
|
VpBase, { Base classes for Vp }
|
||
|
VpClock, { Clock Component }
|
||
|
VpDlg, { Dialog components ancestor }
|
||
|
VpLEDLabel, { LEDLabel Component }
|
||
|
VpCalendar, { Calendar Component }
|
||
|
VpNavBar, { Navigation Bar Component }
|
||
|
VpBaseDS, { Base DataStore Classes }
|
||
|
// VpBDEDS, { DataStore Component }
|
||
|
VpDayView, { Day View Component }
|
||
|
VpWeekView, { Week View Component }
|
||
|
VpMonthView, { Month View Component }
|
||
|
VpContactGrid, { ContactGrid Component }
|
||
|
VpDateEdit, { DateEdit Component }
|
||
|
VpTaskList, { Task List Component }
|
||
|
// VpFlxDS, { Flexible DataStore }
|
||
|
VpContactEditDlg, { Contact Edit Dialog Component }
|
||
|
VpTaskEditDlg, { Task Edit Dialog Component }
|
||
|
VpEvntEditDlg, { Event Edit Dialog Component }
|
||
|
VpAlarmDlg, { Alarm Notification Dialog }
|
||
|
VpResEditDlg, { Resource Edit Dialog }
|
||
|
VpPrtPrv, { Print Preview Component }
|
||
|
VpPrtFmtCBox, { Print Format Combo Box Component }
|
||
|
VpPrtPrvDlg, { Print Preview Dialog }
|
||
|
VpPrtFmtDlg, { Print Format Dialog }
|
||
|
VpPrtFmtEd, { Print Format Property editor }
|
||
|
VpContactButtons, { - New contact grid button bar component }
|
||
|
{ Designtime Interfaces (Property and Component Editors) }
|
||
|
VpAbout, { About form for the About property editor }
|
||
|
VpNabEd; { component editor for the VpNavBar }
|
||
|
// VpFlxDSEd1; { Field mapper component editor for the FlexDS }
|
||
|
|
||
|
|
||
|
(*****************************************************************************)
|
||
|
{ TAliasNameProperty }
|
||
|
|
||
|
procedure TAliasNameProperty.GetValueList(List: TStrings);
|
||
|
begin
|
||
|
{$IFNDEF LCL}
|
||
|
(GetComponent(0) as TVpBDEDataStore).Database.Session.GetAliasNames(List);
|
||
|
{$ENDIF}
|
||
|
end;
|
||
|
|
||
|
(*****************************************************************************)
|
||
|
{ TDBStringProperty }
|
||
|
|
||
|
function TDBStringProperty.GetAttributes: TPropertyAttributes;
|
||
|
begin
|
||
|
Result := [paValueList, paSortList, paMultiSelect];
|
||
|
end;
|
||
|
{=====}
|
||
|
|
||
|
procedure TDBStringProperty.GetValueList(List: TStrings);
|
||
|
begin
|
||
|
end;
|
||
|
{=====}
|
||
|
|
||
|
procedure TDBStringProperty.GetValues(Proc: TGetStrProc);
|
||
|
var
|
||
|
I: Integer;
|
||
|
Values: TStringList;
|
||
|
begin
|
||
|
Values := TStringList.Create;
|
||
|
try
|
||
|
GetValueList(Values);
|
||
|
for I := 0 to Values.Count - 1 do Proc(Values[I]);
|
||
|
finally
|
||
|
Values.Free;
|
||
|
end;
|
||
|
end;
|
||
|
{=====}
|
||
|
|
||
|
(*****************************************************************************)
|
||
|
{ TDriverNameProperty }
|
||
|
|
||
|
procedure TDriverNameProperty.GetValueList(List: TStrings);
|
||
|
begin
|
||
|
{$IFNDEF LCL}
|
||
|
(GetComponent(0) as TVpBDEDataStore).Database.Session.GetDriverNames(List);
|
||
|
{$ENDIF}
|
||
|
end;
|
||
|
{=====}
|
||
|
|
||
|
(*****************************************************************************)
|
||
|
{ TDataStoreProperty }
|
||
|
procedure TDataStoreProperty.CheckComponent(const Value: string);
|
||
|
var
|
||
|
J: Integer;
|
||
|
DataStore: TVpCustomDataStore;
|
||
|
begin
|
||
|
{$IFNDEF LCL}
|
||
|
DataStore := TVpCustomDataStore(Designer.GetComponent(Value));
|
||
|
for J := 0 to PropCount - 1 do
|
||
|
if TVpDayView(GetComponent(J)).DataStore = DataStore then
|
||
|
Exit;
|
||
|
FCheckProc(Value);
|
||
|
{$ENDIF}
|
||
|
end;
|
||
|
|
||
|
procedure TDataStoreProperty.GetValues(Proc: TGetStrProc);
|
||
|
begin
|
||
|
FCheckProc := Proc;
|
||
|
inherited GetValues(CheckComponent);
|
||
|
end;
|
||
|
{=====}
|
||
|
|
||
|
(*****************************************************************************)
|
||
|
{ TDataStoreProperty }
|
||
|
procedure TVpDateProperty.Edit;
|
||
|
|
||
|
var
|
||
|
frmDatePropertyEditor : TfrmDatePropertyEditor;
|
||
|
|
||
|
begin
|
||
|
frmDatePropertyEditor := TfrmDatePropertyEditor.Create (Application);
|
||
|
try
|
||
|
frmDatePropertyEditor.VpCalendar1.Date := GetFloatValue;
|
||
|
if frmDatePropertyEditor.Execute then
|
||
|
SetFloatValue (Trunc (frmDatePropertyEditor.VpCalendar1.Date));
|
||
|
finally
|
||
|
frmDatePropertyEditor.Free;
|
||
|
end;
|
||
|
end;
|
||
|
{=====}
|
||
|
|
||
|
(*****************************************************************************)
|
||
|
{ TVpDateProperty }
|
||
|
function TVpDateProperty.GetAttributes : TPropertyAttributes;
|
||
|
begin
|
||
|
Result := [paDialog, paMultiSelect];
|
||
|
end;
|
||
|
{=====}
|
||
|
|
||
|
function TVpDateProperty.GetValue : string;
|
||
|
begin
|
||
|
Result := FormatDateTime ('ddddd', GetFloatValue);
|
||
|
end;
|
||
|
{=====}
|
||
|
|
||
|
procedure TVpDateProperty.SetValue (const Value : string);
|
||
|
begin
|
||
|
SetFloatValue (StrToDate (Value));
|
||
|
end;
|
||
|
{=====}
|
||
|
|
||
|
(*****************************************************************************)
|
||
|
{ TVpGenericFileNameProperty }
|
||
|
function TVpGenericFileNameProperty.GetAttributes: TPropertyAttributes;
|
||
|
begin
|
||
|
Result := [paDialog];
|
||
|
end;
|
||
|
|
||
|
procedure TVpGenericFileNameProperty.Edit;
|
||
|
const
|
||
|
VpRegLocalizeFilter = 'Localization Files (*.XML)|*.XML';
|
||
|
VpRegDefFilter = 'All Files (*.*)|*.*';
|
||
|
|
||
|
var
|
||
|
Dlg : TOpenDialog;
|
||
|
Filter : string;
|
||
|
|
||
|
begin
|
||
|
Filter := '';
|
||
|
if Self is TVpLocalizeFileNameProperty then
|
||
|
Filter := VpRegLocalizeFilter;
|
||
|
|
||
|
if Filter = '' then
|
||
|
Filter := VpRegDefFilter
|
||
|
else
|
||
|
Filter := Filter + '|' + VpRegDefFilter;
|
||
|
|
||
|
Dlg := TOpenDialog.Create (Application);
|
||
|
try
|
||
|
Dlg.DefaultExt := '*.*';
|
||
|
Dlg.Filter := Filter;
|
||
|
Dlg.FilterIndex := 0;
|
||
|
Dlg.Options := [ofHideReadOnly];
|
||
|
{ Dlg.FileName := Value;
|
||
|
if Dlg.Execute then
|
||
|
Value := Dlg.FileName; }
|
||
|
finally
|
||
|
Dlg.Free;
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
{*** component registration ***}
|
||
|
procedure Register;
|
||
|
begin
|
||
|
{ register component editors }
|
||
|
RegisterComponentEditor(TVpNavBar, TVpNavBarEditor);
|
||
|
RegisterComponentEditor(TVpControlLink, TVpPrtFmtPropertyEditor);
|
||
|
{$IFNDEF LCL}
|
||
|
RegisterComponentEditor(TVpFlexDataStore, TVpFlexDSEditor);
|
||
|
{$ENDIF}
|
||
|
|
||
|
{ register the About Box property editor for the Version properties }
|
||
|
RegisterPropertyEditor(TypeInfo(string), TVpCollectionItem,
|
||
|
'Version', TVpAboutProperty);
|
||
|
RegisterPropertyEditor(TypeInfo(string), TVpComponent,
|
||
|
'Version', TVpAboutProperty);
|
||
|
RegisterPropertyEditor(TypeInfo(string), TVpNavBar,
|
||
|
'Version', TVpAboutProperty);
|
||
|
RegisterPropertyEditor(TypeInfo(string), TVpCalendar,
|
||
|
'Version', TVpAboutProperty);
|
||
|
RegisterPropertyEditor(TypeInfo(string), TVpLEDLabel,
|
||
|
'Version', TVpAboutProperty);
|
||
|
RegisterPropertyEditor(TypeInfo(string), TVpClock,
|
||
|
'Version', TVpAboutProperty);
|
||
|
RegisterPropertyEditor(TypeInfo(string), TVpResourceCombo,
|
||
|
'Version', TVpAboutProperty);
|
||
|
RegisterPropertyEditor(TypeInfo(string), TVpCustomControl,
|
||
|
'Version', TVpAboutProperty);
|
||
|
RegisterPropertyEditor(TypeInfo(string), TVpControlLink,
|
||
|
'Version', TVpAboutProperty);
|
||
|
{$IFNDEF LCL}
|
||
|
RegisterPropertyEditor(TypeInfo(string), TVpBDEDataStore,
|
||
|
'Version', TVpAboutProperty);
|
||
|
RegisterPropertyEditor(TypeInfo(string), TVpFlexDataStore,
|
||
|
'Version', TVpAboutProperty);
|
||
|
{$ENDIF}
|
||
|
RegisterPropertyEditor(TypeInfo(string), TVpDateEdit,
|
||
|
'Version', TVpAboutProperty);
|
||
|
RegisterPropertyEditor(TypeInfo(string), TVpBaseDialog,
|
||
|
'Version', TVpAboutProperty);
|
||
|
RegisterPropertyEditor(TypeInfo(string), TVpPrintFormatComboBox,
|
||
|
'Version', TVpAboutProperty);
|
||
|
|
||
|
{register the BDE Alias and Driver properties }
|
||
|
{$IFNDEF LCL}
|
||
|
RegisterPropertyEditor(TypeInfo(string), TVpBDEDataStore,
|
||
|
'AliasName', TAliasNameProperty);
|
||
|
RegisterPropertyEditor(TypeInfo(string), TVpBDEDataStore,
|
||
|
'DriverName', TDriverNameProperty);
|
||
|
{$ENDIF}
|
||
|
{register the DayView properties }
|
||
|
RegisterPropertyEditor(TypeInfo(TVpCustomDataStore), TVpDayView,
|
||
|
'DataStore', TDataStoreProperty);
|
||
|
|
||
|
{register the property editor for the DataStore's DefaultAlarmWav }
|
||
|
RegisterPropertyEditor(TypeInfo(string), TVpCustomDataStore,
|
||
|
'DefaultEventSound', TWavFileProperty);
|
||
|
|
||
|
RegisterPropertyEditor (TypeInfo (TDateTime),
|
||
|
TVpPrintPreview,
|
||
|
'StartDate',
|
||
|
TVpDateProperty);
|
||
|
RegisterPropertyEditor (TypeInfo (TDateTime),
|
||
|
TVpPrintPreview,
|
||
|
'EndDate',
|
||
|
TVpDateProperty);
|
||
|
RegisterPropertyEditor (TypeInfo (TDateTime),
|
||
|
TVpPrintPreviewDialog,
|
||
|
'StartDate',
|
||
|
TVpDateProperty);
|
||
|
RegisterPropertyEditor (TypeInfo (TDateTime),
|
||
|
TVpPrintPreviewDialog,
|
||
|
'EndDate',
|
||
|
TVpDateProperty);
|
||
|
|
||
|
RegisterPropertyEditor (TypeInfo (string), TVpControlLink,
|
||
|
'LocalizationFile', TVpLocalizeFileNameProperty);
|
||
|
|
||
|
{register Visual PlanIt components with the IDE}
|
||
|
RegisterComponents('Visual PlanIt', [
|
||
|
TVpLEDLabel,
|
||
|
TVpClock,
|
||
|
TVpCalendar,
|
||
|
TVpNavBar,
|
||
|
{$IFNDEF LCL}
|
||
|
TVpFlexDataStore,
|
||
|
TVpBDEDataStore,
|
||
|
{$ENDIF}
|
||
|
TVpControlLink,
|
||
|
TVpPrintPreview,
|
||
|
TVpPrintFormatComboBox,
|
||
|
TVpDateEdit,
|
||
|
TVpResourceCombo,
|
||
|
TVpDayView,
|
||
|
TVpWeekView,
|
||
|
TVpMonthView,
|
||
|
TVpContactGrid,
|
||
|
TVpContactButtonBar,
|
||
|
TVpTaskList,
|
||
|
TVpNotificationDialog,
|
||
|
TVpResourceEditDialog,
|
||
|
TVpEventEditDialog,
|
||
|
TVpContactEditDialog,
|
||
|
TVpTaskEditDialog,
|
||
|
TVpPrintFormatEditDialog,
|
||
|
TVpPrintPreviewDialog]);
|
||
|
end;
|
||
|
end.
|