⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dxwinxpbar.pas

📁 delphi控件可以很好实现应用程序的界面设计
💻 PAS
📖 第 1 页 / 共 5 页
字号:
  Arguments: None
  Result:    Boolean
-----------------------------------------------------------------------------}

function TdxWinXPBarItemActionLink.IsHintLinked: Boolean;
begin
  Result := inherited IsHintLinked and
    (FClient.Hint = (Action as TCustomAction).Hint);
end;

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItemActionLink.IsImageIndexLinked
  Author:    mh
  Date:      25-Okt-2002
  Arguments: None
  Result:    Boolean
-----------------------------------------------------------------------------}

function TdxWinXPBarItemActionLink.IsImageIndexLinked: Boolean;
begin
  Result := inherited IsImageIndexLinked and
    (FClient.ImageIndex = (Action as TCustomAction).ImageIndex);
end;

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItemActionLink.IsVisibleLinked
  Author:    mh
  Date:      25-Okt-2002
  Arguments: None
  Result:    Boolean
-----------------------------------------------------------------------------}

function TdxWinXPBarItemActionLink.IsVisibleLinked: Boolean;
begin
  Result := inherited IsVisibleLinked and
    (FClient.Visible = (Action as TCustomAction).Visible);
end;

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItemActionLink.IsOnExecuteLinked
  Author:    mh
  Date:      25-Okt-2002
  Arguments: None
  Result:    Boolean
-----------------------------------------------------------------------------}

function TdxWinXPBarItemActionLink.IsOnExecuteLinked: Boolean;
begin
  Result := inherited IsOnExecuteLinked and
    dxMethodsEqual(TMethod(FClient.OnClick), TMethod(Action.OnExecute));
end;

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItemActionLink.SetCaption
  Author:    mh
  Date:      25-Okt-2002
  Arguments: const Value: string
  Result:    None
-----------------------------------------------------------------------------}

procedure TdxWinXPBarItemActionLink.SetCaption(const Value: string);
begin
  if IsCaptionLinked then
    FClient.Caption := Value;
end;

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItemActionLink.SetEnabled
  Author:    mh
  Date:      25-Okt-2002
  Arguments: Value: Boolean
  Result:    None
-----------------------------------------------------------------------------}

procedure TdxWinXPBarItemActionLink.SetEnabled(Value: Boolean);
begin
  if IsEnabledLinked then
    FClient.Enabled := Value;
end;

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItemActionLink.SetHint
  Author:    mh
  Date:      25-Okt-2002
  Arguments: const Value: string
  Result:    None
-----------------------------------------------------------------------------}

procedure TdxWinXPBarItemActionLink.SetHint(const Value: string);
begin
  if IsHintLinked then
    FClient.Hint := Value;
end;

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItemActionLink.SetImageIndex
  Author:    mh
  Date:      25-Okt-2002
  Arguments: Value: Integer
  Result:    None
-----------------------------------------------------------------------------}

procedure TdxWinXPBarItemActionLink.SetImageIndex(Value: Integer);
begin
  if IsImageIndexLinked then
    FClient.ImageIndex := Value;
end;

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItemActionLink.SetVisible
  Author:    mh
  Date:      25-Okt-2002
  Arguments: Value: Boolean
  Result:    None
-----------------------------------------------------------------------------}

procedure TdxWinXPBarItemActionLink.SetVisible(Value: Boolean);
begin
  if IsVisibleLinked then
    FClient.Visible := Value;
end;

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItemActionLink.SetOnExecute
  Author:    mh
  Date:      25-Okt-2002
  Arguments: Value: TNotifyEvent
  Result:    None
-----------------------------------------------------------------------------}

procedure TdxWinXPBarItemActionLink.SetOnExecute(Value: TNotifyEvent);
begin
  if IsOnExecuteLinked then
    FClient.OnClick := Value;
end;

{ TdxWinXPBarItem }

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItem.Create
  Author:    mh
  Date:      25-Okt-2002
  Arguments: Collection: TCollection
  Result:    None
-----------------------------------------------------------------------------}

constructor TdxWinXPBarItem.Create(Collection: TCollection);
begin
  inherited Create(Collection);
  FCollection := TdxWinXPBarItems(Collection);
  FCaption := '';
  FData := nil;
  FDataObject := nil;
  FEnabled := True;
  FImageIndex := -1;
  FImageList := nil;
  FHint := '';
  FName := '';
  FWinXPBar := FCollection.FWinXPBar;
  FTag := 0;
  FVisible := True;
  FWinXPBar.ItemVisibilityChanged(Self);
  FWinXPBar.ResizeToMaxHeight;
end;

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItem.Destroy
  Author:    mh
  Date:      25-Okt-2002
  Arguments: None
  Result:    None
-----------------------------------------------------------------------------}

destructor TdxWinXPBarItem.Destroy;
begin
  FVisible := False;  // required to remove from visible list!
  FWinXPBar.ItemVisibilityChanged(Self);
  FActionLink.Free;
  FActionLink := nil;
  inherited;
  FWinXPBar.ResizeToMaxHeight;
end;

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItem.Notification
  Author:    mh
  Date:      29-Okt-2002
  Arguments: AComponent: TComponent; Operation: TOperation
  Result:    None
-----------------------------------------------------------------------------}

procedure TdxWinXPBarItem.Notification(AComponent: TComponent);
begin
  if AComponent = Action then
    Action := nil;
  if AComponent = FImageList then
    FImageList := nil;
end;

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItem.GetDisplayName
  Author:    mh
  Date:      25-Okt-2002
  Arguments: None
  Result:    string
-----------------------------------------------------------------------------}

function TdxWinXPBarItem.GetDisplayName: string;
var
  DisplayName, ItemName: string;
begin
  DisplayName := FCaption;
  if DisplayName = '' then
    DisplayName := 'untitled';
  ItemName := FName;
  if ItemName <> '' then
    DisplayName := DisplayName + ' [' + ItemName + ']';
  if not FVisible then
    DisplayName := DisplayName + '*';
  Result := DisplayName;
end;

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItem.GetImages
  Author:    mh
  Date:      29-Okt-2002
  Arguments: None
  Result:    TCustomImageList
-----------------------------------------------------------------------------}

function TdxWinXPBarItem.GetImages: TCustomImageList;
begin
  Result := nil;
  if Assigned(FImageList) then
    Result := FImageList
  else if Assigned(Action) and Assigned(TAction(Action).ActionList.Images) then
    Result := TAction(Action).ActionList.Images
  else if Assigned(FWinXPBar.FImageList) then
    Result := FWinXPBar.FImageList;
end;

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItem.ActionChange
  Author:    mh
  Date:      25-Okt-2002
  Arguments: Sender: TObject; CheckDefaults: Boolean
  Result:    None
-----------------------------------------------------------------------------}

procedure TdxWinXPBarItem.ActionChange(Sender: TObject;
  CheckDefaults: Boolean);
begin
  if Action is TCustomAction then
    with TCustomAction(Sender) do
    begin
      if not CheckDefaults or (Self.Caption = '') then
        Self.Caption := Caption;
      if not CheckDefaults or (Self.Enabled = True) then
        Self.Enabled := Enabled;
      if not CheckDefaults or (Self.Hint = '') then
        Self.Hint := Hint;
      if not CheckDefaults or (Self.ImageIndex = -1) then
        Self.ImageIndex := ImageIndex;
      if not CheckDefaults or (Self.Visible = True) then
        Self.Visible := Visible;
      if not CheckDefaults or not Assigned(Self.OnClick) then
        Self.OnClick := OnExecute;
    end;
end;

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItem.GetActionLinkClass
  Author:    mh
  Date:      25-Okt-2002
  Arguments: None
  Result:    TdxWinXPBarItemActionLinkClass
