📄 jvqparameterlistparameter.pas
字号:
WinControl.Width := EditWidth;
if FramePanel.Width <= 0 then
FramePanel.Width := WinControl.Width;
end
else
if RightSpace > 0 then
if FramePanel.Width > 0 then
WinControl.Width := FramePanel.Width - RightSpace
else
begin
FramePanel.Width := WinControl.Width;
WinControl.Width := WinControl.Width - RightSpace;
end
else
if FramePanel.Width > 0 then
WinControl.Width := FramePanel.Width
else
FramePanel.Width := WinControl.Width;
if Assigned(LabelControl) then
LabelControl.Width := FramePanel.Width;
if Height > 0 then
if Assigned(LabelControl) then
WinControl.Height := Height - (LabelControl.Height + 3)
else
WinControl.Height := Height
else
if Assigned(LabelControl) then
FramePanel.Height := WinControl.Height + LabelControl.Height + 3
else
FramePanel.Height := WinControl.Height;
end
else
begin
if LabelWidth > 0 then
LabelControl.Width := LabelWidth
else
if FramePanel is TCustomControl then
TAccessCustomControl(FramePanel).Canvas.TextWidth(Caption);
WinControl.Top := LabelControl.Top;
WinControl.Left := LabelControl.Left + LabelControl.Width + 4;
if FramePanel.Height > 0 then
WinControl.Height := FramePanel.Height
else
FramePanel.Height := WinControl.Height;
LabelControl.Top := WinControl.Top + Round((WinControl.Height - LabelControl.Height) / 2);
if EditWidth > 0 then
begin
WinControl.Width := EditWidth;
if FramePanel.Width <= 0 then
FramePanel.Width := WinControl.Width + WinControl.Left + 1;
end
else
begin
if FramePanel.Width > 0 then
if RightSpace > 0 then
WinControl.Width := FramePanel.Width - (WinControl.Left + 1) - RightSpace
else
WinControl.Width := FramePanel.Width - (WinControl.Left + 1)
else
FramePanel.Width := WinControl.Width + WinControl.Left + 1;
end;
end;
end;
procedure TJvBasePanelEditParameter.SetEnabled(Value: Boolean);
begin
inherited SetEnabled(Value);
if Assigned(FramePanel) then
FramePanel.Enabled := Value;
if Assigned(LabelControl) then
LabelControl.Enabled := Value;
end;
procedure TJvBasePanelEditParameter.SetVisible(Value: Boolean);
begin
inherited SetVisible(Value);
if Assigned(FramePanel) then
FramePanel.Visible := Value;
if Assigned(LabelControl) then
LabelControl.Visible := Value;
end;
procedure TJvBasePanelEditParameter.SetHeight(Value: Integer);
begin
inherited SetHeight(Value);
if Assigned(FramePanel) then
FramePanel.Height := Value;
ArrangeLabelAndWinControlOnPanel;
end;
procedure TJvBasePanelEditParameter.SetWidth(Value: Integer);
begin
inherited SetWidth(Value);
if Assigned(FramePanel) then
FramePanel.Width := Value;
ArrangeLabelAndWinControlOnPanel;
end;
procedure TJvBasePanelEditParameter.SetTabOrder(Value: Integer);
begin
if Assigned(FramePanel) then
FramePanel.TabOrder := Value;
end;
procedure TJvBasePanelEditParameter.SetLabelArrangeMode(Value: TJvParameterLabelArrangeMode);
begin
FLabelArrangeMode := Value;
ArrangeLabelAndWinControlOnPanel;
end;
procedure TJvBasePanelEditParameter.Assign(Source: TPersistent);
begin
inherited Assign(Source);
if Source is TJvBasePanelEditParameter then
begin
LabelArrangeMode := TJvBasePanelEditParameter(Source).LabelArrangeMode;
LabelWidth := TJvBasePanelEditParameter(Source).LabelWidth;
EditWidth := TJvBasePanelEditParameter(Source).EditWidth;
RightSpace := TJvBasePanelEditParameter(Source).RightSpace;
end;
end;
//=== { TJvLabelParameter } ==================================================
procedure TJvLabelParameter.CreateWinControlOnParent(ParameterParent: TWinControl);
begin
WinControl := DynControlEngine.CreateStaticTextControl(Self, ParameterParent,
GetParameterName, Caption);
end;
//=== { TJvImageParameter } ==================================================
constructor TJvImageParameter.Create(AParameterList: TJvParameterList);
begin
inherited Create(AParameterList);
FPicture := TPicture.Create;
FAutoSize := False;
FCenter := False;
FIncrementalDisplay := False;
FStretch := False;
FTransparent := False;
end;
destructor TJvImageParameter.Destroy;
begin
FPicture.Free;
inherited Destroy;
end;
procedure TJvImageParameter.SetPicture(Value: TPicture);
begin
FPicture.Assign(Value);
end;
procedure TJvImageParameter.SetAutoSize(Value: Boolean);
begin
if Value <> FAutoSize then
begin
FAutoSize := Value;
end;
end;
procedure TJvImageParameter.Assign(Source: TPersistent);
begin
inherited Assign(Source);
if Source is TJvImageParameter then
begin
Picture := TJvImageParameter(Source).Picture;
// AutoSize := TJvImageParameter(Source).AutoSize;
Center := TJvImageParameter(Source).Center;
IncrementalDisplay := TJvImageParameter(Source).IncrementalDisplay;
Stretch := TJvImageParameter(Source).Stretch;
Transparent := TJvImageParameter(Source).Transparent;
end;
end;
function TJvImageParameter.GetParameterNameExt: string;
begin
Result := 'Image';
end;
procedure TJvImageParameter.CreateWinControl(AParameterParent: TWinControl);
var
ITmpImage: IJvDynControlImage;
begin
WinControl := DynControlEngine.CreateImageControl(Self, AParameterParent, GetParameterName);
if Supports(WinControl, IJvDynControlImage, ITmpImage) then
with ITmpImage do
begin
ControlSetPicture(Picture);
// ControlSetAutoSize(AutoSize);
ControlSetIncrementalDisplay(IncrementalDisplay);
ControlSetCenter(Center);
ControlSetStretch(Stretch);
ControlSetTransparent(Transparent);
end;
end;
//=== { TJvArrangeParameter } ================================================
constructor TJvArrangeParameter.Create(AParameterList: TJvParameterList);
begin
inherited Create(AParameterList);
FArrangeSettings := TJvArrangeSettings.Create(nil);
FArrangeSettings.BorderLeft := 2;
FArrangeSettings.BorderTop := 2;
FArrangeSettings.DistanceVertical := 2;
FArrangeSettings.DistanceHorizontal := 2;
FArrangeSettings.AutoArrange := True;
end;
destructor TJvArrangeParameter.Destroy;
begin
FArrangeSettings.Free;
inherited Destroy;
end;
procedure TJvArrangeParameter.ArrangeControls;
begin
if FParentControl is TJvPanel then
TJvPanel(FParentControl).ArrangeControls;
end;
procedure TJvArrangeParameter.SetArrangeSettings(Value: TJvArrangeSettings);
begin
FArrangeSettings.Assign(Value);
end;
procedure TJvArrangeParameter.Notification(AComponent: TComponent; Operation: TOperation);
begin
inherited Notification(AComponent, Operation);
if (AComponent = FParentControl) and (Operation = opRemove) then
FParentControl := nil;
end;
function TJvArrangeParameter.GetParentControl: TWinControl;
begin
if Assigned(FParentControl) then
Result := FParentControl
else
Result := WinControl;
end;
//=== { TJvPanelParameter } ==================================================
constructor TJvPanelParameter.Create(AParameterList: TJvParameterList);
begin
inherited Create(AParameterList);
BevelInner := bvNone;
BevelOuter := bvNone;
BevelWidth := 1;
BorderStyle := bsNone;
BorderWidth := 0;
end;
procedure TJvPanelParameter.Assign(Source: TPersistent);
begin
inherited Assign(Source);
if Source is TJvPanelParameter then
begin
BevelInner := TJvPanelParameter(Source).BevelInner;
BevelOuter := TJvPanelParameter(Source).BevelOuter;
end;
end;
function TJvPanelParameter.GetParameterNameExt: string;
begin
Result := 'Panel';
end;
procedure TJvPanelParameter.CreateWinControlOnParent(ParameterParent: TWinControl);
begin
WinControl := DynControlEngine.CreatePanelControl(Self, ParameterParent,
GetParameterName, Caption, alNone);
if Height > 0 then
WinControl.Height := Height;
if Width > 0 then
WinControl.Width := Width;
end;
procedure TJvPanelParameter.SetWinControlProperties;
var
ITmpPanel: IJvDynControlPanel;
begin
inherited SetWinControlProperties;
if Supports(WinControl, IJvDynControlPanel, ITmpPanel) then
ITmpPanel.ControlSetBorder(BevelInner, BevelOuter, BevelWidth, BorderStyle, BorderWidth);
end;
//=== { TJvGroupBoxParameter } ===============================================
constructor TJvGroupBoxParameter.Create(AParameterList: TJvParameterList);
begin
inherited Create(AParameterList);
ArrangeSettings.AutoSize := asHeight;
end;
function TJvGroupBoxParameter.GetParameterNameExt: string;
begin
Result := 'GroupBoxPanel';
end;
procedure TJvGroupBoxParameter.CreateWinControlOnParent(ParameterParent: TWinControl);
var
Panel: TJvPanel;
begin
WinControl := DynControlEngine.CreateGroupBoxControl(Self, ParameterParent,
GetParameterName, Caption);
Panel := TJvPanel.Create(ParameterParent.Owner);
ParentControl := Panel;
Panel.Name := GetParameterName;
Panel.ArrangeSettings := ArrangeSettings;
Panel.BevelInner := bvNone;
Panel.BevelOuter := bvNone;
Panel.Parent := WinControl;
Panel.Align := alClient;
Panel.Visible := True;
Panel.Caption := '';
Panel.Color := Color;
Panel.OnResizeParent := ReArrangeGroupbox;
end;
procedure TJvGroupBoxParameter.ReArrangeGroupbox(Sender: TObject; nLeft, nTop, nWidth, nHeight: Integer);
begin
if ArrangeSettings.AutoSize in [asWidth, asBoth] then
WinControl.Width := nWidth + 5;
if ArrangeSettings.AutoSize in [asHeight , asBoth] then
WinControl.Height := nHeight + 18;
end;
//procedure TJvGroupBoxParameter.SetEnabled(Value: Boolean);
//begin
// inherited SetEnabled(Value);
// if Assigned(Wincontrol) then
// Wincontrol.Enabled := Value;
//end;
//
//procedure TJvGroupBoxParameter.SetVisible(Value: Boolean);
//begin
// inherited SetVisible(Value);
// if Assigned(Wincontrol) then
// Wincontrol.Visible := Value;
//end;
//
//procedure TJvGroupBoxParameter.SetHeight(Value: Integer);
//begin
// if Assigned(GroupBox) then
// GroupBox.Height := Value;
//end;
//
//procedure TJvGroupBoxParameter.SetWidth(Value: Integer);
//begin
// if Assigned(GroupBox) then
// GroupBox.Width := Value;
//end;
//
//procedure TJvGroupBoxParameter.SetTabOrder(Value: Integer);
//begin
// if Assigned(GroupBox) then
// GroupBox.TabOrder := Value;
//end;
//=== { TJvListParameter } ===================================================
constructor TJvListParameter.Create(AParameterList: TJvParameterList);
begin
inherited Create(AParameterList);
FItemList := TStringList.Create;
Sorted := False;
FItemIndex := -1;
FVariantAsItemIndex := False;
end;
destructor TJvListParameter.Destroy;
begin
FItemList.Free;
inherited Destroy;
end;
procedure TJvListParameter.SetAsString(const Value: string);
var
I: Integer;
begin
I := ItemList.IndexOf(Value);
if (I >= 0) and (I < ItemList.Count) then
ItemIndex := I
else
ItemIndex := -1;
if not VariantAsItemIndex then
inherited SetAsVariant(Value);
end;
function TJvListParameter.GetAsString: string;
begin
if VariantAsItemIndex then
if (ItemIndex >= 0) and (ItemIndex < ItemList.Count) then
Result := ItemList[ItemIndex]
else
Result := ''
else
Result := inherited GetAsString;
end;
procedure TJvListParameter.SetAsInteger(Value: Integer);
begin
ItemIndex := Value
end;
function TJvListParameter.GetAsInteger: Integer;
begin
Result := ItemIndex;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -