:: MVP ::
|
|
:: RSS ::
|
|
|
Как скрыть/показать каретку?
procedure TForm1.Button1Click(Sender: TObject);
begin
BCEditor1.Caret.Visible := not BCEditor1.Caret.Visible;
end;
|
Как получить позицию каретки?
// Способ первый
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(
IntToStr(BCEditor1.DisplayCaretX) + #13 +
IntToStr(BCEditor1.DisplayCaretY)
);
end;
// Способ второй
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(
IntToStr(BCEditor1.DisplayCaretPosition.Column) + #13 +
IntToStr(BCEditor1.DisplayCaretPosition.Row)
);
end;
// Способ третий
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(
IntToStr(BCEditor1.TextCaretPosition.Char) + #13 +
IntToStr(BCEditor1.TextCaretPosition.Line)
);
end;
// Способ четвертый
procedure TForm1.BCEditor1CaretChanged(ASender: TObject; X, Y: Integer);
begin
Caption := Format('Line: %d, Chr: %d', [X, Y]);
end;
|
Как изменить позицию каретки?
procedure TForm1.Button1Click(Sender: TObject);
begin
BCEditor1.DisplayCaretX := 5;
BCEditor1.DisplayCaretY := 5;
BCEditor1.SetFocus;
end;
|
Как перевести позицию курсора в экранные координаты?
uses
BCEditor.Types;
procedure TForm1.Button1Click(Sender: TObject);
var
APos: TPoint;
DisplayPosition: TBCEditorDisplayPosition;
begin
with BCEditor1 do
begin
DisplayPosition.Row := DisplayCaretPosition.Row;
DisplayPosition.Column := DisplayCaretPosition.Column;
APos := ClientToScreen(DisplayPositionToPixels(DisplayPosition));
end;
end;
|
Как вывести содержимое редактора на печать?
type
TForm1 = class(TForm)
BCEditor1: TBCEditor;
BCEditorPrint1: TBCEditorPrint;
Button1: TButton;
PrintDialog1: TPrintDialog;
procedure Button1Click(Sender: TObject);
{...}
end;
implementation
procedure TForm1.Button1Click(Sender: TObject);
begin
if PrintDialog1.Execute then
begin
BCEditorPrint1.Editor := BCEditor1;
BCEditorPrint1.Print;
end;
end;
|
Как переключаться между режимами Insert/Overwrite?
// Способ первый
uses
BCEditor.Types;
procedure TForm1.FormCreate(Sender: TObject);
begin
BCEditor1.Caret.Styles.Insert := csThinVerticalLine;
BCEditor1.Caret.Styles.Overwrite := csBlock;
end;
procedure TForm1.BCEditor1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_INSERT then
begin
case BCEditor1.TextEntryMode of
temInsert: BCEditor1.TextEntryMode := temOverwrite;
temOverwrite: BCEditor1.TextEntryMode := temInsert;
end;
Key := 0;
end;
end;
// Способ второй
uses
BCEditor.Types;
type
TBCBaseEditorHack = class(TBCBaseEditor);
procedure TForm1.FormCreate(Sender: TObject);
begin
BCEditor1.Caret.Styles.Insert := csThinVerticalLine;
BCEditor1.Caret.Styles.Overwrite := csBlock;
end;
procedure TForm1.BCEditor1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_INSERT then
TBCBaseEditorHack(Sender).ResetCaret;
end;
|
Как поставить/убрать строчный комментарий?
uses
BCEditor.Editor.KeyCommands;
procedure TForm1.FormCreate(Sender: TObject);
begin
with BCEditor1 do
begin
// Обязательно должны быть загружены стили, чтобы
// редактор "знал" какие комментарии использовать
Highlighter.LoadFromFile('JavaScript.json');
Highlighter.Colors.LoadFromFile('Blue.json');
Lines.Text := Highlighter.Info.General.Sample;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
BCEditor1.ExecuteCommand(ecLineComment, #0, nil);
end;
|
При использовании материала - ссылка на сайт обязательна
|
|