📄 jvqparameterlistparameter.pas
字号:
procedure TJvListParameter.SetAsVariant(Value: Variant);
begin
if VarIsNull(Value) then
ItemIndex := -1
else
if VariantAsItemIndex then
if VarType(Value) in [varSmallInt, varInteger, varByte , varShortInt, varWord, varLongWord ] then
ItemIndex := Value
else
SetAsString(Value)
else
SetAsString(Value);
end;
function TJvListParameter.GetAsVariant: Variant;
begin
Result := inherited GetAsVariant;
if VariantAsItemIndex then
if VarToStr(Result) = '-1' then
Result := Null;
end;
function TJvListParameter.GetItemList: TStringList;
begin
Result := FItemList;
end;
procedure TJvListParameter.SetItemList(Value: TStringList);
begin
FItemList.Assign(Value);
if Assigned(Value) then
SetItemIndex(FItemIndex);
end;
procedure TJvListParameter.SetItemIndex(Value: Integer);
begin
if Assigned(ItemList) then
begin
if Value >= ItemList.Count then
FItemIndex := ItemList.Count - 1
else
FItemIndex := Value;
if VariantAsItemIndex then
inherited SetAsVariant(FItemIndex)
else
if (FItemIndex >= 0) and (FItemIndex < ItemList.Count) then
inherited SetAsVariant(ItemList[FItemIndex])
else
inherited SetAsVariant('');
end
else
begin
FItemIndex := -1;
if VariantAsItemIndex then
inherited SetAsVariant(FItemIndex)
else
inherited SetAsVariant('');
end;
end;
function TJvListParameter.GetWinControlData: Variant;
var
Index: Integer;
begin
if Assigned(JvDynControlData) then
Index:= JvDynControlData.ControlValue
else
Index := -1;
if VariantAsItemIndex then
Result := Index
else
if (Index >= 0) and (Index < ItemList.Count) then
Result := ItemList[Index]
else
Result := JvDynControlData.ControlValue;
end;
procedure TJvListParameter.SetWinControlData(Value: Variant);
var
Index: Integer;
begin
if Assigned(JvDynControlData) then
if VariantAsItemIndex then
JvDynControlData.ControlValue := Value
else
begin
Index := ItemList.IndexOf(Value);
if (Index >= 0) and (Index < ItemList.Count) then
JvDynControlData.ControlValue := ItemList[Index]
else
JvDynControlData.ControlValue := '';
end;
end;
procedure TJvListParameter.Assign(Source: TPersistent);
begin
inherited Assign(Source);
if Source is TJvListParameter then
begin
ItemList.Assign(TJvListParameter(Source).ItemList);
ItemIndex := TJvListParameter(Source).ItemIndex;
Sorted := TJvListParameter(Source).Sorted;
end;
end;
procedure TJvListParameter.SearchItemIndex(const Search: string);
var
I: Integer;
begin
FItemIndex := -1;
for I := 0 to ItemList.Count - 1 do
if Search = ItemList.Strings[I] then
begin
FItemIndex := I;
Break;
end;
end;
procedure TJvListParameter.GetData;
begin
inherited GetData;
// if Assigned(WinControl) then
// ItemIndex := ItemList.IndexOf(Inherited GetAsString)
// else
// ItemIndex := -1;
end;
procedure TJvListParameter.SetData;
begin
inherited SetData;
// IF Assigned (
// IF Assigned (WinControl) THEN
// ItemList.IndexOf (AsString) := ItemIndex;
end;
//=== { TJvRadioGroupParameter } =============================================
procedure TJvRadioGroupParameter.Assign(Source: TPersistent);
begin
inherited Assign(Source);
if Source is TJvRadioGroupParameter then
Columns := TJvRadioGroupParameter(Source).Columns;
end;
procedure TJvRadioGroupParameter.CreateWinControlOnParent(ParameterParent: TWinControl);
begin
WinControl := DynControlEngine.CreateRadioGroupControl(Self, ParameterParent,
GetParameterName, Caption, ItemList);
if Height > 0 then
WinControl.Height := Height;
if Width > 0 then
WinControl.Width := Width;
end;
procedure TJvRadioGroupParameter.CreateWinControl(AParameterParent: TWinControl);
begin
end;
procedure TJvRadioGroupParameter.SetWinControlProperties;
var
ITmpRadioGroup: IJvDynControlRadioGroup;
begin
inherited SetWinControlProperties;
if Supports(WinControl, IJvDynControlRadioGroup, ITmpRadioGroup) then
ITmpRadioGroup.ControlSetColumns(Columns);
end;
//=== { TJvCheckBoxParameter } ===============================================
procedure TJvCheckBoxParameter.CreateWinControlOnParent(ParameterParent: TWinControl);
begin
WinControl := DynControlEngine.CreateCheckBoxControl(Self, ParameterParent,
GetParameterName, Caption);
if Height > 0 then
WinControl.Height := Height;
if Width > 0 then
WinControl.Width := Width;
end;
//=== { TJvComboBoxParameter } ===============================================
constructor TJvComboBoxParameter.Create(AParameterList: TJvParameterList);
begin
inherited Create(AParameterList);
LabelArrangeMode := lamBefore;
FSorted:= False;
FNewEntriesAllowed:= False;
end;
procedure TJvComboBoxParameter.Assign(Source: TPersistent);
begin
inherited Assign(Source);
if Source is TJvComboBoxParameter then
begin
Sorted := TJvComboBoxParameter(Source).Sorted;
NewEntriesAllowed := TJvComboBoxParameter(Source).NewEntriesAllowed;
end;
end;
function TJvComboBoxParameter.GetParameterNameExt: string;
begin
Result := 'ComboBox';
end;
procedure TJvComboBoxParameter.GetData;
begin
Value := Null;
if Assigned(WinControl) then
Value := WinControlData;
end;
procedure TJvComboBoxParameter.SetData;
begin
if Assigned(WinControl) then
WinControlData := Value;
end;
procedure TJvComboBoxParameter.CreateWinControl(AParameterParent: TWinControl);
begin
WinControl := DynControlEngine.CreateComboBoxControl(Self, AParameterParent,
GetParameterName, ItemList);
end;
procedure TJvComboBoxParameter.SetWinControlProperties;
var
ITmpComboBox: IJvDynControlComboBox;
ITmpItems: IJvDynControlItems;
begin
inherited SetWinControlProperties;
if Supports(WinControl, IJvDynControlComboBox, ITmpComboBox) then
ITmpComboBox.ControlSetNewEntriesAllowed(NewEntriesAllowed);
if Supports(WinControl, IJvDynControlItems, ITmpItems) then
ITmpItems.ControlSetSorted(Sorted);
end;
function TJvComboBoxParameter.GetWinControlData: Variant;
var
Index: Integer;
begin
if Assigned(JvDynControlData) then
Index:= ItemList.IndexOf(JvDynControlData.ControlValue)
else
Index := -1;
if VariantAsItemIndex then
Result := Index
else
if (Index >= 0) and (Index < ItemList.Count) then
Result := ItemList[Index]
else
Result := JvDynControlData.ControlValue;
end;
procedure TJvComboBoxParameter.SetWinControlData(Value: Variant);
begin
if Assigned(JvDynControlData) then
if VariantAsItemIndex then
JvDynControlData.ControlValue := ItemList[Value]
else
JvDynControlData.ControlValue := Value;
end;
//=== { TJvListBoxParameter } ================================================
procedure TJvListBoxParameter.Assign(Source: TPersistent);
begin
inherited Assign(Source);
if Source is TJvListBoxParameter then
Sorted := TJvListBoxParameter(Source).Sorted;
end;
function TJvListBoxParameter.GetParameterNameExt: string;
begin
Result := 'ListBox';
end;
procedure TJvListBoxParameter.CreateWinControl(AParameterParent: TWinControl);
var
ITmpItems: IJvDynControlItems;
begin
WinControl := DynControlEngine.CreateListBoxControl(Self, AParameterParent,
GetParameterName, ItemList);
if Supports(WinControl, IJvDynControlItems, ITmpItems) then
ITmpItems.ControlSetSorted(Sorted);
if Height > 0 then
WinControl.Height := Height;
if Width > 0 then
WinControl.Width := Width;
end;
procedure TJvListBoxParameter.SetWinControlProperties;
var
ITmpItems: IJvDynControlItems;
begin
inherited SetWinControlProperties;
if Supports(WinControl, IJvDynControlItems, ITmpItems) then
ITmpItems.ControlSetSorted(Sorted);
end;
//==== TJvCheckListItemDataWrapper ===========================================
procedure TJvCheckListItemDataWrapper.SetChecked(Check: Boolean);
begin
if Check then
FState := cbChecked
else
FState := cbUnchecked;
end;
function TJvCheckListItemDataWrapper.GetChecked: Boolean;
begin
Result := FState = cbChecked;
end;
//=== { TJvCheckListBoxParameter } ===========================================
constructor TJvCheckListBoxParameter.Create(AParameterList: TJvParameterList);
begin
inherited Create(AParameterList);
FSorted := False;
FAllowGrayed := False;
end;
destructor TJvCheckListBoxParameter.Destroy;
var
I: Integer;
begin
for I := 0 to ItemList.Count - 1 do
ItemList.Objects[I].Free;
inherited Destroy;
end;
procedure TJvCheckListBoxParameter.Assign(Source: TPersistent);
var
I: Integer;
begin
inherited Assign(Source);
if Source is TJvCheckListBoxParameter then
begin
Sorted := TJvCheckListBoxParameter(Source).Sorted;
AllowGrayed := TJvCheckListBoxParameter(Source).AllowGrayed;
for I := 0 to ItemList.Count do
ItemData[I] := TJvCheckListBoxParameter(Source).ItemData[I];
end;
end;
procedure TJvCheckListBoxParameter.GetData;
var
ITmpCheckListBox: IJvDynControlCheckListBox;
I: Integer;
begin
inherited GetData;
if Supports(WinControl, IJvDynControlCheckListBox, ITmpCheckListBox) then
for I := 0 to ItemList.Count - 1 do
with ITmpCheckListBox, ItemData[I] do
begin
ItemEnabled := ITmpCheckListBox.ControlGetItemEnabled(I);
State := ITmpCheckListBox.ControlGetState(I);
Header := ITmpCheckListBox.ControlGetHeader(I);
end;
end;
procedure TJvCheckListBoxParameter.SetData;
var
ITmpCheckListBox: IJvDynControlCheckListBox;
I: Integer;
begin
inherited SetData;
if Supports(WinControl, IJvDynControlCheckListBox, ITmpCheckListBox) then
for I := 0 to ItemList.Count - 1 do
with ITmpCheckListBox, ItemData[I] do
begin
ITmpCheckListBox.ControlSetItemEnabled(I, ItemEnabled);
ITmpCheckListBox.ControlSetState(I, State);
ITmpCheckListBox.ControlSetHeader(I, Header);
end;
end;
procedure TJvCheckListBoxParameter.AddCheckListBoxItem(const AText: string;
AState: TCheckBoxState = cbChecked; AItemEnabled: Boolean = True;
AHeader: Boolean = False);
begin
ItemList.Add(AText);
with ItemData[ItemList.Count - 1] do
begin
Header := AHeader;
State := AState;
ItemEnabled := AItemEnabled;
end;
end;
function TJvCheckListBoxParameter.GetParameterNameExt: string;
begin
Result := 'CheckListBox';
end;
procedure TJvCheckListBoxParameter.CreateWinControl(AParameterParent: TWinControl);
var
ITmpItems: IJvDynControlItems;
begin
WinControl := DynControlEngine.CreateCheckListBoxControl(Self, AParameterParent,
GetParameterName, ItemList);
if Supports(WinControl, IJvDynControlItems, ITmpItems) then
ITmpItems.ControlSetSorted(Sorted);
if Height > 0 then
WinControl.Height := Height;
if Width > 0 then
WinControl.Width := Width;
end;
procedure TJvCheckListBoxParameter.SetWinControlProperties;
var
ITmpItems: IJvDynControlItems;
ITmpCheckListBox: IJvDynControlCheckListBox;
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -