Zitat von mitya boyarintsev : > Hello, Developers! > > Has anyone of you, tried to use PathEditor under Carbon Lazarus IDE? > (Project->Compiler Options->Paths and then open path list dialog by pressing > '...' button) > > You'll probably see normal text, but if you try to edit it, everything will > be messed up, and pretty unusable. This is actually a 'normal' behavior for > SynEdit, because selected font by default ('courier'?) does not seem to be > mono-width. The default font for synedit under carbon is 'Courier'. It is mono width here. The problem is that TFont stores the font name in the lfm and that is often the windows default 'courier'. And because OS X fonts are case sensitive, 'courier' does not exist and then the carbon intf uses rubbish. Maybe a bug. > I've fixed this problem (for the PathEditor only) by setting 'Monaco' font > if currently selected LCL is Carbon > > {$ifdef LCLCarbon}PathEdit.Font.Name:='Monaco';{$endif} I fixed a few places. See r16542. > > Monaco is "system default" mono-width font for MacOS X. But i really don't > like this hack. I will try later Monaco. If it is more readable than Courier, then it becomes the default under carbon synedit. > The thing I suggest is to add to lazarus IDE font selection, so font of the > dialogs and text-edit fields can be selected. I guess it would take a lot of > job to do. Because every time font is changed, controls have to be notified > about that... or some code should walkthrough all opened control and see if > font must be changed. Why is that needed? > Or is it possible to supply a kind of GUIHint unit, that would containt > information on what font's (colors, images, control sizes etc..) should be > used with current widgetset. So setting a font to a SynEdit would look like > > uses .. LCLGUIHint, ... > > begin > > SynEdit.Font.Assign ( LCLGUIHint.SysMonoWidthFont ); > > end; There are three constants, which are set depending on widgetset: SynDefaultFontName SynDefaultFontHeight SynDefaultFontPitch If you create a new TSynEdit, then they are used. The problem is that these values are always stored in the lfm, what in case of the IDE is not wanted. For other applications it could be needed. > So no matter, what widgetset I'm using to compile, the application would > look native to the user from the start. > > For my projects I'm using GUIHint. I don't know if this solution suitable > for LCL/Lazarus, I just don't want to add {$ifdef } for every dialog in IDE. Mattias