unit2.pas.svn-base
来自「支持自定义语法高亮显示的编辑器控件」· SVN-BASE 代码 · 共 1,327 行 · 第 1/3 页
SVN-BASE
1,327 行
Delete(Str, 1, P);
P := Pos('|', Str);
if P <> 0 then
Str := Copy(Str, 1, P - 1);
end;
if Pos(UpperCase(s), UpperCase(Str)) <> 0 then
begin
result := true;
Handled := true;
end;
end;
begin
with EasyEdit3 do
if PopupListBox.Visible then
begin
Index := PopupListBox.ItemIndex;
if (Index >= 0) and (Index < AStrings.Count) and _Check(AStrings[Index]) then
Exit;
end;
for i := 0 to AStrings.Count - 1 do
if _Check(AStrings[i]) then
begin
Index := i;
Exit;
end;
Handled := false;
end;
{------------------------------------------------------}
procedure TfrmContainer.EasycbBeginColorStyleChange(Sender: TObject);
begin
EasyEdit4.Background.GradientStartColor := cbBeginColorStyle.SelectedColor;
end;
{------------------------------------------------------}
procedure TfrmContainer.EasycbEndColorStyleChange(Sender: TObject);
begin
EasyEdit4.Background.GradientEndColor := cbEndColorStyle.SelectedColor;
end;
{------------------------------------------------------}
procedure TfrmContainer.lbLanguagesClick(Sender: TObject);
var
FileLanguageText,
FileLanguageRules : String;
begin
FileLanguageRules := ExtractFilePath(ParamStr(0))+ '..\' + 'syntax\' + LanguagesRules[lbLanguages.ItemIndex+1];
FileLanguageText := ExtractFilePath(ParamStr(0)) + '..\' + 'text\' + LanguagesText[lbLanguages.ItemIndex+1];
EasyEditorParser3.Rules.LoadFromFile(FileLanguageRules);
EasyEdit3.Lines.LoadFromFile(FileLanguageText);
end;
{------------------------------------------------------}
procedure TfrmContainer.btFindClick(Sender: TObject);
begin
EasyEdit5.ExecuteDialog(cFind);
end;
{------------------------------------------------------}
procedure TfrmContainer.btReplaceClick(Sender: TObject);
begin
EasyEdit5.ExecuteDialog(cReplace);
end;
{------------------------------------------------------}
procedure TfrmContainer.btGoToClick(Sender: TObject);
begin
EasyEdit5.ExecuteDialog(cGotoLine);
end;
{------------------------------------------------------}
procedure TfrmContainer.btCustomizeClick(Sender: TObject);
begin
ShowEditorSettings;
end;
{------------------------------------------------------}
procedure TfrmContainer.chbLineNumbersClick(Sender: TObject);
begin
with EasyEdit1.LineNumbers do
Visible := chbLineNumbers.Checked;
end;
{------------------------------------------------------}
procedure TfrmContainer.chbLinesOnGutterClick(Sender: TObject);
begin
with EasyEdit1.LineNumbers do
if chbLinesOnGutter.Checked and chbShowGutter.Checked then
Options := Options + [lnPaintOnGutter]
else
Options := Options - [lnPaintOnGutter];
end;
{------------------------------------------------------}
procedure TfrmContainer.chbShowGutterClick(Sender: TObject);
begin
with EasyEdit1 do
try
if chbShowGutter.Checked then
begin
Options := Options + [eoPaintGutter];
Gutter.Width := StrToInt(edWidth.Text);
end
else
Options := Options - [eoPaintGutter];
except
end;
end;
{------------------------------------------------------}
procedure TfrmContainer.edWidthEnter(Sender: TObject);
begin
with EasyEdit1.Gutter do
if chbShowGutter.Checked then
Width := StrToInt(edWidth.Text);
end;
{------------------------------------------------------}
procedure TfrmContainer.cbGutterColorChange(Sender: TObject);
begin
with EasyEdit1.Gutter.Brush do
if chbShowGutter.Checked then
Color := cbGutterColor.SelectedColor;
end;
{------------------------------------------------------}
procedure TfrmContainer.chbShowMarginClick(Sender: TObject);
begin
with EasyEdit1 do
if chbShowMargin.Checked then
begin
Options := Options + [eoPaintMargin];
Margin.Pen.Color := EasyColorBox1.SelectedColor;
end
else
Options := Options - [eoPaintMargin];
end;
{------------------------------------------------------}
procedure TfrmContainer.edMarginPositionEnter(Sender: TObject);
begin
with EasyEdit1.Margin do
if chbShowMargin.Checked then
Position := StrToInt(edMarginPosition.Text);
end;
{------------------------------------------------------}
procedure TfrmContainer.EasyColorBox1Change(Sender: TObject);
begin
with EasyEdit1.Margin.Pen do
if chbShowMargin.Checked then
Color := EasyColorBox1.SelectedColor;
end;
{------------------------------------------------------}
procedure TfrmContainer.SpeedButton1Click(Sender: TObject);
begin
EasyEdit1.ToggleBookMark(1)
end;
{------------------------------------------------------}
procedure TfrmContainer.SpeedButton12Click(Sender: TObject);
begin
with EasyEdit1.EditSource do
ToggleLineStyle(CurrentPosition.Y, 0);
end;
{------------------------------------------------------}
procedure TfrmContainer.chbWordWrapClick(Sender: TObject);
begin
EasyEdit2.WordWrap := chbWordWrap.Checked;
end;
{------------------------------------------------------}
procedure TfrmContainer.chbWrapAtMarginClick(Sender: TObject);
begin
with EasyEdit2 do
if chbWrapAtMargin.Checked and chbWordWrap.Checked then
Options := Options +[eoBreakWordsAtMargin]
else
Options := Options -[eoBreakWordsAtMargin];
end;
{------------------------------------------------------}
procedure TfrmContainer.chbUseTabCharacterClick(Sender: TObject);
begin
with EasyEdit2.EditSource do
if chbUseTabCharacter.Checked then
Options := Options + [srUseTab]
else
Options := Options - [srUseTab];
end;
{------------------------------------------------------}
procedure TfrmContainer.chbCursorThroughTabsClick(Sender: TObject);
begin
with EasyEdit2.EditSource do
if chbCursorThroughTabs.Checked then
Options := Options + [srCursorThroughTabs]
else
Options := Options - [srCursorThroughTabs];
end;
{------------------------------------------------------}
procedure TfrmContainer.cbBackgroundOptionsChange(Sender: TObject);
begin
with EasyEdit4.Background do
Option := TEasyBackgroundOption(cbBackgroundOptions.ItemIndex);
end;
{------------------------------------------------------}
procedure TfrmContainer.cbBeginColorStyleChange(Sender: TObject);
begin
with EasyEdit4.Background do
GradientStartColor := cbBeginColorStyle.SelectedColor;
end;
{------------------------------------------------------}
procedure TfrmContainer.cbEndColorStyleChange(Sender: TObject);
begin
with EasyEdit4.Background do
GradientEndColor := cbEndColorStyle.SelectedColor;
end;
{------------------------------------------------------}
procedure TfrmContainer.cbGutterOptionsChange(Sender: TObject);
begin
with EasyEdit4.Gutter.Background do
Option := TEasyBackgroundOption(cbGutterOptions.ItemIndex);
end;
{------------------------------------------------------}
procedure TfrmContainer.ComboBox1Change(Sender: TObject);
begin
case ComboBox1.ItemIndex of
0 : EasyEdit8.PageType := ptNormal;
1 : begin
EasyEdit8.PageType := ptPageBreaks;
end;
2 : begin
EasyEdit8.PageType := ptPageLayout;
end;
end;
end;
{------------------------------------------------------}
procedure TfrmContainer.cbColorMappingChange(Sender: TObject);
begin
case cbColorMapping.ItemIndex of
0 : EasyEditorParser3.ColorMapping := cmClassic;
1 : EasyEditorParser3.ColorMapping := cmDefault;
2 : EasyEditorParser3.ColorMapping := cmOcean;
3 : EasyEditorParser3.ColorMapping := cmTwilight;
4 : EasyEditorParser3.ColorMapping := cmVisualStudio;
5 : EasyEditorParser3.ColorMapping := cmVisualStudioNET;
end;
end;
{------------------------------------------------------}
procedure TfrmContainer.chbActiveClick(Sender: TObject);
begin
Table1.Active := chbActive.Checked;
end;
{------------------------------------------------------}
procedure TfrmContainer.chbAutoDisplayClick(Sender: TObject);
begin
EasyDBEdit1.AutoDisplay := chbAutoDisplay.Checked;
DBMemo1.AutoDisplay := chbAutoDisplay.Checked;
end;
{------------------------------------------------------}
procedure TfrmContainer.chbReadOnlyClick(Sender: TObject);
begin
EasyDBEdit1.ReadOnly := chbReadOnly.Checked;
DBMemo1.ReadOnly := chbReadOnly.Checked;
end;
{------------------------------------------------------}
procedure TfrmContainer.Label30Click(Sender: TObject);
begin
JumpToURL('www.dream-com.com/download.html');
end;
{------------------------------------------------------}
procedure TfrmContainer.Label29Click(Sender: TObject);
begin
JumpToURL(Label29.Caption);
end;
{------------------------------------------------------}
procedure TfrmContainer.Label31Click(Sender: TObject);
begin
JumpToURL('www.dream-com.com/download.html');
end;
{------------------------------------------------------}
procedure TfrmContainer.Label10Click(Sender: TObject);
begin
JumpToURL(Label10.Caption);
end;
{------------------------------------------------------}
procedure TfrmContainer.Label11Click(Sender: TObject);
begin
JumpToURL('mailto:'+Label11.Caption);
end;
{------------------------------------------------------}
procedure TfrmContainer.FormDestroy(Sender: TObject);
begin
EasyEdit7.EditSource := nil;
EasyEdit6.EditSource := nil;
end;
{------------------------------------------------------}
procedure TfrmContainer.cbBeginColorStyleGutterChange(Sender: TObject);
begin
with EasyEdit4.Gutter.Background do
GradientStartColor := cbBeginColorStyleGutter.SelectedColor;
end;
{------------------------------------------------------}
procedure TfrmContainer.cbEndColorStyleGutterChange(Sender: TObject);
begin
with EasyEdit4.Gutter.Background do
GradientEndColor := cbEndColorStyleGutter.SelectedColor;
end;
{------------------------------------------------------}
procedure TfrmContainer.btLoadClick(Sender: TObject);
begin
if OpenDialog1.Execute then
EasyEdit5.Lines.LoadFromFile(OpenDialog1.FileName);
end;
{------------------------------------------------------}
procedure TfrmContainer.btSaveClick(Sender: TObject);
begin
if SaveDialog1.Execute then
begin
EasyEdit5.EditSource.SaveToFile(SaveDialog1.FileName);
UpdateModified;
end;
end;
{------------------------------------------------------}
procedure TfrmContainer.EasyEdit1WordSpell(Sender: TObject;
const s: String; var Correct: Boolean);
begin
Correct := false;
end;
{------------------------------------------------------}
procedure TfrmContainer.EasyEdit3AutoComplete(Sender: TObject;
Strings: TStrings; AKey: Char; var AllowPopup: Boolean);
const
tstring = 1;
begin
AllowPopup := (AKey = '.');
with EasyEdit3 do
AllowPopup := AllowPopup and (Lines.GetData(CurrentPosition.Y, CurrentPosition.X + 1) <> tstring);
if AllowPopup then
FillCodeCompletion(EasyEdit3, Strings);
end;
{------------------------------------------------------}
procedure TfrmContainer.EasyEdit3DisplayHint(Sender: TObject;
var s: String; AKey: Char; var AllowPopup: Boolean);
begin
AllowPopup := AKey = '=';
if AllowPopup then
s := Format(sPropStr, ['Sample prop', 'sample type']);
end;
{------------------------------------------------------}
procedure TfrmContainer.EasyEdit3BeforeInsertPopup(Sender: TObject;
var s: String);
var
P : integer;
begin
P := Pos('|', s);
if (P = 0) or (FindPos('|', s, P + 1) = 0) then
Exit;
Delete(s, 1, P);
P := Pos('|', s);
if P <> 0 then
Delete(s, P, MaxInt);
s := Trim(s);
end;
{------------------------------------------------------}
procedure TfrmContainer.btnRtfClick(Sender: TObject);
begin
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?