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

📄 edit.pad

📁 Jedi Code Library JCL JVCL 组件包 JCL+JVCL超过300个组件的非可视/可视大型组件包。
💻 PAD
字号:
{
  Russian 866 codepage support
}

unit Edit;

{ Global variables }
var
  CodePage866Item: TMenuItem;
  DoWordWrapItem: TMenuItem;

{ function NewItem(const ACaption: string; AShortCut: TShortCut; AChecked, AEnabled: Boolean; AOnClick: TNotifyEvent; hCtx: Word; const AName: string): TMenuItem; }

procedure InitEdit;
var
  miEdit: TMenuItem;
begin
  miEdit := MainWindow.FindComponent('miEdit');

  CodePage866Item := NewItem('Convert From Code Page &866', 0, False, True, 0, nil {ignored - always must be nil}, 'miCodePage866');
  CodePage866Item.OnClick := CodePage866Click;
  miEdit.Add(CodePage866Item);

  DoWordWrapItem := NewItem('Format Word Wrap', 0, False, True, 0, nil {ignored - always must be nil}, 'miDoWordWrap');
  DoWordWrapItem.OnClick := DoWordWrapClick;
  miEdit.Add(DoWordWrapItem);
end;

procedure CodePage866Click(Sender: TObject);
begin
  Editor.Lines.Text := Dos2WinRes(Editor.Lines.Text);
end;

procedure DoWordWrapClick(Sender: TObject);
var
  i: Integer;
  S: string;
  VC: Integer;
  EN: Integer;
  StatusBar: TStatusBar;
  T: string;
begin
  i := 0;
  VC := Editor.VisibleColCount - 1;
  StatusBar := MainWindow.FindComponent('StatusBar');
  T := StatusBar.Panels.Items[0].Text;
  while i <= Editor.Lines.Count - 1 do
  begin
    StatusBar.Panels.Items[0].Text := IntToStr(i / Editor.Lines.Count * 100) + '%';
    StatusBar.Update;
    S := Editor.Lines.Strings[i];
    if Length(S) > VC then
    begin
      Editor.Lines.Delete(i);
      while Length(S) > VC do
      begin
        EN := FindEndOfLine(S, VC);
        Editor.Lines.Insert(i, Copy(S, 1, EN));
        S := Copy(S, EN + 1, 1000000);
        i := i + 1;
      end;
      Editor.Lines.Insert(i, S);
    end;
    i := i + 1;
  end;
  StatusBar.Panels.Items[0].Text := T;
end;

function FindEndOfLine(S: string; P: Integer): Integer;
var
  i: Integer;
  V: Integer;
begin
  Result := P;
  for i := 0 to P - 1 do
  begin
    V := P - i;
    if S[V] = ' ' then Break;
  end;
  if V > 1 then
    Result := V;
end;

end.

⌨️ 快捷键说明

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