📄 jvqparameterlist.pas
字号:
procedure OnExitParameterControl(Sender: TObject);
procedure OnChangeParameterControl(Sender: TObject);
procedure OnClickParameterControl(Sender: TObject);
published
property ArrangeSettings: TJvArrangeSettings read FArrangeSettings write SetArrangeSettings;
property Messages: TJvParameterListMessages read FMessages;
{AppStoragePath for the Parameter-Storage using AppStorage}
property AppStoragePath: string read GetAppStoragePath write SetAppStoragePath;
{Width of the dialog. When width = 0, then the width will be calculated }
property Width: Integer read FWidth write FWidth;
{Height of the dialog. When height = 0, then the Height will be calculated }
property Height: Integer read FHeight write FHeight;
{Maximum ClientWidth of the Dialog}
property MaxWidth: Integer read FMaxWidth write FMaxWidth default 400;
{Maximum ClientHeight of the Dialog}
property MaxHeight: Integer read FMaxHeight write FMaxHeight default 600;
property DefaultParameterHeight: Integer read FDefaultParameterHeight write FDefaultParameterHeight default 0;
property DefaultParameterWidth: Integer read FDefaultParameterWidth write FDefaultParameterWidth default 0;
property DefaultParameterLabelWidth: Integer read FDefaultParameterLabelWidth write FDefaultParameterLabelWidth default 0;
property OkButtonVisible: Boolean read FOkButtonVisible write FOkButtonVisible;
property CancelButtonVisible: Boolean read FCancelButtonVisible write FCancelButtonVisible;
property HistoryEnabled: Boolean read FHistoryEnabled write FHistoryEnabled;
property LastHistoryName: string read FLastHistoryName write FLastHistoryName;
property AppStorage: TJvCustomAppStorage read GetJvAppStorage write SetJvAppStorage;
end;
TJvParameterListSelectList = class(TJvAppStorageSelectList)
private
FParameterList: TJvParameterList;
protected
function GetDynControlEngine: TJvDynControlEngine; override;
function GetParameterList: TJvParameterList; virtual;
procedure SetParameterList(Value: TJvParameterList); virtual;
function GetAppStorage: TJvCustomAppStorage; override;
procedure SetAppStorage(Value: TJvCustomAppStorage); override;
public
procedure Notification(AComponent: TComponent; Operation: TOperation); override;
procedure RestoreParameterList(const ACaption: string = '');
procedure SaveParameterList(const ACaption: string = '');
published
property ParameterList: TJvParameterList read GetParameterList write SetParameterList;
end;
TJvParameterListPropertyStore = class(TJvCustomPropertyStore)
private
FParameterList: TJvParameterList;
protected
procedure LoadData; override;
procedure StoreData; override;
public
property ParameterList: TJvParameterList read FParameterList write FParameterList;
end;
implementation
uses
{$IFDEF UNITVERSIONING}
JclUnitVersioning,
{$ENDIF UNITVERSIONING}
JclStrings,
JvQParameterListParameter, JvQResources;
const
cFalse = 'FALSE';
cTrue = 'TRUE';
cAllowedChars: TSysCharSet =
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '_'];
//=== { TJvParameterListMessages } ===========================================
constructor TJvParameterListMessages.Create;
begin
inherited Create;
Caption := RsDialogCaption;
OkButton := RsOkButton;
CancelButton := RsCancelButton;
HistoryLoadButton := RsHistoryLoadButton;
HistorySaveButton := RsHistorySaveButton;
HistoryClearButton := RsHistoryClearButton;
HistoryLoadCaption := RsHistoryLoadCaption;
HistorySaveCaption := RsHistorySaveCaption;
HistoryClearCaption := RsHistoryClearCaption;
end;
//=== { TJvParameterListEnableDisableReason } ================================
procedure TJvParameterListEnableDisableReason.SetAsString(Value: string);
begin
AsVariant := Value;
end;
function TJvParameterListEnableDisableReason.GetAsString: string;
begin
Result := FValue;
end;
procedure TJvParameterListEnableDisableReason.SetAsDouble(Value: Double);
begin
AsVariant := Value;
end;
function TJvParameterListEnableDisableReason.GetAsDouble: Double;
begin
Result := FValue;
end;
procedure TJvParameterListEnableDisableReason.SetAsInteger(Value: Integer);
begin
AsVariant := Value;
end;
function TJvParameterListEnableDisableReason.GetAsInteger: Integer;
begin
Result := FValue;
end;
procedure TJvParameterListEnableDisableReason.SetAsBoolean(Value: Boolean);
begin
if Value then
AsVariant := cTrue
else
AsVariant := cFalse;
end;
function TJvParameterListEnableDisableReason.GetAsBoolean: Boolean;
var
S: string;
begin
S := FValue;
Result := S = cTrue;
end;
procedure TJvParameterListEnableDisableReason.SetAsDate(Value: TDateTime);
begin
AsVariant := VarFromDateTime(Value);
end;
function TJvParameterListEnableDisableReason.GetAsDate: TDateTime;
begin
Result := VarToDateTime(FValue);
end;
procedure TJvParameterListEnableDisableReason.SetAsVariant(Value: Variant);
begin
FValue := Value;
end;
function TJvParameterListEnableDisableReason.GetAsVariant: Variant;
begin
Result := FValue;
end;
procedure TJvParameterListEnableDisableReason.SetIsEmpty(Value: Boolean);
begin
// IsEmpty and NotIsEmtpy can both be False, in this case the Reason looks
// for the value to activate/deactivate
FIsEmpty := Value;
if Value then
IsNotEmpty := False;
end;
procedure TJvParameterListEnableDisableReason.SetIsNotEmpty(Value: Boolean);
begin
// IsEmpty and NotIsEmtpy can both be False, in this case the Reason looks
// for the value to activate/deactivate
FIsNotEmpty := Value;
if Value then
IsEmpty := False;
end;
procedure TJvParameterListEnableDisableReason.Assign(Source: TPersistent);
begin
if Source is TJvParameterListEnableDisableReason then
begin
AsVariant := TJvParameterListEnableDisableReason(Source).AsVariant;
IsEmpty := TJvParameterListEnableDisableReason(Source).IsEmpty;
IsNotEmpty := TJvParameterListEnableDisableReason(Source).IsNotEmpty;
RemoteParameterName := TJvParameterListEnableDisableReason(Source).RemoteParameterName;
end
else
inherited Assign(Source);
end;
//=== { TJvParameterListEnableDisableReasonList } ============================
procedure TJvParameterListEnableDisableReasonList.Clear;
var
I: Integer;
begin
for I := 0 to Count - 1 do
Objects[I].Free;
inherited Clear;
end;
procedure TJvParameterListEnableDisableReasonList.AddReasonVariant(const RemoteParameterName: string;
Value: Variant);
var
Reason: TJvParameterListEnableDisableReason;
begin
Reason := TJvParameterListEnableDisableReason.Create;
Reason.RemoteParameterName := RemoteParameterName;
Reason.AsVariant := Value;
AddObject(RemoteParameterName, Reason);
end;
procedure TJvParameterListEnableDisableReasonList.AddReason(const RemoteParameterName: string;
Value: Boolean);
var
Reason: TJvParameterListEnableDisableReason;
begin
Reason := TJvParameterListEnableDisableReason.Create;
Reason.RemoteParameterName := RemoteParameterName;
Reason.AsBoolean := Value;
AddObject(RemoteParameterName, Reason);
end;
procedure TJvParameterListEnableDisableReasonList.AddReason(const RemoteParameterName: string;
Value: Integer);
var
Reason: TJvParameterListEnableDisableReason;
begin
Reason := TJvParameterListEnableDisableReason.Create;
Reason.RemoteParameterName := RemoteParameterName;
Reason.AsInteger := Value;
AddObject(RemoteParameterName, Reason);
end;
procedure TJvParameterListEnableDisableReasonList.AddReason(const RemoteParameterName: string;
Value: Double);
var
Reason: TJvParameterListEnableDisableReason;
begin
Reason := TJvParameterListEnableDisableReason.Create;
Reason.RemoteParameterName := RemoteParameterName;
Reason.AsDouble := Value;
AddObject(RemoteParameterName, Reason);
end;
procedure TJvParameterListEnableDisableReasonList.AddReason(const RemoteParameterName: string;
const Value: string);
var
Reason: TJvParameterListEnableDisableReason;
begin
Reason := TJvParameterListEnableDisableReason.Create;
Reason.RemoteParameterName := RemoteParameterName;
Reason.AsString := Value;
AddObject(RemoteParameterName, Reason);
end;
procedure TJvParameterListEnableDisableReasonList.AddReason(const RemoteParameterName: string;
Value: TDateTime);
var
Reason: TJvParameterListEnableDisableReason;
begin
Reason := TJvParameterListEnableDisableReason.Create;
Reason.RemoteParameterName := RemoteParameterName;
Reason.AsDate := Value;
AddObject(RemoteParameterName, Reason);
end;
procedure TJvParameterListEnableDisableReasonList.AddReasonIsEmpty(const RemoteParameterName: string);
var
Reason: TJvParameterListEnableDisableReason;
begin
Reason := TJvParameterListEnableDisableReason.Create;
Reason.RemoteParameterName := RemoteParameterName;
Reason.IsEmpty := True;
AddObject(RemoteParameterName, Reason);
end;
procedure TJvParameterListEnableDisableReasonList.AddReasonIsNotEmpty(const RemoteParameterName: string);
var
Reason: TJvParameterListEnableDisableReason;
begin
Reason := TJvParameterListEnableDisableReason.Create;
Reason.RemoteParameterName := RemoteParameterName;
Reason.IsNotEmpty := True;
AddObject(RemoteParameterName, Reason);
end;
//=== { TJvParameterPropertyValues } =========================================
constructor TJvParameterPropertyValues.Create;
begin
inherited Create;
Sorted := True;
Duplicates := dupIgnore;
end;
destructor TJvParameterPropertyValues.Destroy;
begin
Clear;
inherited Destroy;
end;
procedure TJvParameterPropertyValues.Clear;
var
I: Integer;
begin
for I := 0 to Count - 1 do
Objects[I].Free;
Inherited Clear;
end;
procedure TJvParameterPropertyValues.AddValue(const AName: string; AValue: Variant);
var
Value: TJvParameterPropertyValue;
begin
Value := TJvParameterPropertyValue.Create;
Value.PropertyName := AName;
Value.PropertyValue := AValue;
AddObject(AName, Value);
end;
//=== { TJvBaseParameter } ===================================================
constructor TJvBaseParameter.Create(AParameterList: TJvParameterList);
begin
inherited Create(AParameterList);
FStoreValueToAppStorage := True;
FStoreValueCrypted := False;
FTabOrder := -1;
FParameterList := AParameterList;
FWinControl := nil;
FJvDynControl := nil;
FJvDynControlData := nil;
Color := clBtnFace;
FEnabled := True;
FVisible := True;
FEnableReasons := TJvParameterListEnableDisableReasonList.Create;
FDisableReasons := TJvParameterListEnableDisableReasonList.Create;
end;
destructor TJvBaseParameter.Destroy;
begin
FreeAndNil(FEnableReasons);
FreeAndNil(FDisableReasons);
inherited Destroy;
end;
procedure TJvBaseParameter.SetAsString(const Value: string);
begin
AsVariant := Value;
end;
function TJvBaseParameter.GetAsString: string;
begin
if VarIsNull(AsVariant) then
Result := ''
else
Result := AsVariant;
end;
procedure TJvBaseParameter.SetAsDouble(Value: Double);
begin
AsVariant := Value;
end;
function TJvBaseParameter.GetAsDouble: Double;
begin
if AsString = '' then
Result := 0
else
Result := AsVariant;
end;
procedure TJvBaseParameter.SetAsInteger(Value: Integer);
begin
AsVariant := Value;
end;
function TJvBaseParameter.GetAsInteger: Integer;
begin
if VarIsNull(AsVariant) then
Result := 0
else
Result := AsVariant;
end;
procedure TJvBaseParameter.SetAsBoolean(Value: Boolean);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -