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

📄 ribbonnotepaddemomain.pas

📁 胜天进销存源码,国产优秀的进销存
💻 PAS
📖 第 1 页 / 共 4 页
字号:
procedure TRibbonDemoMainForm.dxBarButtonSaveClick(Sender: TObject);
begin
  SaveFile(False);
end;

procedure TRibbonDemoMainForm.dxBarButtonSaveAsRTFClick(Sender: TObject);
begin
  SaveFile(True);
end;

procedure TRibbonDemoMainForm.dxBarButtonSaveAsTextClick(Sender: TObject);
begin
  SaveFile(True, True);
end;

procedure TRibbonDemoMainForm.dxBarButtonPrintClick(Sender: TObject);
begin
  if PrintDialog.Execute then Editor.Print(FileName);
end;

procedure TRibbonDemoMainForm.dxBarButtonExitClick(Sender: TObject);
begin
  Close;
end;

procedure TRibbonDemoMainForm.dxBarButtonUndoClick(Sender: TObject);
begin
  Undo(1);
end;

procedure TRibbonDemoMainForm.dxBarButtonCutClick(Sender: TObject);
begin
  Editor.CutToClipboard;
end;

procedure TRibbonDemoMainForm.dxBarButtonCopyClick(Sender: TObject);
begin
  Editor.CopyToClipboard;
end;

procedure TRibbonDemoMainForm.dxBarButtonPasteClick(Sender: TObject);
begin
  Editor.PasteFromClipboard;
end;

procedure TRibbonDemoMainForm.dxBarButtonClearClick(Sender: TObject);
begin
  Editor.ClearSelection;
end;

procedure TRibbonDemoMainForm.dxBarButtonSelectAllClick(Sender: TObject);
begin
  Editor.SelectAll;
end;

procedure TRibbonDemoMainForm.dxBarButtonFindClick(Sender: TObject);
begin
  Editor.SelLength := 0;
  FindDialog.Execute;
end;

procedure TRibbonDemoMainForm.dxBarButtonReplaceClick(Sender: TObject);
begin
  Editor.SelLength := 0;
  ReplaceDialog.Execute;
end;

procedure TRibbonDemoMainForm.dxBarComboFontNameChange(Sender: TObject);
begin
  if not FUpdating then
    Editor.SelAttributes.Name := dxBarComboFontName.Text;
end;

procedure TRibbonDemoMainForm.dxBarComboFontSizeChange(Sender: TObject);
begin
  if not FUpdating then
    Editor.SelAttributes.Size := StrToInt(dxBarComboFontSize.Text);
end;

procedure TRibbonDemoMainForm.dxBarButtonBoldClick(Sender: TObject);
begin
  with Editor.SelAttributes do
    if dxBarButtonBold.Down then
      Style := Style + [fsBold]
    else
      Style := Style - [fsBold];
end;

procedure TRibbonDemoMainForm.dxBarButtonItalicClick(Sender: TObject);
begin
  with Editor.SelAttributes do
    if dxBarButtonItalic.Down then
      Style := Style + [fsItalic]
    else
      Style := Style - [fsItalic];
end;

procedure TRibbonDemoMainForm.dxBarButtonUnderlineClick(Sender: TObject);
begin
  with Editor.SelAttributes do
    if dxBarButtonUnderline.Down then
      Style := Style + [fsUnderline]
    else
      Style := Style - [fsUnderline];
end;

procedure TRibbonDemoMainForm.dxBarButtonBulletsClick(Sender: TObject);
begin
  Editor.Paragraph.Numbering := TNumberingStyle(dxBarButtonBullets.Down);
end;

procedure TRibbonDemoMainForm.btnLockedClick(Sender: TObject);
var
  AHint: string;
begin
  Editor.ReadOnly := TdxBarButton(Sender).Down;
  if Editor.ReadOnly then
  begin
    AHint := 'Editing protection: Read only. Click for editing.';
    cxStyle1.TextColor := clMaroon;
  end
  else
  begin
    AHint := 'Editing protection: Writable. Click for read-only mode.';
    cxStyle1.TextColor := clGray;
  end;
  TdxBarButton(Sender).Hint := AHint;
  EditorSelectionChange(nil);
end;

procedure TRibbonDemoMainForm.dxBarButtonAlignClick(Sender: TObject);
begin
  if TdxBarLargeButton(Sender).Down then
    Editor.Paragraph.Alignment := TAlignment(TdxBarLargeButton(Sender).Tag)
  else
    Editor.Paragraph.Alignment := taLeftJustify;
end;

procedure TRibbonDemoMainForm.dxBarButtonProtectedClick(Sender: TObject);
begin
  with Editor.SelAttributes do Protected := not Protected;
end;

procedure TRibbonDemoMainForm.FontClick(Sender: TObject);
begin
  FontDialog.Font.Assign(Editor.SelAttributes);
  if FontDialog.Execute then
    Editor.SelAttributes.Assign(FontDialog.Font);
end;

procedure TRibbonDemoMainForm.dxBarLargeButton10Click(Sender: TObject);
begin
  with Ribbon.QuickAccessToolbar do
  begin
    Visible := not Visible;
    dxBarLargeButton8.Enabled := Visible;
    dxBarLargeButton9.Enabled := Visible;
  end;
end;

procedure TRibbonDemoMainForm.dxBarLargeButtonBlueSchemeClick(Sender: TObject);
begin
  SetColorScheme('Blue');
end;

procedure TRibbonDemoMainForm.dxBarLargeButtonBlackSchemeClick(Sender: TObject);
begin
  SetColorScheme('Black');
end;

procedure TRibbonDemoMainForm.dxBarLargeButtonSilverSchemeClick(Sender: TObject);
begin
  SetColorScheme('Silver');
end;

procedure TRibbonDemoMainForm.dxBarLargeButton6Click(Sender: TObject);
begin
  with Ribbon do
  begin
    SupportNonClientDrawing := not SupportNonClientDrawing;
    dxBarLargeButton7.Enabled := SupportNonClientDrawing;
  end;
end;

procedure TRibbonDemoMainForm.dxBarLargeButton7Click(Sender: TObject);
begin
  Ribbon.ApplicationButton.Visible := not Ribbon.ApplicationButton.Visible;
end;

procedure TRibbonDemoMainForm.dxBarLargeButton8Click(Sender: TObject);
begin
  Ribbon.QuickAccessToolbar.Position := qtpAboveRibbon;
end;

procedure TRibbonDemoMainForm.dxBarLargeButton9Click(Sender: TObject);
begin
  Ribbon.QuickAccessToolbar.Position := qtpBelowRibbon;
end;

procedure TRibbonDemoMainForm.ApplicationMenuRecentDocumentsClick(
  Sender: TObject; AIndex: Integer);
begin
  OpenFile(ApplicationMenu.ExtraPaneItems[AIndex].Text);
end;

procedure TRibbonDemoMainForm.RibbonHelpButtonClick(
  Sender: TdxCustomRibbon);
begin
  ShowMessage('Clicked!');
end;

procedure TRibbonDemoMainForm.RibbonHideMinimizedByClick(
  Sender: TdxCustomRibbon; AWnd: Cardinal; AShift: TShiftState;
  const APos: TPoint; var AAllowProcessing: Boolean);
begin
  AAllowProcessing := AWnd <> Editor.Handle;
end;

procedure TRibbonDemoMainForm.dxBarButtonOptionsClick(Sender: TObject);

  procedure UpdateColorScheme(AColorSchemeName: string);
  begin
    dxBarLargeButtonBlueScheme.Down := AColorSchemeName = 'Blue';
    dxBarLargeButtonBlackScheme.Down := AColorSchemeName = 'Black';
    dxBarLargeButtonSilverScheme.Down := AColorSchemeName = 'Silver';
    SetColorScheme(AColorSchemeName);
  end;

var
  AColorSchemeName: string;
  AScreenTipOptions: TScreenTipOptions;
begin
  AColorSchemeName := Ribbon.ColorSchemeName;
  AScreenTipOptions.ShowScreenTips := BarManager.ShowHint;
  AScreenTipOptions.ShowDescripitons := dxBarScreenTipRepository1.ShowDescription;
  if RibbonDemoOptionsForm.GetOptions(AColorSchemeName, AScreenTipOptions) then
  begin
    UpdateColorScheme(AColorSchemeName);
    BarManager.ShowHint := AScreenTipOptions.ShowScreenTips;
    dxBarScreenTipRepository1.ShowDescription := AScreenTipOptions.ShowDescripitons;
  end;
end;

procedure TRibbonDemoMainForm.dxBarButtonFontColorClick(Sender: TObject);
begin
  SetFontColor;
end;

{ TColorPickerController }

constructor TColorPickerController.Create(AColorItem,
  AColorMapItem: TdxRibbonGalleryItem; AColorDropDownGallery: TdxRibbonDropDownGallery);

  procedure InitColorItem;
  begin
    FColorItem.GalleryOptions.EqualItemSizeInAllGroups := False;
    FColorItem.GalleryOptions.ColumnCount := SchemeColorCount;
    FColorItem.GalleryOptions.SpaceBetweenGroups := 4;
    FColorItem.GalleryOptions.ItemTextKind := itkNone;
    FColorItem.OnGroupItemClick := ColorItemClick;

    FThemeColorsGroup := FColorItem.GalleryGroups.Add;
    FThemeColorsGroup.Header.Caption := 'Theme Colors';
    FThemeColorsGroup.Header.Visible := True;
    FAccentColorsGroup := FColorItem.GalleryGroups.Add;
    FStandardColorsGroup := FColorItem.GalleryGroups.Add;
    FStandardColorsGroup.Header.Caption := 'Standard Colors';
    FStandardColorsGroup.Header.Visible := True;
    FCustomColorsGroup := FColorItem.GalleryGroups.Add;
    FCustomColorsGroup.Header.Caption := 'Custom Colors';
    AColorItem.GalleryGroups[1].Options.SpaceBetweenItemsVertically := -1;
  end;

  procedure InitColorMapItem;
  begin
    FColorMapItem.GalleryOptions.ColumnCount := 1;
    FColorMapItem.GalleryOptions.SpaceBetweenItemsAndBorder := 0;
    FColorMapItem.GalleryOptions.ItemTextKind := itkCaption;
    FColorMapItem.GalleryGroups.Add;
    FColorMapItem.OnGroupItemClick := ColorMapItemClick;
  end;

  procedure InitDropDownGallery;
  var
    ANoColorGlyph: TBitmap;
  begin
    FNoColorButton := TdxBarButton(FColorDropDownGallery.ItemLinks.AddButton.Item);
    FNoColorButton.ButtonStyle := bsChecked;
    FNoColorButton.Caption := '&No Color';
    FNoColorButton.OnClick := NoColorButtonClick;
    ANoColorGlyph := CreateColorBitmap(clNone, 16);
    FNoColorButton.Glyph := ANoColorGlyph;
    ANoColorGlyph.Free;
    FMoreColorsButton := TdxBarButton(FColorDropDownGallery.ItemLinks.AddButton.Item);
    FMoreColorsButton.Caption := '&More Colors...';
    FMoreColorsButton.OnClick := MoreColorsClick;
    FColorDialogSetup := TdxBarButton(FColorDropDownGallery.ItemLinks.AddButton.Item);
    FColorDialogSetup.Caption := '&Setup...';
    FColorDialogSetup.OnClick := ColorDialogSetupButtonClick;
  end;

  procedure PopulateGalleries;
  begin
    BuildColorSchemeGallery;
    BuildStandardColorGallery;
  end;

  procedure SelectDefaultColor;
  begin
    FNoColorButton.Click;
  end;

begin
  inherited Create;
  FColorItem := AColorItem;
  FColorMapItem := AColorMapItem;
  FColorDropDownGallery := AColorDropDownGallery;
  FColorGlyphSize := cxTextHeight(Ribbon.Fonts.Group);
  FColorDialog := TColorDialog.Create(nil);

  InitColorMapItem;
  InitColorItem;
  InitDropDownGallery;
  PopulateGalleries;
  SelectDefaultColor;
end;

destructor TColorPickerController.Destroy;
begin
  FreeAndNil(FColorDialog);
  inherited;
end;

function TColorPickerController.AddColorItem(AGalleryGroup: TdxRibbonGalleryGroup; AColor: TColor): TdxRibbonGalleryGroupItem;
var
  ABitmap: TcxBitmap;
  AColorName: string;
begin
  Result := AGalleryGroup.Items.Add;

  ABitmap := CreateColorBitmap(AColor);
  try
    Result.Glyph := ABitmap;
    if cxNameByColor(AColor, AColorName) then
      Result.Caption := AColorName
    else
      Result.Caption := '$' + IntToHex(AColor, 6);
    Result.Tag := AColor;
  finally
    ABitmap.Free;
  end;
end;

function TColorPickerController.CreateColorBitmap(AColor: TColor; AGlyphSize: Integer): TcxBitmap;
begin
  if AGlyphSize = 0 then
    AGlyphSize := FColorGlyphSize;
  Result := TcxBitmap.CreateSize(AGlyphSize, AGlyphSize);
  FillRectByColor(Result.Canvas.Handle, Result.ClientRect, AColor);
  FrameRectByColor(Result.Canvas.Handle, Result.ClientRect, clGray);
  if AColor = clNone then
    Result.RecoverAlphaChannel(0)
  else
    Result.TransformBitmap(btmSetOpaque);
end;

procedure TColorPickerController.CreateColorRow(AGalleryGroup: TdxRibbonGalleryGroup; AColorMap: TColorMap);
var
  I: Integer;
begin
  for I := Low(AColorMap) to High(AColorMap) do
    AddColorItem(AGalleryGroup, AColorMap[I]);
end;

procedure TColorPickerController.BuildThemeColorGallery;

const
  AnAccentCount = 5;

  function GetBrightness(ARGBColor: DWORD): Integer;
  begin
    Result := (GetBValue(ARGBColor) + GetGValue(ARGBColor) + GetRValue(ARGBColor)) div 3;
  end;

  procedure GetAccentColorScheme(AColorMap: TColorMap; var AnAccentColorScheme: array of TColorMap);

    procedure CreateAccent(AnAccents: array of TAccent; AMapIndex: Integer);
    var
      I: Integer;
      AColor: TColor;
    begin
      for I := Low(AnAccents) to High(AnAccents) do
      begin
        case AnAccents[I] of
          aLight80: AColor := Light(AColorMap[AMapIndex], 80);
          aLight60: AColor := Light(AColorMap[AMapIndex], 60);
          aLight50: AColor := Light(AColorMap[AMapIndex], 50);
          aLight40: AColor := Light(AColorMap[AMapIndex], 40);
          aLight35: AColor := Light(AColorMap[AMapIndex], 35);
          aLight25: AColor := Light(AColorMap[AMapIndex], 25);
          aLight15: AColor := Light(AColorMap[AMapIndex], 15);
          aLight5: AColor := Light(AColorMap[AMapIndex], 5);
          aDark10: AColor := Dark(AColorMap[AMapIndex], 90);

⌨️ 快捷键说明

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