-----------------------------------------------------------------------------}

function TdxWinXPBarItem.GetActionLinkClass: TdxWinXPBarItemActionLinkClass;
begin
  Result := TdxWinXPBarItemActionLink;
end;

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItem.Assign
  Author:    mh
  Date:      25-Okt-2002
  Arguments: Source: TPersistent
  Result:    None
-----------------------------------------------------------------------------}

procedure TdxWinXPBarItem.Assign(Source: TPersistent);
begin
  if Source is TdxWinXPBarItem then
  begin
    Action.Assign(TdxWinXPBarItem(Source).Action);
    Caption := TdxWinXPBarItem(Source).Caption;
    Data := TdxWinXPBarItem(Source).Data;
    DataObject := TdxWinXPBarItem(Source).DataObject;
    Enabled := TdxWinXPBarItem(Source).Enabled;
    Hint := TdxWinXPBarItem(Source).Hint;
    ImageList.Assign(TdxWinXPBarItem(Source).ImageList);
    ImageIndex := TdxWinXPBarItem(Source).ImageIndex;
    Name := TdxWinXPBarItem(Source).Name;
    Tag := TdxWinXPBarItem(Source).Tag;
    Visible := TdxWinXPBarItem(Source).Visible;
    OnClick := TdxWinXPBarItem(Source).OnClick;
    Exit;
  end;
  inherited Assign(Source);
end;

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItem.IsCaptionStored
  Author:    mh
  Date:      25-Okt-2002
  Arguments: None
  Result:    Boolean
-----------------------------------------------------------------------------}

function TdxWinXPBarItem.IsCaptionStored: Boolean;
begin
  Result := (ActionLink = nil) or not FActionLink.IsCaptionLinked;
end;

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItem.IsEnabledStored
  Author:    mh
  Date:      25-Okt-2002
  Arguments: None
  Result:    Boolean
-----------------------------------------------------------------------------}

function TdxWinXPBarItem.IsEnabledStored: Boolean;
begin
  Result := (ActionLink = nil) or not FActionLink.IsEnabledLinked;
end;

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItem.IsHintStored
  Author:    mh
  Date:      25-Okt-2002
  Arguments: None
  Result:    Boolean
-----------------------------------------------------------------------------}

function TdxWinXPBarItem.IsHintStored: Boolean;
begin
  Result := (ActionLink = nil) or not FActionLink.IsHintLinked;
end;

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItem.IsImageIndexStored
  Author:    mh
  Date:      25-Okt-2002
  Arguments: None
  Result:    Boolean
-----------------------------------------------------------------------------}

function TdxWinXPBarItem.IsImageIndexStored: Boolean;
begin
  Result := (ActionLink = nil) or not FActionLink.IsImageIndexLinked;
end;

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItem.IsVisibleStored
  Author:    mh
  Date:      25-Okt-2002
  Arguments: None
  Result:    Boolean
-----------------------------------------------------------------------------}

function TdxWinXPBarItem.IsVisibleStored: Boolean;
begin
  Result := (ActionLink = nil) or not FActionLink.IsVisibleLinked;
end;

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItem.IsOnClickStored
  Author:    mh
  Date:      25-Okt-2002
  Arguments: None
  Result:    Boolean
-----------------------------------------------------------------------------}

function TdxWinXPBarItem.IsOnClickStored: Boolean;
begin
  Result := (ActionLink = nil) or not FActionLink.IsOnExecuteLinked;
end;

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItem.DoActionChange
  Author:    mh
  Date:      25-Okt-2002
  Arguments: Sender: TObject
  Result:    None
-----------------------------------------------------------------------------}

procedure TdxWinXPBarItem.DoActionChange(Sender: TObject);
begin
  if Sender = Action then
    ActionChange(Sender, False);
end;

{-----------------------------------------------------------------------------
  Procedure: TdxWinXPBarItem.GetAction
  Author:    mh

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -