📄 jvdyncontrolenginevcl.pas
字号:
{-----------------------------------------------------------------------------
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/MPL-1.1.html
Software distributed under the License is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for
the specific language governing rights and limitations under the License.
The Initial Developer of the Original Code is Jens Fudickar [jens dott fudickar att oratool dott de]
All Rights Reserved.
Contributor(s):
Jens Fudickar [jens dott fudickar att oratool dott de]
You may retrieve the latest version of this file at the Project JEDI's JVCL home page,
located at http://jvcl.sourceforge.net
Known Issues:
-----------------------------------------------------------------------------}
// $Id: JvDynControlEngineVCL.pas,v 1.51 2005/03/09 07:24:57 marquardt Exp $
unit JvDynControlEngineVCL;
{$I jvcl.inc}
{$I crossplatform.inc}
interface
uses
{$IFDEF UNITVERSIONING}
JclUnitVersioning,
{$ENDIF UNITVERSIONING}
{$IFDEF MSWINDOWS}
ActnList, Graphics, ComCtrls, ImgList,
{$ENDIF MSWINDOWS}
{$IFDEF UNIX}
QActnList, QGraphics, QComCtrls, QImgList,
{$ENDIF UNIX}
Classes,
Controls, StdCtrls, ExtCtrls, Mask, Forms,
Buttons, Dialogs, FileCtrl, ExtDlgs, CheckLst,
JvDynControlEngine, JvDynControlEngineIntf;
type
TJvDynControlEngineVCL = class(TJvDynControlEngine)
public
procedure RegisterControls; override;
end;
TJvDynControlVCLMaskEdit = class(TMaskEdit, IUnknown,
IJvDynControl, IJvDynControlData, IJvDynControlReadOnly, IJvDynControlEdit)
public
procedure ControlSetDefaultProperties;
procedure ControlSetReadOnly(Value: Boolean);
procedure ControlSetCaption(const Value: string);
procedure ControlSetTabOrder(Value: Integer);
procedure ControlSetOnEnter(Value: TNotifyEvent);
procedure ControlSetOnExit(Value: TNotifyEvent);
procedure ControlSetOnChange(Value: TNotifyEvent);
procedure ControlSetOnClick(Value: TNotifyEvent);
procedure ControlSetHint(const Value: string);
procedure ControlSetValue(Value: Variant);
function ControlGetValue: Variant;
//IJvDynControlEdit
procedure ControlSetPasswordChar(Value: Char);
procedure ControlSetEditMask(const Value: string);
end;
TJvDynControlVCLButtonEdit = class(TPanel, IUnknown,
IJvDynControl, IJvDynControlData, IJvDynControlReadOnly, IJvDynControlEdit,
IJvDynControlButtonEdit, IJvDynControlButton)
private
FEditControl: TMaskEdit;
FButton: TBitBtn;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure ControlSetDefaultProperties;
procedure ControlSetReadOnly(Value: Boolean);
procedure ControlSetCaption(const Value: string);
procedure ControlSetTabOrder(Value: Integer);
procedure ControlSetOnEnter(Value: TNotifyEvent);
procedure ControlSetOnExit(Value: TNotifyEvent);
procedure ControlSetOnChange(Value: TNotifyEvent);
procedure ControlSetOnClick(Value: TNotifyEvent);
procedure ControlSetHint(const Value: string);
procedure ControlSetValue(Value: Variant);
function ControlGetValue: Variant;
//IJvDynControlEdit
procedure ControlSetPasswordChar(Value: Char);
procedure ControlSetEditMask(const Value: string);
//IJvDynControlButtonEdit
procedure ControlSetOnButtonClick(Value: TNotifyEvent);
procedure ControlSetButtonCaption(const Value: string);
//IJvDynControlButton
procedure ControlSetGlyph(Value: TBitmap);
procedure ControlSetNumGlyphs(Value: Integer);
procedure ControlSetLayout(Value: TButtonLayout);
procedure ControlSetDefault(Value: Boolean);
procedure ControlSetCancel(Value: Boolean);
end;
TJvDynControlVCLFileNameEdit = class(TPanel, IUnknown,
IJvDynControl, IJvDynControlData, IJvDynControlFileName,
IJvDynControlReadOnly)
private
FEditControl: TMaskEdit;
FButton: TBitBtn;
FInitialDir: string;
FFilterIndex: Integer;
FFilter: string;
FDialogOptions: TOpenOptions;
FDialogKind: TJvDynControlFileNameDialogKind;
FDialogTitle: string;
FDefaultExt: string;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure DefaultOnButtonClick(Sender: TObject);
procedure ControlSetDefaultProperties;
procedure ControlSetReadOnly(Value: Boolean);
procedure ControlSetCaption(const Value: string);
procedure ControlSetTabOrder(Value: Integer);
procedure ControlSetOnEnter(Value: TNotifyEvent);
procedure ControlSetOnExit(Value: TNotifyEvent);
procedure ControlSetOnChange(Value: TNotifyEvent);
procedure ControlSetOnClick(Value: TNotifyEvent);
procedure ControlSetHint(const Value: string);
procedure ControlSetValue(Value: Variant);
function ControlGetValue: Variant;
// IJvDynControlFileName
procedure ControlSetInitialDir(const Value: string);
procedure ControlSetDefaultExt(const Value: string);
procedure ControlSetDialogTitle(const Value: string);
procedure ControlSetDialogOptions(Value: TOpenOptions);
procedure ControlSetFilter(const Value: string);
procedure ControlSetFilterIndex(Value: Integer);
procedure ControlSetDialogKind(Value: TJvDynControlFileNameDialogKind);
end;
TJvDynControlVCLDirectoryEdit = class(TPanel, IUnknown,
IJvDynControl, IJvDynControlData, IJvDynControlDirectory,
IJvDynControlReadOnly)
private
FEditControl: TMaskEdit;
FButton: TBitBtn;
FInitialDir: string;
{$IFDEF VCL}
FDialogOptions: TSelectDirOpts;
{$ENDIF VCL}
FDialogTitle: string;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure DefaultOnButtonClick(Sender: TObject);
procedure ControlSetDefaultProperties;
procedure ControlSetReadOnly(Value: Boolean);
procedure ControlSetCaption(const Value: string);
procedure ControlSetTabOrder(Value: Integer);
procedure ControlSetOnEnter(Value: TNotifyEvent);
procedure ControlSetOnExit(Value: TNotifyEvent);
procedure ControlSetOnChange(Value: TNotifyEvent);
procedure ControlSetOnClick(Value: TNotifyEvent);
procedure ControlSetHint(const Value: string);
procedure ControlSetValue(Value: Variant);
function ControlGetValue: Variant;
// IJvDynControlDirectory
procedure ControlSetInitialDir(const Value: string);
procedure ControlSetDialogTitle(const Value: string);
{$IFDEF VCL}
procedure ControlSetDialogOptions(Value: TSelectDirOpts);
{$ENDIF VCL}
end;
{$IFDEF VCL}
TJvDynControlVCLDateTimeEdit = class(TPanel, IUnknown,
IJvDynControl, IJvDynControlData, IJvDynControlDate)
private
FDatePicker: TDateTimePicker;
FTimePicker: TDateTimePicker;
protected
procedure ControlResize(Sender: TObject);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure ControlSetDefaultProperties;
procedure ControlSetCaption(const Value: string);
procedure ControlSetTabOrder(Value: Integer);
procedure ControlSetOnEnter(Value: TNotifyEvent);
procedure ControlSetOnExit(Value: TNotifyEvent);
procedure ControlSetOnChange(Value: TNotifyEvent);
procedure ControlSetOnClick(Value: TNotifyEvent);
procedure ControlSetHint(const Value: string);
procedure ControlSetValue(Value: Variant);
function ControlGetValue: Variant;
// IJvDynControlDate
procedure ControlSetMinDate(Value: TDateTime);
procedure ControlSetMaxDate(Value: TDateTime);
procedure ControlSetFormat(const Value: string);
end;
TJvDynControlVCLDateEdit = class(TDateTimePicker, IUnknown,
IJvDynControl, IJvDynControlData, IJvDynControlDate)
public
procedure ControlSetDefaultProperties;
procedure ControlSetCaption(const Value: string);
procedure ControlSetTabOrder(Value: Integer);
procedure ControlSetOnEnter(Value: TNotifyEvent);
procedure ControlSetOnExit(Value: TNotifyEvent);
procedure ControlSetOnChange(Value: TNotifyEvent);
procedure ControlSetOnClick(Value: TNotifyEvent);
procedure ControlSetHint(const Value: string);
procedure ControlSetValue(Value: Variant);
function ControlGetValue: Variant;
// IJvDynControlDate
procedure ControlSetMinDate(Value: TDateTime);
procedure ControlSetMaxDate(Value: TDateTime);
procedure ControlSetFormat(const Value: string);
end;
TJvDynControlVCLTimeEdit = class(TDateTimePicker, IUnknown,
IJvDynControl, IJvDynControlData, IJvDynControlTime)
public
procedure ControlSetDefaultProperties;
procedure ControlSetCaption(const Value: string);
procedure ControlSetTabOrder(Value: Integer);
procedure ControlSetOnEnter(Value: TNotifyEvent);
procedure ControlSetOnExit(Value: TNotifyEvent);
procedure ControlSetOnChange(Value: TNotifyEvent);
procedure ControlSetOnClick(Value: TNotifyEvent);
procedure ControlSetHint(const Value: string);
procedure ControlSetValue(Value: Variant);
function ControlGetValue: Variant;
procedure ControlSetFormat(const Value: string);
end;
{$ENDIF VCL}
TJvDynControlVCLCheckBox = class(TCheckBox, IUnknown,
IJvDynControl, IJvDynControlData, IJvDynControlCheckBox)
public
procedure ControlSetDefaultProperties;
procedure ControlSetCaption(const Value: string);
procedure ControlSetTabOrder(Value: Integer);
procedure ControlSetOnEnter(Value: TNotifyEvent);
procedure ControlSetOnExit(Value: TNotifyEvent);
procedure ControlSetOnChange(Value: TNotifyEvent);
procedure ControlSetOnClick(Value: TNotifyEvent);
procedure ControlSetHint(const Value: string);
procedure ControlSetValue(Value: Variant);
function ControlGetValue: Variant;
//IJvDynControlCheckBox
procedure ControlSetAllowGrayed(Value: Boolean);
procedure ControlSetState(Value: TCheckBoxState);
function ControlGetState: TCheckBoxState;
end;
TJvDynControlVCLMemo = class(TMemo, IUnknown,
IJvDynControl, IJvDynControlData, IJvDynControlItems, IJvDynControlMemo,
IJvDynControlReadOnly)
public
procedure ControlSetDefaultProperties;
procedure ControlSetReadOnly(Value: Boolean);
procedure ControlSetCaption(const Value: string);
procedure ControlSetTabOrder(Value: Integer);
procedure ControlSetOnEnter(Value: TNotifyEvent);
procedure ControlSetOnExit(Value: TNotifyEvent);
procedure ControlSetOnChange(Value: TNotifyEvent);
procedure ControlSetOnClick(Value: TNotifyEvent);
procedure ControlSetHint(const Value: string);
procedure ControlSetValue(Value: Variant);
function ControlGetValue: Variant;
procedure ControlSetSorted(Value: Boolean);
procedure ControlSetItems(Value: TStrings);
function ControlGetItems: TStrings;
procedure ControlSetWantTabs(Value: Boolean);
procedure ControlSetWantReturns(Value: Boolean);
procedure ControlSetWordWrap(Value: Boolean);
procedure ControlSetScrollBars(Value: TScrollStyle);
end;
TJvDynControlVCLRichEdit = class(TRichEdit, IUnknown,
IJvDynControl, IJvDynControlData, IJvDynControlItems, IJvDynControlMemo,
IJvDynControlReadOnly)
public
procedure ControlSetDefaultProperties;
procedure ControlSetReadOnly(Value: Boolean);
procedure ControlSetCaption(const Value: string);
procedure ControlSetTabOrder(Value: Integer);
procedure ControlSetOnEnter(Value: TNotifyEvent);
procedure ControlSetOnExit(Value: TNotifyEvent);
procedure ControlSetOnChange(Value: TNotifyEvent);
procedure ControlSetOnClick(Value: TNotifyEvent);
procedure ControlSetHint(const Value: string);
procedure ControlSetValue(Value: Variant);
function ControlGetValue: Variant;
procedure ControlSetSorted(Value: Boolean);
procedure ControlSetItems(Value: TStrings);
function ControlGetItems: TStrings;
procedure ControlSetWantTabs(Value: Boolean);
procedure ControlSetWantReturns(Value: Boolean);
procedure ControlSetWordWrap(Value: Boolean);
procedure ControlSetScrollBars(Value: TScrollStyle);
end;
TJvDynControlVCLRadioGroup = class(TRadioGroup, IUnknown,
IJvDynControl, IJvDynControlData, IJvDynControlItems,
IJvDynControlRadioGroup)
public
procedure ControlSetDefaultProperties;
procedure ControlSetCaption(const Value: string);
procedure ControlSetTabOrder(Value: Integer);
procedure ControlSetOnEnter(Value: TNotifyEvent);
procedure ControlSetOnExit(Value: TNotifyEvent);
procedure ControlSetOnChange(Value: TNotifyEvent);
procedure ControlSetOnClick(Value: TNotifyEvent);
procedure ControlSetHint(const Value: string);
procedure ControlSetValue(Value: Variant);
function ControlGetValue: Variant;
procedure ControlSetSorted(Value: Boolean);
procedure ControlSetItems(Value: TStrings);
function ControlGetItems: TStrings;
procedure ControlSetColumns(Value: Integer);
end;
TJvDynControlVCLListBox = class(TListBox, IUnknown,
IJvDynControl, IJvDynControlData, IJvDynControlItems, IJvDynControlDblClick)
public
procedure ControlSetDefaultProperties;
procedure ControlSetCaption(const Value: string);
procedure ControlSetTabOrder(Value: Integer);
procedure ControlSetOnEnter(Value: TNotifyEvent);
procedure ControlSetOnExit(Value: TNotifyEvent);
procedure ControlSetOnChange(Value: TNotifyEvent);
procedure ControlSetOnClick(Value: TNotifyEvent);
procedure ControlSetHint(const Value: string);
procedure ControlSetValue(Value: Variant);
function ControlGetValue: Variant;
procedure ControlSetSorted(Value: Boolean);
procedure ControlSetItems(Value: TStrings);
function ControlGetItems: TStrings;
procedure ControlSetOnDblClick(Value: TNotifyEvent);
end;
TJvDynControlVCLCheckListBox = class(TCheckListBox, IUnknown,
IJvDynControl, IJvDynControlData, IJvDynControlItems, IJvDynControlDblClick,
IJvDynControlCheckListBox)
public
procedure ControlSetDefaultProperties;
procedure ControlSetCaption(const Value: string);
procedure ControlSetTabOrder(Value: Integer);
procedure ControlSetOnEnter(Value: TNotifyEvent);
procedure ControlSetOnExit(Value: TNotifyEvent);
procedure ControlSetOnChange(Value: TNotifyEvent);
procedure ControlSetOnClick(Value: TNotifyEvent);
procedure ControlSetHint(const Value: string);
procedure ControlSetValue(Value: Variant);
function ControlGetValue: Variant;
procedure ControlSetSorted(Value: Boolean);
procedure ControlSetItems(Value: TStrings);
function ControlGetItems: TStrings;
procedure ControlSetOnDblClick(Value: TNotifyEvent);
//IJvDynControlCheckListBox = interface
procedure ControlSetAllowGrayed(Value: Boolean);
procedure ControlSetChecked(Index: Integer; Value: Boolean);
procedure ControlSetItemEnabled(Index: Integer; Value: Boolean);
procedure ControlSetState(Index: Integer; Value: TCheckBoxState);
function ControlGetChecked(Index: Integer): Boolean;
function ControlGetItemEnabled(Index: Integer): Boolean;
function ControlGetState(Index: Integer): TCheckBoxState;
procedure ControlSetHeader(Index: Integer; Value: Boolean);
function ControlGetHeader(Index: Integer): Boolean;
end;
TJvDynControlVCLComboBox = class(TComboBox, IUnknown,
IJvDynControl, IJvDynControlData, IJvDynControlItems, IJvDynControlComboBox)
public
procedure ControlSetDefaultProperties;
procedure ControlSetCaption(const Value: string);
procedure ControlSetTabOrder(Value: Integer);
procedure ControlSetOnEnter(Value: TNotifyEvent);
procedure ControlSetOnExit(Value: TNotifyEvent);
procedure ControlSetOnChange(Value: TNotifyEvent);
procedure ControlSetOnClick(Value: TNotifyEvent);
procedure ControlSetHint(const Value: string);
procedure ControlSetValue(Value: Variant);
function ControlGetValue: Variant;
procedure ControlSetSorted(Value: Boolean);
procedure ControlSetItems(Value: TStrings);
function ControlGetItems: TStrings;
procedure ControlSetNewEntriesAllowed(Value: Boolean);
end;
TJvDynControlVCLGroupBox = class(TGroupBox, IUnknown,
IJvDynControl)
public
procedure ControlSetDefaultProperties;
procedure ControlSetCaption(const Value: string);
procedure ControlSetTabOrder(Value: Integer);
procedure ControlSetOnEnter(Value: TNotifyEvent);
procedure ControlSetOnExit(Value: TNotifyEvent);
procedure ControlSetOnClick(Value: TNotifyEvent);
procedure ControlSetHint(const Value: string);
end;
TJvDynControlVCLPanel = class(TPanel, IUnknown,
IJvDynControl, IJvDynControlPanel)
public
procedure ControlSetDefaultProperties;
procedure ControlSetCaption(const Value: string);
procedure ControlSetTabOrder(Value: Integer);
procedure ControlSetOnEnter(Value: TNotifyEvent);
procedure ControlSetOnExit(Value: TNotifyEvent);
procedure ControlSetOnClick(Value: TNotifyEvent);
procedure ControlSetHint(const Value: string);
procedure ControlSetBorder(ABevelInner: TPanelBevel; ABevelOuter: TPanelBevel;
ABevelWidth: Integer; ABorderStyle: TBorderStyle; ABorderWidth: Integer);
end;
TJvDynControlVCLImage = class(TImage, IUnknown,
IJvDynControl, IJvDynControlImage)
public
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -