MG: completion form colors now corresponds to editor

git-svn-id: trunk@1727 -
This commit is contained in:
lazarus 2002-06-05 14:19:46 +00:00
parent 610cb824e9
commit 5688e3f382
3 changed files with 205 additions and 166 deletions

View File

@ -52,7 +52,8 @@ uses
type
TSynBaseCompletionPaintItem = function(AKey: string; ACanvas: TCanvas;
X, Y: integer): boolean of object;
X, Y: integer
{$IFDEF SYN_LAZARUS}; Selected: boolean{$ENDIF}): boolean of object;
TCodeCompletionEvent = procedure(var Value: string; Shift: TShiftState)
of object;
TValidateEvent = procedure(Sender: TObject; Shift: TShiftState) of object;
@ -75,6 +76,8 @@ type
FAnsi: boolean;
{$IFDEF SYN_LAZARUS}
FOnSearchPosition:TSynBaseCompletionSearchPosition;
FTextColor: TColor;
FTextSelectedColor: TColor;
{$ENDIF}
procedure SetCurrentString(const Value: string);
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
@ -119,6 +122,9 @@ type
property FontHeight:integer read FFontHeight write SetFontHeight;
property OnSearchPosition:TSynBaseCompletionSearchPosition
read FOnSearchPosition write FOnSearchPosition;
property TextColor: TColor read FTextColor write FTextColor;
property TextSelectedColor: TColor
read FTextSelectedColor write FTextSelectedColor;
{$ENDIF}
end;
@ -163,6 +169,7 @@ type
procedure Deactivate;
{$IFDEF SYN_LAZARUS}
function IsActive: boolean;
function TheForm: TSynBaseCompletionForm;
{$ENDIF}
property OnKeyPress: TKeyPressEvent read GetOnKeyPress write SetOnKeyPress;
property OnKeyDelete: TNotifyEvent read GetOnKeyDelete write SetOnKeyDelete;
@ -294,6 +301,8 @@ begin
Scroll.Width := 10;
{$IFDEF SYN_LAZARUS}
Scroll.Visible := True;
FTextColor:=clBlack;
FTextSelectedColor:=clWhite;
{$ENDIF}
Visible := false;
FFontHeight := Canvas.TextHeight('Cyrille de Brebisson');
@ -421,24 +430,38 @@ begin
canvas.Rectangle(0, 0, Width, Height);
for i := 0 to min(NbLinesInWindow - 1, ItemList.Count - 1) do begin
if i + Scroll.Position = Position then begin
Canvas.Brush.Color := ClSelect;
Canvas.Brush.Color := clSelect;
Canvas.Pen.Color := clSelect;
Canvas.Rectangle(0, FFontHeight * i, width, FFontHeight * (i + 1));
Canvas.Pen.Color := clBlack;
{$IFDEF SYN_LAZARUS}
Canvas.Font.Color := TextSelectedColor;
{$ELSE}
Canvas.Font.Color := clWhite;
{$ENDIF}
Hint := ItemList[Position];
end
else
Begin
Canvas.Brush.Color := Color;
{$IFDEF SYN_LAZARUS}
Canvas.Font.Color := TextColor;
{$ELSE}
Canvas.Font.Color := clBlack;
{$ENDIF}
end;
if not Assigned(OnPaintItem)
or not OnPaintItem(ItemList[Scroll.Position + i], Canvas, 0, FFontHeight * i)
or not OnPaintItem(ItemList[Scroll.Position + i], Canvas,
{$IFDEF SYN_LAZARUS}
1, FFontHeight * i +1, i + Scroll.Position = Position
{$ELSE}
0, FFontHeight * i
{$ENDIF}
)
then
Begin
Canvas.TextOut(2, FFontHeight * i, ItemList[Scroll.Position + i]);
Canvas.TextOut(2, FFontHeight * i, ItemList[Scroll.Position + i]);
end;
end;
{$IFNDEF SYN_LAZARUS}
@ -749,6 +772,11 @@ function TSynBaseCompletion.IsActive: boolean;
begin
Result:=(Form<>nil) and (Form.Visible);
end;
function TSynBaseCompletion.TheForm: TSynBaseCompletionForm;
begin
Result:=Form;
end;
{$ENDIF}
procedure PrettyTextOut(c: TCanvas; x, y: integer; s: string);

View File

@ -722,8 +722,10 @@ type
// inherited events
property OnClick;
property OnDblClick;
{$IFDEF SYN_LAZARUS}
property OnTripleClick;
property OnQuadClick;
{$ENDIF}
property OnDragDrop;
property OnDragOver;
{$IFDEF SYN_COMPILER_4_UP}

View File

@ -303,6 +303,15 @@ type
FOnCreateBreakPoint: TOnCreateDeleteBreakPoint;
FOnDeleteBreakPoint: TOnCreateDeleteBreakPoint;
// colors for the completion form (popup form, e.g. word completion)
FActiveEditDefaultFGColor: TColor;
FActiveEditDefaultBGColor: TColor;
FActiveEditSelectedFGColor: TColor;
FActiveEditSelectedBGColor: TColor;
FActiveEditKeyFGColor: TColor;
FActiveEditKeyBGColor: TColor;
FActiveEditSymbolFGColor: TColor;
FActiveEditSymbolBGColor: TColor;
// PopupMenu
Procedure BuildPopupMenu;
@ -323,12 +332,13 @@ type
Procedure BreakPointCreated(Sender : TObject; Line : Integer);
Procedure BreakPointDeleted(Sender : TObject; Line : Integer);
procedure UpdateActiveEditColors;
protected
ccSelection : String;
MarksImgList : TImageList;
Function CreateNotebook : Boolean;
//Function DisplayPage(SE : TSourceEditor) : Boolean;
Function NewSE(Pagenum : Integer) : TSourceEditor;
Procedure EditorChanged(sender : TObject);
@ -336,7 +346,7 @@ type
Procedure ccCancel(Sender : TObject);
procedure ccComplete(var Value: ansistring; Shift: TShiftState);
function OnSynCompletionPaintItem(AKey: string; ACanvas: TCanvas;
X, Y: integer): boolean;
X, Y: integer; ItemSelected: boolean): boolean;
procedure OnSynCompletionSearchPosition(var APosition:integer);
procedure DeactivateCompletionForm;
@ -364,7 +374,6 @@ type
procedure KeyDown(var Key : Word; Shift : TShiftState); override;
public
//SearchPaths: string;
FindReplaceDlgHistoryIndex: array[TFindDlgComponent] of integer;
FindReplaceDlgUserText: array[TFindDlgComponent] of string;
@ -388,8 +397,6 @@ type
procedure ClearErrorLines;
procedure ClearExecutionLines;
//Procedure DisplayCodefromUnitName(const UnitName : String);
Procedure NewClicked(Sender: TObject);
procedure OpenClicked(Sender : TObject);
procedure SaveClicked(Sender : TObject);
@ -1012,6 +1019,7 @@ begin
fSyntaxHighlighterType:=ASyntaxHighlighterType;
end;
EditorOpts.GetSynEditSelectedColor(FEditor);
TSourceNoteBook(FAOwner).UpdateActiveEditColors;
end;
procedure TSourceEditor.SetErrorLine(NewLine: integer);
@ -1033,12 +1041,8 @@ end;
Function TSourceEditor.RefreshEditorSettings : Boolean;
Begin
Result:=true;
try
SetSyntaxHighlighterType(fSyntaxHighlighterType);
EditorOpts.GetSynEditSettings(FEditor);
except
Result:=false;
end;
SetSyntaxHighlighterType(fSyntaxHighlighterType);
EditorOpts.GetSynEditSettings(FEditor);
end;
Procedure TSourceEditor.ccAddMessage(Texts : String);
@ -1056,9 +1060,9 @@ var
NewName: string;
i: integer;
Begin
{$IFDEF IDE_DEBUG}
writeln('TSourceEditor.CreateEditor A ');
{$ENDIF}
{$IFDEF IDE_DEBUG}
writeln('TSourceEditor.CreateEditor A ');
{$ENDIF}
if not assigned(FEditor) then Begin
i:=0;
repeat
@ -1217,13 +1221,13 @@ procedure TSourceEditor.UpdateCodeBuffer;
// copy the source from EditorComponent
begin
if not FEditor.Modified then exit;
{$IFDEF IDE_DEBUG}
if FCodeBuffer=nil then begin
writeln('');
writeln('*********** Oh, no: UpdateCodeBuffer ************');
writeln('');
end;
{$ENDIF}
{$IFDEF IDE_DEBUG}
if FCodeBuffer=nil then begin
writeln('');
writeln('*********** Oh, no: UpdateCodeBuffer ************');
writeln('');
end;
{$ENDIF}
if FCodeBuffer=nil then exit;
IncreaseIgnoreCodeBufferLock;
FModified:=FModified or FEditor.Modified;
@ -1689,7 +1693,7 @@ begin
end;
function TSourceNotebook.OnSynCompletionPaintItem(AKey: string;
ACanvas: TCanvas; X, Y: integer): boolean;
ACanvas: TCanvas; X, Y: integer; ItemSelected: boolean): boolean;
var i: integer;
begin
with ACanvas do begin
@ -1700,7 +1704,11 @@ begin
Font.Size:=EditorOpts.EditorFontHeight;
end;
Font.Style:=[];
//Font.Name:='courier';
if not ItemSelected then
Font.Color:=FActiveEditDefaultFGColor
else
Font.Color:=FActiveEditSelectedFGColor;
i := 1;
while i <= Length(AKey) do
case AKey[i] of
@ -1724,7 +1732,7 @@ begin
inc(i, 2);
end;
else
TextOut(x, y, AKey[i]);
TextOut(x+1, y, AKey[i]);
x := x + TextWidth(AKey[i]);
inc(i);
end;
@ -1894,17 +1902,19 @@ var
NewStr,ParamStr,PropName : String;
Count,Offset,Len : Integer;
MethodRec : TMethodRec;
ActiveEditor: TSynEdit;
Begin
CompInt := nil;
CurCompletionControl := TSynBaseCompletion(Sender);
S := TStringList.Create;
Prefix := CurCompletionControl.CurrentString;
ActiveEditor:=GetActiveSE.EditorComponent;
case CurrentCompletionType of
ctIdentCompletion:
begin
ccSelection := Prefix;
with GetActiveSE.EditorComponent do begin
with ActiveEditor do begin
CurLine:=LineText;
X1:=CaretX-1;
end;
@ -2034,44 +2044,53 @@ Begin
CurCompletionControl.ItemList := S;
CurCompletionControl.CurrentString:=Prefix;
// set colors
if (ActiveEditor<>nil) and (CurCompletionControl.TheForm<>nil) then begin
with CurCompletionControl.TheForm do begin
Color:=FActiveEditDefaultBGColor;
clSelect:=FActiveEditSelectedBGColor;
TextColor:=FActiveEditDefaultFGColor;
TextSelectedColor:=FActiveEditSelectedFGColor;
end;
end;
End;
Function TSourceNotebook.CreateNotebook : Boolean;
Begin
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.CreateNotebook] START');
{$ENDIF}
{$IFDEF IDE_MEM_CHECK}
CheckHeap('[TSourceNotebook.CreateNotebook] A '+IntToStr(GetMem_Cnt));
{$ENDIF}
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.CreateNotebook] START');
{$ENDIF}
{$IFDEF IDE_MEM_CHECK}
CheckHeap('[TSourceNotebook.CreateNotebook] A '+IntToStr(GetMem_Cnt));
{$ENDIF}
ClearUnUsedEditorComponents(false);
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.CreateNotebook] A');
{$ENDIF}
{$IFDEF IDE_MEM_CHECK}
CheckHeap('[TSourceNotebook.CreateNotebook] B '+IntToStr(GetMem_Cnt));
{$ENDIF}
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.CreateNotebook] A');
{$ENDIF}
{$IFDEF IDE_MEM_CHECK}
CheckHeap('[TSourceNotebook.CreateNotebook] B '+IntToStr(GetMem_Cnt));
{$ENDIF}
Result := False;
if not assigned(Notebook) then
Begin
Result := True;
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.CreateNotebook] B');
{$ENDIF}
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.CreateNotebook] B');
{$ENDIF}
Notebook := TNotebook.Create(self);
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.CreateNotebook] C');
{$ENDIF}
{$IFDEF IDE_MEM_CHECK}
CheckHeap('[TSourceNotebook.CreateNotebook] C '+IntToStr(GetMem_Cnt));
{$ENDIF}
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.CreateNotebook] C');
{$ENDIF}
{$IFDEF IDE_MEM_CHECK}
CheckHeap('[TSourceNotebook.CreateNotebook] C '+IntToStr(GetMem_Cnt));
{$ENDIF}
with Notebook do
Begin
Name:='SrcEditNotebook';
Parent := Self;
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.CreateNotebook] D');
{$ENDIF}
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.CreateNotebook] D');
{$ENDIF}
Align := alClient;
Left := 0;
Top :=2;
@ -2080,25 +2099,25 @@ writeln('[TSourceNotebook.CreateNotebook] D');
Pages.Strings[0] := 'unit1';
PageIndex := 0; // Set it to the first page
OnPageChanged := @NotebookPageChanged;
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.CreateNotebook] E');
{$ENDIF}
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.CreateNotebook] E');
{$ENDIF}
Visible := true;
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.CreateNotebook] F');
{$ENDIF}
{$IFDEF IDE_MEM_CHECK}
CheckHeap('[TSourceNotebook.CreateNotebook] F '+IntToStr(GetMem_Cnt));
{$ENDIF}
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.CreateNotebook] F');
{$ENDIF}
{$IFDEF IDE_MEM_CHECK}
CheckHeap('[TSourceNotebook.CreateNotebook] F '+IntToStr(GetMem_Cnt));
{$ENDIF}
end; //with
Show; //used to display the code form
end;
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.CreateNotebook] END');
{$ENDIF}
{$IFDEF IDE_MEM_CHECK}
CheckHeap('[TSourceNotebook.CreateNotebook] END '+IntToStr(GetMem_Cnt));
{$ENDIF}
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.CreateNotebook] END');
{$ENDIF}
{$IFDEF IDE_MEM_CHECK}
CheckHeap('[TSourceNotebook.CreateNotebook] END '+IntToStr(GetMem_Cnt));
{$ENDIF}
End;
Procedure TSourceNotebook.ClearUnUsedEditorComponents(Force: boolean);
@ -2239,6 +2258,13 @@ Begin
end;
{-------------------------------------------------------------------------------
Procedure TSourceNotebook.EditorChanged
Params: Sender : TObject
Result: none
Called whenever an editor status changes.
-------------------------------------------------------------------------------}
Procedure TSourceNotebook.EditorChanged(Sender : TObject);
var SenderDeleted: boolean;
Begin
@ -2251,25 +2277,25 @@ End;
Function TSourceNotebook.NewSE(PageNum : Integer) : TSourceEditor;
Begin
{$IFDEF IDE_DEBUG}
writeln('TSourceNotebook.NewSE A ');
{$ENDIF}
{$IFDEF IDE_DEBUG}
writeln('TSourceNotebook.NewSE A ');
{$ENDIF}
if CreateNotebook then Pagenum := 0;
{$IFDEF IDE_DEBUG}
writeln('TSourceNotebook.NewSE A2 ');
{$ENDIF}
{$IFDEF IDE_DEBUG}
writeln('TSourceNotebook.NewSE A2 ');
{$ENDIF}
if Pagenum < 0 then begin
// add a new page right to the current
Pagenum := Notebook.PageIndex+1;
Notebook.Pages.Insert(PageNum,FindUniquePageName('',-1));
end;
{$IFDEF IDE_DEBUG}
writeln('TSourceNotebook.NewSE B ',Notebook.PageIndex,',',NoteBook.Pages.Count);
{$ENDIF}
{$IFDEF IDE_DEBUG}
writeln('TSourceNotebook.NewSE B ',Notebook.PageIndex,',',NoteBook.Pages.Count);
{$ENDIF}
Result := TSourceEditor.Create(Self,Notebook.Page[PageNum]);
{$IFDEF IDE_DEBUG}
writeln('TSourceNotebook.NewSE C ');
{$ENDIF}
{$IFDEF IDE_DEBUG}
writeln('TSourceNotebook.NewSE C ');
{$ENDIF}
FSourceEditorList.Add(Result);
Result.FShortName:=Notebook.Pages[PageNum];
Result.CodeTemplates:=CodeTemplateModul;
@ -2281,64 +2307,11 @@ writeln('TSourceNotebook.NewSE C ');
Result.OnMouseDown := @EditorMouseDown;
Result.OnCreateBreakPoint := @BreakPointCreated;
Result.OnDeleteBreakPoint := @BreakPointDeleted;
{$IFDEF IDE_DEBUG}
writeln('TSourceNotebook.NewSE end ');
{$ENDIF}
{$IFDEF IDE_DEBUG}
writeln('TSourceNotebook.NewSE end ');
{$ENDIF}
end;
{Procedure TSourceNotebook.DisplayCodefromUnitName(const UnitName : String);
Var
I,X : Integer;
Begin
X := FSourceEditorList.Count;
if X = 0 then Exit;
I := 0;
while (I < X)
and (Uppercase(TSourceEditor(FSourceEditorList.Items[I]).Shortname)
<> Uppercase(Unitname)) do
Begin
inc(i);
end;
if I < X then
DisplayPage(TSourceEditor(FSOurceEditorList.Items[I]));
end;
Function TSourceNotebook.DisplayPage(SE : TSourceEditor) : Boolean;
Var
I,X : Integer;
TempEditor : TControl;
Begin
Result := False;
for X := 0 to Notebook.Pages.Count-1 do
Begin
With Notebook.Page[X] do
for I := 0 to ControlCount-1 do
if Controls[I] is TSynEdit then
Begin
TempEditor := Controls[I];
Break;
end;
if SE.EditorComponent = TempEditor then Begin
Writeln('The editor was found on page '+inttostr(x));
Break;
end;
End;
if SE.EditorComponent = TempEditor then
Begin
Notebook.PageIndex := X;
BringWindowToTop(SourceNoteBook.Handle);
end
else
Begin //the SE isn't on a page so we need to create a page for it.
Notebook.PageIndex := Notebook.Pages.Add(SE.ShortName);
SE.ReParent(Notebook.Page[Notebook.PageIndex]);
end;
end;}
function TSourceNotebook.FindSourceEditorWithPageIndex(
PageIndex:integer):TSourceEditor;
var I:integer;
@ -2744,61 +2717,56 @@ Var
TempEditor : TSourceEditor;
Begin
//create a new page
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.NewFile] A ');
{$ENDIF}
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.NewFile] A ');
{$ENDIF}
TempEditor := NewSE(-1);
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.NewFile] B ');
{$ENDIF}
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.NewFile] B ');
{$ENDIF}
TempEditor.ShortName := NewShortName;
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.NewFile] C ');
{$ENDIF}
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.NewFile] C ');
{$ENDIF}
TempEditor.CodeBuffer:=ASource;
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.NewFile] D ');
{$ENDIF}
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.NewFile] D ');
{$ENDIF}
Notebook.Pages[Notebook.PageIndex] :=
FindUniquePageName(NewShortName,Notebook.PageIndex);
{ if (SplashForm.Visible) and (Notebook.Pages.Count=1) then begin
SplashForm.Hide;
SplashForm.Show;
Application.ProcessMessages;
end;}
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.NewFile] end');
{$ENDIF}
{$IFDEF IDE_DEBUG}
writeln('[TSourceNotebook.NewFile] end');
{$ENDIF}
end;
Procedure TSourceNotebook.CloseFile(PageIndex:integer);
var TempEditor: TSourceEditor;
Begin
{$IFDEF IDE_DEBUG}
writeln('TSourceNotebook.CloseFile A PageIndex=',PageIndex);
{$ENDIF}
{$IFDEF IDE_DEBUG}
writeln('TSourceNotebook.CloseFile A PageIndex=',PageIndex);
{$ENDIF}
TempEditor:=FindSourceEditorWithPageIndex(PageIndex);
if TempEditor=nil then exit;
TempEditor.Close;
TempEditor.Free;
if Notebook.Pages.Count>1 then begin
//writeln('TSourceNotebook.CloseFile B PageIndex=',PageIndex);
//writeln('TSourceNotebook.CloseFile B PageIndex=',PageIndex);
Notebook.Pages.Delete(PageIndex);
// switch to left PageIndex
if PageIndex>0 then
Notebook.PageIndex:=PageIndex-1;
//writeln('TSourceNotebook.CloseFile C PageIndex=',PageIndex);
//writeln('TSourceNotebook.CloseFile C PageIndex=',PageIndex);
UpdateStatusBar;
end else begin
//writeln('TSourceNotebook.CloseFile D PageIndex=',PageIndex);
//writeln('TSourceNotebook.CloseFile D PageIndex=',PageIndex);
Notebook.Free;
//writeln('TSourceNotebook.CloseFile E PageIndex=',PageIndex);
//writeln('TSourceNotebook.CloseFile E PageIndex=',PageIndex);
Notebook:=nil;
Hide;
end;
{$IFDEF IDE_DEBUG}
writeln('TSourceNotebook.CloseFile END');
{$ENDIF}
{$IFDEF IDE_DEBUG}
writeln('TSourceNotebook.CloseFile END');
{$ENDIF}
end;
Procedure TSourceNotebook.NewClicked(Sender: TObject);
@ -2975,6 +2943,7 @@ Begin
begin
TempEditor.FocusEditor;
UpdateStatusBar;
UpdateActiveEditColors;
if Assigned(FOnEditorVisibleChanged) then
FOnEditorVisibleChanged(sender);
end;
@ -3202,6 +3171,46 @@ begin
OnDeleteBreakPoint(self,Line);
end;
procedure TSourceNotebook.UpdateActiveEditColors;
var ASynEdit: TSynEdit;
SrcEDit: TSourceEditor;
begin
SrcEdit:=GetActiveSe;
if SrcEdit=nil then exit;
ASynEdit:=SrcEdit.EditorComponent;
if ASynEdit=nil then exit;
FActiveEditDefaultFGColor:=ASynEdit.Font.Color;
FActiveEditDefaultBGColor:=ASynEdit.Color;
FActiveEditSelectedFGColor:=ASynEdit.SelectedColor.ForeGround;
FActiveEditSelectedBGColor:=ASynEdit.SelectedColor.Background;
FActiveEditKeyFGColor:=FActiveEditDefaultFGColor;
FActiveEditKeyBGColor:=FActiveEditDefaultBGColor;
FActiveEditSymbolFGColor:=FActiveEditDefaultFGColor;
FActiveEditSymbolBGColor:=FActiveEditDefaultBGColor;
if ASynEdit.Highlighter<>nil then begin
with ASynEdit.Highlighter do begin
if IdentifierAttribute<>nil then begin
if IdentifierAttribute.ForeGround<>clNone then
FActiveEditDefaultFGColor:=IdentifierAttribute.ForeGround;
if IdentifierAttribute.BackGround<>clNone then
FActiveEditDefaultBGColor:=IdentifierAttribute.BackGround;
end;
if KeywordAttribute<>nil then begin
if KeywordAttribute.ForeGround<>clNone then
FActiveEditKeyFGColor:=KeywordAttribute.ForeGround;
if KeywordAttribute.BackGround<>clNone then
FActiveEditKeyBGColor:=KeywordAttribute.BackGround;
end;
if SymbolAttribute<>nil then begin
if SymbolAttribute.ForeGround<>clNone then
FActiveEditSymbolFGColor:=SymbolAttribute.ForeGround;
if SymbolAttribute.BackGround<>clNone then
FActiveEditSymbolBGColor:=SymbolAttribute.BackGround;
end;
end;
end;
end;
Procedure TSourceNotebook.GetSynEditPreviewSettings(APreviewEditor: TObject);
var ASynEdit: TSynEdit;
begin