diff --git a/components/synedit/syncompletion.pas b/components/synedit/syncompletion.pas index c71820de71..2cac7ac530 100644 --- a/components/synedit/syncompletion.pas +++ b/components/synedit/syncompletion.pas @@ -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); diff --git a/components/synedit/synedit.pp b/components/synedit/synedit.pp index a189c4dd69..811760024c 100644 --- a/components/synedit/synedit.pp +++ b/components/synedit/synedit.pp @@ -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} diff --git a/ide/uniteditor.pp b/ide/uniteditor.pp index 8e25b4803f..4b56685063 100644 --- a/ide/uniteditor.pp +++ b/ide/uniteditor.pp @@ -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