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

📄 pararvfrm.pas

📁 richviewaction 1.58 需要richview 1.9.46
💻 PAS
📖 第 1 页 / 共 2 页
字号:


procedure TfrmRVPara.FormActivate(Sender: TObject);
begin
  inherited;
  UpdateSample;
end;

procedure TfrmRVPara.SetTabs(Value: TRVTabInfos);
begin
  FTabs.Assign(Value);
  UpdateTabList(-1);
  lstTabsClick(nil);  
end;

procedure TfrmRVPara.UpdateTabList(NewIndex: Integer);
var i: Integer;
    bmp: TBitmap;
begin
  ClearXBoxItems(_lstTabs);
  ilListTabs.Clear;
  ilListTabs.AllocBy := Tabs.Count;
  for i := 0 to Tabs.Count-1 do begin
    XBoxItemsAddObject(_lstTabs, IntToStr(Tabs[i].Position), nil);
    bmp := TBitmap.Create;
    ilSmallTabs.GetBitmap(ord(Tabs[i].Align), bmp);
    ilListTabs.AddMasked(bmp, bmp.Canvas.Pixels[0,0]);
    bmp.Free;
  end;
  _btnDeleteAll.Enabled := (Tabs.Count>0) or not DeleteAllTabs;
  if NewIndex>=0 then
    SetXBoxItemIndex(_lstTabs, NewIndex)
  else if seTabPos.Indeterminate and (Tabs.Count>0) then
    SetXBoxItemIndex(_lstTabs, 0)
  else
    SetXBoxItemIndex(_lstTabs, Tabs.Find(seTabPos.AsInteger));
end;



procedure TfrmRVPara.Localize;
begin
  inherited;
  Caption := {$IFDEF USERVTNT}_GetWideString{$ENDIF}(RVA_GetS(rvam_par_Title));
  btnOk.Caption := RVA_GetS(rvam_btn_OK);
  btnCancel.Caption := RVA_GetS(rvam_btn_Cancel);
  gbAlignment.Caption := RVA_GetSH(rvam_par_Alignment);
  gbAlignment.Items[0].Caption := RVA_GetS(rvam_par_AlLeft);
  gbAlignment.Items[1].Caption := RVA_GetS(rvam_par_AlRight);
  gbAlignment.Items[2].Caption := RVA_GetS(rvam_par_AlCenter);
  gbAlignment.Items[3].Caption := RVA_GetS(rvam_par_AlJustify);
  gbSpacing.Caption := RVA_GetSH(rvam_par_Spacing);
  lblBefore.Caption := RVA_GetS(rvam_par_Before);
  lblAfter.Caption := RVA_GetS(rvam_par_After);
  lblLineSpacing.Caption := RVA_GetS(rvam_par_LineSpacing);
  lblBy.Caption := RVA_GetS(rvam_par_By);
  gbIndents.Caption := RVA_GetSH(rvam_par_Indents);
  lblLeft.Caption := RVA_GetS(rvam_par_Left);
  lblRight.Caption := RVA_GetS(rvam_par_Right);
  lblFirstLine.Caption := RVA_GetS(rvam_par_FirstLine);
  rbNegative.Caption := RVA_GetS(rvam_par_Hanging);
  rbPositive.Caption := RVA_GetS(rvam_par_Indented);
  gbSample.Caption := RVA_GetSH(rvam_par_Sample);
  cmbLineSpacing.Items[0] := RVA_GetS(rvam_par_LS_100);
  cmbLineSpacing.Items[1] := RVA_GetS(rvam_par_150);
  cmbLineSpacing.Items[2] := RVA_GetS(rvam_par_200);
  cmbLineSpacing.Items[3] := RVA_GetS(rvam_par_Multiple);
  rvs.TextStyles[0].Charset := RVA_GetCharset;
  rvs.TextStyles[1].Charset := RVA_GetCharset;
  ts1.Caption := RVA_GetSH(rvam_par_MainTab);
  ts2.Caption := RVA_GetSH(rvam_par_TabsTab);
  ts3.Caption := RVA_GetSH(rvam_par_TextFlowTab);
  lblTabPos.Caption := RVA_GetS(rvam_par_TabStopPos);
  rgTabAlign.Caption := RVA_GetSH(rvam_par_TabAlign);
  rgTabAlign.Items[0].Caption := RVA_GetS(rvam_par_TabAlignLeft);
  rgTabAlign.Items[1].Caption := RVA_GetS(rvam_par_TabAlignRight);
  rgTabAlign.Items[2].Caption := RVA_GetS(rvam_par_TabAlignCenter);
  rgLeader.Caption := RVA_GetSH(rvam_par_Leader);
  rgLeader.Items[0] := RVA_GetS(rvam_par_LeaderNone);
  lblDelTabs.Caption := RVA_GetS(rvam_par_TabsToBeDeleted);
  lblDelTabList.Caption := RVA_GetS(rvam_par_TabDelNone);
  btnDelete.Caption := RVA_GetS(rvam_par_Delete);
  btnDeleteAll.Caption := RVA_GetS(rvam_par_DeleteAll);
  btnSet.Caption := RVA_GetS(rvam_par_btnSet);
  gbPagination.Caption := RVA_GetSH(rvam_par_Pagination);
  cbKeepLinesTogether.Caption := RVA_GetS(rvam_par_KeepLinesTogether);
  cbKeepWithNext.Caption := RVA_GetS(rvam_par_KeepWithNext);  
end;

{$IFDEF RVASKINNED}
procedure TfrmRVPara.OnCreateThemedControl(OldControl,
  NewControl: TControl);
begin
  if OldControl = _cmbLineSpacing then
    _cmbLineSpacing := NewControl
  {$IFDEF USERVTNT}
  else if OldControl = pc then
    _ts2 := TTntPageControl(NewControl).Pages[1]
  {$ENDIF}
  {$IFDEF USERVKSDEVTE}
  else if OldControl = pc then
    _ts2 := TTePageControl(NewControl).Pages[1]
  {$ENDIF}
  else if OldControl = _cbKeepWithNext then
    _cbKeepWithNext := NewControl
  else if OldControl = _cbKeepLinesTogether then
    _cbKeepLinesTogether := NewControl
  else if OldControl = _rgLeader then
    _rgLeader := NewControl
  else if OldControl = _btnSet then
    _btnSet := NewControl
  else if OldControl = _btnDelete then
    _btnDelete := NewControl
  else if OldControl = _btnDeleteAll then
    _btnDeleteAll := NewControl
  else if OldControl = _lblDelTabList then
    _lblDelTabList := NewControl
  else if OldControl = _lstTabs then begin
    _lstTabs := NewControl;
    {$IFDEF USERVKSDEVTE}
    TteListBox(_lstTabs).Images := ilListTabs;
    {$ENDIF}
    end;
end;
{$ENDIF}


procedure TfrmRVPara.DrawTabItem(Canvas: TCanvas; Index: Integer; R: TRect;
  Selected: Boolean);
begin
  if Selected then begin
    Canvas.Font.Color := clHighlightText;
    Canvas.Brush.Color := clHighlight;
    end
  else begin
    Canvas.Font.Color := clWindowText;
    Canvas.Brush.Color := clWindow;
  end;
  Canvas.FillRect(R);
  ilSmallTabs.Draw(Canvas, R.Left+2, (R.Top+R.Bottom-ilSmallTabs.Height) div 2,
    ord(FTabs[Index].Align));
  inc(R.Left, 4+ilSmallTabs.Width);
  DrawText(Canvas.Handle, PChar(IntToStr(FTabs[Index].Position)), -1, R,
    DT_SINGLELINE or DT_VCENTER);
end;

procedure TfrmRVPara.lstTabsDrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
  DrawTabItem(lstTabs.Canvas, Index, Rect, odSelected in State);
end;

procedure TfrmRVPara.lstTabsClick(Sender: TObject);
var idx,i,ldr: Integer;
    s: String;
    ss: TStringList;
begin
  idx := GetXBoxItemIndex(_lstTabs);
  if idx<0 then
    exit;
  DoNotResetLeader := True;
  seTabPos.Value := FTabs[idx].Position;
  DoNotResetLeader := False;
  rgTabAlign.ItemIndex := ord(FTabs[idx].Align);
  s := Tabs[idx].Leader;
  if s='' then
    ldr := 0
  else begin
    ldr := -1;
    ss := CreateXBoxItemsCopy(_rgLeader);
    try
      for i := 1 to ss.Count-1 do
        if s=ss[i][5] then begin
          ldr := i;
          break;
        end;
    finally
      ss.Free;
    end;
  end;
  SetXBoxItemIndex(_rgLeader, ldr);
  _btnSet.Enabled := True;
  _btnDelete.Enabled := True;
end;

procedure TfrmRVPara.seTabPosChange(Sender: TObject);
begin
  _btnSet.Enabled := not seTabPos.Indeterminate;
  _btnDelete.Enabled := not seTabPos.Indeterminate;
  if not DoNotResetLeader then
    SetXBoxItemIndex(_rgLeader, 0);
end;

procedure TfrmRVPara.btnDeleteAllClick(Sender: TObject);
begin
  TabsModified := True;
  DeleteAllTabs := True;
  UpdateDelTabList;
  FTabs.Clear;
  UpdateTabList(-1);
end;

procedure TfrmRVPara.UpdateDelTabList;
var i: Integer;
    s: String;
begin
  if DeleteAllTabs then
    s := RVA_GetS(rvam_par_TabDelAll)
  else if FTabsToDelete.Count=0 then
    s := RVA_GetS(rvam_par_TabDelNone)
  else begin
    s := '';
    for i := 0 to FTabsToDelete.Count-2 do
      s := s+IntToStr(FTabsToDelete[i])+'; ';
    s := s+IntToStr(FTabsToDelete[FTabsToDelete.Count-1])+'.';
  end;
  SetControlCaption(_lblDelTabList, s);
end;

procedure TfrmRVPara.btnDeleteClick(Sender: TObject);
var p,idx: Integer;
begin
  if seTabPos.Indeterminate then begin
    Beep;
    exit;
  end;
  TabsModified := True;
  p := seTabPos.AsInteger;
  if not DeleteAllTabs then begin
    FTabsToDelete.AddUnique(p);
    FTabsToDelete.Sort;
    UpdateDelTabList;
  end;
  idx := Tabs.Find(p);
  if idx>=0 then
    Tabs[idx].Free;
  if idx>=Tabs.Count then
    dec(idx);
  UpdateTabList(idx);
  lstTabsClick(nil);
end;

procedure TfrmRVPara.btnSetClick(Sender: TObject);
var p,idx: Integer;
    tab: TRVTabInfo;
    SL: TStringList;
begin
  if seTabPos.Indeterminate then begin
    Beep;
    exit;
  end;
  TabsModified := True;
  p := seTabPos.AsInteger;
  idx := Tabs.Find(p);
  if idx<0 then begin
    Tabs.Add;
    idx := Tabs.Count-1;
  end;
  tab := Tabs[idx];
  if rgTabAlign.ItemIndex>=0 then
    tab.Align := TRVTabAlign(rgTabAlign.ItemIndex);
  if GetXBoxItemIndex(_rgLeader) in [1..4] then begin
    SL := CreateXBoxItemsCopy(_rgLeader);
    tab.Leader := SL[GetXBoxItemIndex(_rgLeader)][5];
    SL.Free;
    end
  else
    tab.Leader := '';
  tab.Position := seTabPos.AsInteger;
  UpdateTabList(tab.Index);
  lstTabsClick(nil);
end;

procedure TfrmRVPara.HideTabsPage;
begin
  HideTabSheet(_ts2);
end;

end.

⌨️ 快捷键说明

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