📄 jvqparameterlistparameter.pas
字号:
inherited SetWinControlProperties;
if Supports(WinControl, IJvDynControlItems, ITmpItems) then
ITmpItems.ControlSetSorted(Sorted);
if Supports(WinControl, IJvDynControlCheckListBox, ITmpCheckListBox) then
ITmpCheckListBox.ControlSetAllowGrayed(AllowGrayed);
end;
function TJvCheckListBoxParameter.GetItemData(Index: Integer): TJvCheckListItemDataWrapper;
begin
if (Index >= 0) and (Index < ItemList.Count) then
begin
if not Assigned(ItemList.Objects[Index]) then
begin
ItemList.Objects[Index] := TJvCheckListItemDataWrapper.Create;
with TJvCheckListItemDataWrapper(ItemList.Objects[Index]) do
begin
State := cbChecked;
Header := False;
ItemEnabled := True;
end;
end;
Result := TJvCheckListItemDataWrapper(ItemList.Objects[Index]);
end
else
Result := nil;
end;
procedure TJvCheckListBoxParameter.SetItemData(Index: Integer; Value: TJvCheckListItemDataWrapper);
var
Data: TJvCheckListItemDataWrapper;
begin
Data := GetItemData(Index);
if Assigned(Data) then
begin
Data.State := Value.State;
Data.ItemEnabled := Value.ItemEnabled;
Data.Header := Value.Header;
end;
end;
procedure TJvCheckListBoxParameter.SetItemList(Value: TStringList);
var
I: Integer;
begin
for I := 0 to ItemList.Count - 1 do
if Assigned(ItemList.Objects[I]) then
ItemList.Objects[I].Free;
inherited SetItemList(Value);
end;
//=== { TJvTimeParameter } ===================================================
constructor TJvTimeParameter.Create(AParameterList: TJvParameterList);
begin
inherited Create(AParameterList);
LabelArrangeMode := lamBefore;
end;
procedure TJvTimeParameter.Assign(Source: TPersistent);
begin
inherited Assign(Source);
if Source is TJvTimeParameter then
Format := TJvTimeParameter(Source).Format;
end;
function TJvTimeParameter.GetParameterNameExt: string;
begin
Result := 'Time';
end;
procedure TJvTimeParameter.CreateWinControl(AParameterParent: TWinControl);
begin
WinControl := DynControlEngine.CreateTimeControl(Self, AParameterParent, GetParameterName);
end;
procedure TJvTimeParameter.SetWinControlProperties;
var
DynControlTime: IJvDynControlTime;
begin
inherited SetWinControlProperties;
if Supports(WinControl, IJvDynControlTime, DynControlTime) then
DynControlTime.ControlSetFormat(Format);
end;
//=== { TJvDateTimeParameter } ===============================================
constructor TJvDateTimeParameter.Create(AParameterList: TJvParameterList);
begin
inherited Create(AParameterList);
LabelArrangeMode := lamBefore;
end;
procedure TJvDateTimeParameter.Assign(Source: TPersistent);
begin
inherited Assign(Source);
if Source is TJvDateTimeParameter then
begin
Format := TJvDateTimeParameter(Source).Format;
MaxDate := TJvDateTimeParameter(Source).MaxDate;
MinDate := TJvDateTimeParameter(Source).MinDate;
end;
end;
function TJvDateTimeParameter.GetParameterNameExt: string;
begin
Result := 'DateTime';
end;
procedure TJvDateTimeParameter.CreateWinControl(AParameterParent: TWinControl);
begin
WinControl := DynControlEngine.CreateDateTimeControl(Self, AParameterParent, GetParameterName);
end;
procedure TJvDateTimeParameter.SetWinControlProperties;
var
DynControlDate: IJvDynControlDate;
begin
inherited SetWinControlProperties;
if Supports(WinControl, IJvDynControlDate, DynControlDate) then
with DynControlDate do
begin
ControlSetFormat(Format);
ControlSetMinDate(MinDate);
ControlSetMaxDate(MaxDate);
end;
end;
//=== { TJvDateParameter } ===================================================
constructor TJvDateParameter.Create(AParameterList: TJvParameterList);
begin
inherited Create(AParameterList);
LabelArrangeMode := lamBefore;
end;
procedure TJvDateParameter.Assign(Source: TPersistent);
begin
inherited Assign(Source);
if Source is TJvDateParameter then
begin
Format := TJvDateParameter(Source).Format;
MinDate := TJvDateParameter(Source).MinDate;
MaxDate := TJvDateParameter(Source).MaxDate;
end;
end;
function TJvDateParameter.GetParameterNameExt: string;
begin
Result := 'Date';
end;
procedure TJvDateParameter.CreateWinControl(AParameterParent: TWinControl);
begin
WinControl := DynControlEngine.CreateDateControl(Self, AParameterParent, GetParameterName);
end;
procedure TJvDateParameter.SetWinControlProperties;
var
DynControlDate: IJvDynControlDate;
begin
inherited SetWinControlProperties;
if Supports(WinControl, IJvDynControlDate, DynControlDate) then
with DynControlDate do
begin
ControlSetFormat(Format);
ControlSetMinDate(MinDate);
ControlSetMaxDate(MaxDate);
end;
end;
//=== { TJvEditParameter } ===================================================
constructor TJvEditParameter.Create(AParameterList: TJvParameterList);
begin
inherited Create(AParameterList);
FPasswordChar := #0;
FEditMask := '';
FLabelWidth := 0;
FEditWidth := 0;
FRightSpace := 0;
LabelArrangeMode := lamBefore;
end;
procedure TJvEditParameter.Assign(Source: TPersistent);
begin
inherited Assign(Source);
if Source is TJvEditParameter then
begin
EditMask := TJvEditParameter(Source).EditMask;
PasswordChar := TJvEditParameter(Source).PasswordChar;
LabelWidth := TJvEditParameter(Source).LabelWidth;
EditWidth := TJvEditParameter(Source).EditWidth;
RightSpace := TJvEditParameter(Source).RightSpace;
end;
end;
function TJvEditParameter.GetParameterNameExt: string;
begin
Result := 'MaskEdit';
end;
procedure TJvEditParameter.CreateWinControl(AParameterParent: TWinControl);
var
DynCtrlEdit: IJvDynControlEdit;
begin
WinControl := DynControlEngine.CreateEditControl(Self, AParameterParent, GetParameterName);
if Supports(WinControl, IJvDynControlEdit, DynCtrlEdit) then
begin
DynCtrlEdit.ControlSetPasswordChar(PasswordChar);
DynCtrlEdit.ControlSetEditMask(EditMask);
end;
end;
//=== { TJvButtonEditParameter } =============================================
function TJvButtonEditParameter.GetParameterNameExt: string;
begin
Result := 'ButtonEdit';
end;
procedure TJvButtonEditParameter.CreateWinControl(AParameterParent: TWinControl);
var
DynCtrlEdit: IJvDynControlEdit;
begin
WinControl := DynControlEngine.CreateButtonEditControl(Self, AParameterParent, GetParameterName, FOnClick);
if Supports(WinControl, IJvDynControlEdit, DynCtrlEdit) then
begin
DynCtrlEdit.ControlSetPasswordChar(PasswordChar);
DynCtrlEdit.ControlSetEditMask(EditMask);
end;
end;
procedure TJvButtonEditParameter.Assign(Source: TPersistent);
begin
inherited Assign(Source);
if Source is TJvButtonEditParameter then
OnClick := TJvButtonEditParameter(Source).OnClick;
end;
//=== { TJvNumberEditParameter } =============================================
procedure TJvNumberEditParameter.Assign(Source: TPersistent);
begin
inherited Assign(Source);
if Source is TJvNumberEditParameter then
EditorType := TJvNumberEditParameter(Source).EditorType;
end;
//=== { TJvIntegerEditParameter } ============================================
constructor TJvIntegerEditParameter.Create(AParameterList: TJvParameterList);
begin
inherited Create(AParameterList);
Required := True;
MinValue := Low(Integer);
MaxValue := High(Integer);
Increment := 10;
end;
procedure TJvIntegerEditParameter.CreateWinControl(AParameterParent: TWinControl);
var
DynCtrlEdit: IJvDynControlEdit;
begin
if (EditorType = netCalculate) and DynControlEngine.IsControlTypeRegistered(jctCalculateEdit) then
WinControl := DynControlEngine.CreateCalculateControl(Self, AParameterParent, GetParameterName)
else
if (EditorType = netSpin) and DynControlEngine.IsControlTypeRegistered(jctSpinEdit) then
WinControl := DynControlEngine.CreateSpinControl(Self, AParameterParent, GetParameterName)
else
WinControl := DynControlEngine.CreateEditControl(Self, AParameterParent, GetParameterName);
if Supports(WinControl, IJvDynControlEdit, DynCtrlEdit) then
begin
DynCtrlEdit.ControlSetPasswordChar(PasswordChar);
DynCtrlEdit.ControlSetEditMask(EditMask);
end;
end;
procedure TJvIntegerEditParameter.SetWinControlProperties;
var
ITmpSpin: IJvDynControlSpin;
begin
inherited SetWinControlProperties;
if Supports(WinControl, IJvDynControlSpin, ITmpSpin) then
with ITmpSpin do
begin
ControlSetIncrement(Increment);
ControlSetMinValue(MinValue);
ControlSetMaxValue(MaxValue);
ControlSetUseForInteger(True);
end;
end;
procedure TJvIntegerEditParameter.Assign(Source: TPersistent);
begin
inherited Assign(Source);
if Source is TJvIntegerEditParameter then
begin
MinValue := TJvIntegerEditParameter(Source).MinValue;
MaxValue := TJvIntegerEditParameter(Source).MaxValue;
end;
end;
function TJvIntegerEditParameter.Validate(var AData: Variant): Boolean;
var
I: Integer;
begin
Result := not Enabled;
if Result then
Exit;
if VarIsNull(AData) or (AData = '') then
if Required then
begin
DSADialogsMessageDlg(Format(RsErrParameterMustBeEntered, [Caption]), mtError, [mbOK], 0);
Exit;
end
else
begin
Result := True;
Exit;
end;
try
I := AData;
except
DSADialogsMessageDlg(Format(RsErrParameterIsNotAValidNumber, [Caption, AData]), mtError, [mbOK], 0);
Exit;
end;
if (I < MinValue) or (I > MaxValue) then
DSADialogsMessageDlg(Format(RsErrParameterMustBeBetween, [Caption, AData, IntToStr(MinValue),
IntToStr(MaxValue)]), mtError, [mbOK], 0)
else
Result := True;
end;
//=== { TJvDoubleEditParameter } =============================================
constructor TJvDoubleEditParameter.Create(AParameterList: TJvParameterList);
begin
inherited Create(AParameterList);
Required := True;
// (rom) please use better values here (see JclMath)
MinValue := -1E38;
MaxValue := 1E38;
Increment := 100;
end;
procedure TJvDoubleEditParameter.CreateWinControl(AParameterParent: TWinControl);
var
DynCtrlEdit: IJvDynControlEdit;
begin
if (EditorType = netCalculate) and DynControlEngine.IsControlTypeRegistered(jctCalculateEdit) then
WinControl := DynControlEngine.CreateCalculateControl(Self, AParameterParent, GetParameterName)
else
if (EditorType = netSpin) and DynControlEngine.IsControlTypeRegistered(jctSpinEdit) then
WinControl := DynControlEngine.CreateSpinControl(Self, AParameterParent, GetParameterName)
else
WinControl := DynControlEngine.CreateEditControl(Self, AParameterParent, GetParameterName);
if Supports(WinControl, IJvDynControlEdit, DynCtrlEdit) then
begin
DynCtrlEdit.ControlSetPasswordChar(PasswordChar);
DynCtrlEdit.ControlSetEditMask(EditMask);
end;
end;
procedure TJvDoubleEditParameter.SetWinControlProperties;
var
ITmpSpin: IJvDynControlSpin;
begin
inherited SetWinControlProperties;
if Supports(WinControl, IJvDynControlSpin, ITmpSpin) then
with ITmpSpin do
begin
ControlSetIncrement(Increment);
ControlSetMinValue(MinValue);
ControlSetMaxValue(MaxValue);
ControlSetUseForInteger(True);
end;
end;
procedure TJvDoubleEditParameter.Assign(Source: TPersistent);
begin
inherited Assign(Source);
if Source is TJvDoubleEditParameter then
begin
MinValue := TJvDoubleEditParameter(Source).MinValue;
MaxValue := TJvDoubleEditParameter(Source).MaxValue;
end;
end;
function TJvDoubleEditParameter.Validate(var AData: Variant): Boolean;
var
D: Double;
begin
if not Enabled then
begin
Result := True;
Exit;
end;
Result := False;
if VarIsNull(AData) then
begin
if Required then
DSADialogsMessageDlg(Format(RsErrParameterMustBeEntered, [Caption]), mtError, [mbOK], 0)
else
Result := True;
Exit;
end;
try
D := AData;
except
DSADialogsMessageDlg(Format(RsErrParameter
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -