📄 edit.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 + -