[Lazarus] LCLMessageGlue.pas, typo in debug output?
Hello, Just noticed in LCLMessageGlue.pas on line 98: and (TLMessage(AMessage).Msg < CN_KEYDOWN ) maybe there could be <> like on other lines in that IFDEF? Not sure, just noticed little asymmetry. -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] An expression is returning false, why?
Hello and thank. And in general, if I have a TControl instance, can you tell me a reliable algorithm that tells me if the control has a focus? Only if it makes sense of course. So probably something like I tried before, that is the control is a TWinControl instance and the Focused property is true? I know it doesn't work for a form itself. Maybe this is a bug? Dňa 05.03.2018 o 8:53 zeljko via Lazarus napísal(a): On 03/04/2018 09:48 PM, Lubos Pintes via Lazarus wrote: Hello and thank for a reply. Do I understand correctly that a form is a special case? What about TEdit or TButton for example? I am encapsulating a TControl instance and am asking for properties needed for UI Automation, occasionally asking if the encapsulated control is a TWinControl instance. I tested the simplest LCL program, just an empty form, and it really caused me headache. I just forcefully set the HasKeyboardFocus property to true for testing and the form was reported correctly. Use MyForm.ActiveControl to get focused control on active form. zeljko -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] An expression is returning false, why?
Hello and thank for a reply. Do I understand correctly that a form is a special case? What about TEdit or TButton for example? I am encapsulating a TControl instance and am asking for properties needed for UI Automation, occasionally asking if the encapsulated control is a TWinControl instance. I tested the simplest LCL program, just an empty form, and it really caused me headache. I just forcefully set the HasKeyboardFocus property to true for testing and the form was reported correctly. Dňa 04.03.2018 o 20:44 Vojtěch Čihák via Lazarus napísal(a): Hi, I just tested. Active Form always returns Focused False. Use property Active instead. Result := (FControl is TCustomForm) and TCustomForm(FControl).Active; V. __ > Od: Lubos Pintes via Lazarus <lazarus@lists.lazarus-ide.org> > Komu: laza...@lists.lazarus.freepascal.org > Datum: 04.03.2018 17:58 > Předmět: [Lazarus] An expression is returning false, why? > Hello, Sorry for possibly stupid subject and maybe off-topic question. In my UIA code, I am testing if a control has focus. So I have a FControl: TControl declared in my class. Now say FControl contains a TForm1 instance, simply we have very simple program with just an empty window. Then an expression: Result := FControl is TWinControl and TWinControl(FControl).Focused; returns false. I am sure the form has focus..., because ShowMessage(BoolToStr(Focused)) returns -1, which represents true... -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
[Lazarus] An expression is returning false, why?
Hello, Sorry for possibly stupid subject and maybe off-topic question. In my UIA code, I am testing if a control has focus. So I have a FControl: TControl declared in my class. Now say FControl contains a TForm1 instance, simply we have very simple program with just an empty window. Then an expression: Result := FControl is TWinControl and TWinControl(FControl).Focused; returns false. I am sure the form has focus..., because ShowMessage(BoolToStr(Focused)) returns -1, which represents true... -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Package and project file format
Hi, +1 for this. And really it looks stupid to me to have a different tag for every item like Item1 or Unit1. Dňa 03.03.2018 o 11:15 Michael Van Canneyt via Lazarus napísal(a): Hello, The package .lpk andproject .lpi file use the following format : And similarly Is it possible to get rid of the counts ? Reason: if 2 people add files to a package/project, it always creates conflicts when updating from the VCS. And if you're in bad luck, you need to change a lot of items. On the other hand, if you do The chance of conflicts becomes less, and the resolution easier. Michael. -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Running Lazarus in Lazarus
Hi, I think the file is malformed somehow. Yes, indeed it runs the default Lazarus, but it is unable to build it. Obviously, it would be impossible to rewrite the running program. So someone could possibly fix the lazarus.lpi. So I renamed the Lazarus.exe, then opened the renamed IDE, pressed F9 and the "Program not found" error appeared. I then tried to build with Ctrl+F9, and the following was written: The project's compiler options has no compile command. See Project / Compiler Options ... / Compilation So how can I fix this? Or can someone fix the lazarus.lpi? Thanks! Dňa 02.03.2018 o 15:05 Mattias Gaertner via Lazarus napísal(a): On Fri, 2 Mar 2018 14:49:15 +0100 Lubos Pintes via Lazarus <lazarus@lists.lazarus-ide.org> wrote: This is /ide/lazarus.lpi, where is directory with whole Lazarus repo right? Yes, sorry. Because my code I added there is not compiled. I added my files to /interfaces/lcl.lpk. Why did you add files to the LCL? That's quiet unusual. When I build the IDE from tools menu, my code is compiled. But when I open the above-mentioned project, it runs but behaves differently. Check Tools/ Options / Lazarus directory. The lazarus.lpi runs the default lazarus.exe. Mattias -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Running Lazarus in Lazarus
Hello, I added my files to lcl.lpk, because I am developing an UI Automation support for LCL, Win32 WidgetSet more concretely. And all files from win32 directory are there, so I also added the UIA files there. That means into win32\ subdirectory and to the lcl.lpk. Dňa 02.03.2018 o 15:05 Mattias Gaertner via Lazarus napísal(a): On Fri, 2 Mar 2018 14:49:15 +0100 Lubos Pintes via Lazarus <lazarus@lists.lazarus-ide.org> wrote: This is /ide/lazarus.lpi, where is directory with whole Lazarus repo right? Yes, sorry. Because my code I added there is not compiled. I added my files to /interfaces/lcl.lpk. Why did you add files to the LCL? That's quiet unusual. When I build the IDE from tools menu, my code is compiled. But when I open the above-mentioned project, it runs but behaves differently. Check Tools/ Options / Lazarus directory. The lazarus.lpi runs the default lazarus.exe. Mattias -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Running Lazarus in Lazarus
This is /ide/lazarus.lpi, where is directory with whole Lazarus repo right? Because my code I added there is not compiled. I added my files to /interfaces/lcl.lpk. When I build the IDE from tools menu, my code is compiled. But when I open the above-mentioned project, it runs but behaves differently. Dňa 02.03.2018 o 13:45 Mattias Gaertner via Lazarus napísal(a): On Fri, 2 Mar 2018 13:40:24 +0100 Lubos Pintes via Lazarus <lazarus@lists.lazarus-ide.org> wrote: Hello, Is it possible to run Lazarus as an application in IDE? I have a freeze somewhere, (Windows 10's "not responding" addition in a title bar). A --debug-log doesn't help me much, because it is not flushed. I know how to rebuild IDE, but don't know how to run it so that it can be debugged. Open the lazarus\lazarus.lpi and run it. Mattias -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Internal error when compiling LCL
This helped, thanks. Dňa 06.02.2018 o 10:36 Ondrej Pokorny via Lazarus napísal(a): On 06.02.2018 10:34, Lubos Pintes via Lazarus wrote: Hello, During compilation of my project, I encountered this: win32wsmenus.pp(253,1) Error: Internal error 200611031 I didn't touch the mentioned file. FPC version is Free Pascal Compiler version 3.0.4 [2017/10/06] OS Windows 10, SVN trunk 57257 Try to rebuild clean. Ondrej -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
[Lazarus] Internal error when compiling LCL
Hello, During compilation of my project, I encountered this: win32wsmenus.pp(253,1) Error: Internal error 200611031 I didn't touch the mentioned file. FPC version is Free Pascal Compiler version 3.0.4 [2017/10/06] OS Windows 10, SVN trunk 57257 -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Developing a WidgetSet
Hmm... But if I disable my UIA code then the form works as expected. Also If I place some standard control to a form like TButton. But I will try the MainFormInTaskbar property to see what happens. Dňa 26. 11. 2017 o 18:13 Ondrej Pokorny via Lazarus napísal(a): On 26.11.2017 16:09, Martin Frb via Lazarus wrote: I am not 100% sure, but maybe this is because (afaik) there is a hidden form for the task button. This hidden form can be disabled somewhere, then the main form will be responsible for the task button. On 20/11/2017 09:54, Lubos Pintes via Lazarus wrote: I can confirm that Inspect can see the object(s). But one symptom I am receiving that a screen reader is unable to register that a form receives the focus. If I alt-tabbing, I hear "Project1", instead of "Form1". Correct. Use Application.MainFormOnTaskbar := True to register the form for the taskbar. Ondrej -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Assembler window shows but without Debugger Exception popup
Oh, View menu, of course. I am stupid indeed. :) I just updated a GDB to version 7.7.1 and now at least the stack trace makes more sense. It is full of Windows API calls. However, here is a part of debug output which seems to be relevant, at least I am not sure what exactly this can be: &"warning: HEAP[project1.exe]: \n" &"warning: HEAP: Free Heap block 105AA5B0 modified at 105AA5D0 after it was freed\n" &"\n" ~"[Switching to Thread 4928.0x13e8]\n" *stopped,reason="signal-received",signal-name="SIGTRAP",signal-meaning="Trace/breakpoint trap",frame={addr="0x778661e2",func="ntdll!RtlCaptureStackContext",args=[],from="C:\\WINDOWS\\SYSTEM32\\ntdll.dll"},thread-id="9",stopped-threads="all" =thread-selected,id="9" I extracted this output immediately after the Assembler window appeared. Other things there are library loaded, thread created, etc. If you still thinks it makes sense to post the Lazarus debug output you suggested, I can of course do it. Dňa 13. 11. 2017 o 17:18 Martin Frb via Lazarus napísal(a): The thread window is in the view menu. there is a sub-menu "debug windows" and there it can be found. It should also appear with ctrl-alt-t The debug log window is in the same sub menu. But it is not called "log" it is called "Debug Output" This window shows raw gdb communications. Rather than looking at debug output, start the IDE with the following command line lazarus.exe --debug-log=C:\lazlog.txt --debug-enable=DBG_CMD_ECHO,DBG_STATE,DBGMI_QUEUE_DEBUG this will create a logfile, that you can attach to your next mail (or if to big for the mailing list, send to my email directly) On 13/11/17 15:41, Lubos Pintes via Lazarus wrote: OS is Windows 10, Lazarus 1.9, GDB 7.2. How can I see thread? How can I open a debug log windows? In which menu it is? Or is it displayed somewhere? Because I am unable to "see" it with screen reader. So It may look I am asking for something obvious, sorry. Dňa 13. 11. 2017 o 13:49 Martin Frb via Lazarus napísal(a): -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
[Lazarus] Assembler window shows but without Debugger Exception popup
What that means? An exception, access violation or what? It probably happens somewhere in my UI Automation implementation. The Call stack window doesn't show useful information. An F7 key tells something like "Cannot find function boundary". So curently I don't know how to debug this problem. -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Cody identifier search sometimes doesn't work?
Okay, sorry for noise. I discovered something labelled "Start Contains", not reachable from the keyboard, only with "virtual mouse", so it works as expected. Dňa 13. 11. 2017 o 10:50 Lubos Pintes via Lazarus napísal(a): Hello, After reading one quite old thread here, I installed the Cody package, and almost immediately found that on windows, there is an identifier like this: _TV_DISPINFO in windows of FPCSrcDir But when I typed "dispinfo" into the filter edit, the above-written identifier is not found, tried also to type it in all caps. So is this a bug? -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Forward procedure completion failure
Yes, it works. Sorry for spamming. In fact, I updated the trunk, but didn't rebuild. I didn't feel it is necessary. Dňa 11. 10. 2017 o 16:07 Mattias Gaertner via Lazarus napísal(a): On Wed, 11 Oct 2017 16:00:49 +0200 Lubos Pintes via Lazarus <lazarus@lists.lazarus-ide.org> wrote: Hi, Just wanted to try the cool feature, adding a procedure body to implementation. So I wrote a procedure header, pressed Ctrl+Shift+C, and found this in a message window: uiacore.pas(9,1) Error: unknown section keyword interface found I tried to compile, and only errors there are two unresolved forward declaration, those I just wrote. Isn't this weird? I fixed that yesterday. Please update and test. Mattias -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
[Lazarus] Forward procedure completion failure
Hi, Just wanted to try the cool feature, adding a procedure body to implementation. So I wrote a procedure header, pressed Ctrl+Shift+C, and found this in a message window: uiacore.pas(9,1) Error: unknown section keyword interface found I tried to compile, and only errors there are two unresolved forward declaration, those I just wrote. Isn't this weird? -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
[Lazarus] Lazarus is unable to find OleVariant when pressing Alt+Up
Hello, Nothing more to say, unit is compilable, but I cannot find the OleVariant. I am trying to figure out how to work with it in FPC, so I wanted to see the definitions etc. -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Lazarus code editor: what happened with the caret?
Hello Martin, I didn't try the scrool update fix you requested in another mail, however I tried the the redraw-all-lines, this will probably help better, I am currently playing with it. Thank again for help. Dňa 9. 10. 2017 o 18:20 Martin Frb via Lazarus napísal(a): About scrolling due to caret moves. Not sure if my suggestion in the other mail (7 Oct 15:12 SynNewScrollBarUpdate) helped? If not, I can think of 2 causes. 1) The scrollbar change is not noted. If that is the case, I have no idea (SynNewScrollBarUpdate does affect this) 2) SynEdit does not redraw all lines, but uses ScrollWindowEx to move its canvas. This is very common. I would not expect this to be an issue. Anyway you can force it to redraw all lines (slower, and more battery if on a laptop) Go to components\synedit\synedit.pp line 4653 inside procedure TCustomSynEdit.ScrollAfterTopLineChanged. the line is currently if ScrollWindowEx(Handle, 0, LineHeight * Delta, @srect, @srect, 0, nil, SW_INVALIDATE) replace it with if false On 07/10/2017 09:01, Lubos Pintes via Lazarus wrote: but there is probably another change, because the NVDA is unable to show me lines after I scrool with a down arrow to try to read the contents. But that may be a NVDA problem. -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Developing a WidgetSet
And now I tested this and I am sure, only TBitBtn doesn't expose the name. And because TBitBtn is used mostly in the IDe, most buttons are not accessible.Dňa 9. 10. 2017 o 9:41 Lubos Pintes via Lazarus napísal(a): I reported this problem years ago. If I remember properly, only TBitBtn has this behaviour. Of course not all buttons in the IDE have empty names, but those on options dialog, or welcome page. Dňa 9. 10. 2017 o 9:14 Juha Manninen via Lazarus napísal(a): *I wonder ... -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Developing a WidgetSet
I reported this problem years ago. If I remember properly, only TBitBtn has this behaviour. Of course not all buttons in the IDE have empty names, but those on options dialog, or welcome page. Dňa 9. 10. 2017 o 9:14 Juha Manninen via Lazarus napísal(a): *I wonder ... -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
[Lazarus] Adding a component to a form using keyboard
Hello, I have a problem to add a button to a form using keyboard. Ctrl+Alt+P, write "tbut" to the edit field and press Enter. Nothing was added... why? -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Developing a WidgetSet
Thank for all replies, but my original question was overlooked. Can someone answer it? Dňa 8. 10. 2017 o 22:09 Lubos Pintes via Lazarus napísal(a): Hello, If I want to add a functionality like accessibility to WidgetSet, which package could I use, lcl.lpk, or lclbase.lpk? Also, how can I rebuilt the package when I modify/add some unit? Do I need to always rebuild the IDe, or there is a quicker way? I am thinking about syntax check / quick compilation to incrementally check and fix semantic / syntax errors. Thanks -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Developing a WidgetSet
Sorry I replied to wrong message. My thanks and my heart belongs just to you. :-) Dňa 9. 10. 2017 o 4:43 Martin Frb via Lazarus napísal(a): I think there was some work before. (Afaik only carbon, Mac) Look at TControl properties AccessibleRole, AccessibleValue, AccessibleDescription. lcl\controls.pp line 1639 They refer to TLazAccessibleObject (line 990) Then in control.inc line 150 procedure TLazAccessibleObject.SetAccessibleValue(const AValue: TCaption); the widgetset is called WidgetsetClass := TWSLazAccessibleObjectClass(GetWSLazAccessibleObject()); WidgetsetClass.SetAccessibleValue(Self, AValue); TWSLazAccessibleObjectClass is at lcl\widgetset\wscontrols.pp line 80 TWSLazAccessibleObject is at line 71. Search in files how it is sub-classed in carbon. Subclass it the same way in other widgetset. If you want to subclass it in win32 go to lcl\interfaces\win32\win32wsfactory.pas line 131 function RegisterLazAccessibleObject: Boolean; alias : 'WSRegisterLazAccessibleObject'; see the commented code. only the gtk reference is a copy and paste. it needs to register the newly created class for win 32. A few very short explanations: Each widgetset (win, gtk, carbon, qt...) exports the methods for registration. the "alias" makes it visible to the linker. The LCL refers to those as external functions. So the LCL can be linked against each widgetset. Also each widgetset inherits from the classes in the parent folder (generic classes). e.g. TWSLazAccessibleObject in lcl\widgetset\wscontrols.pp line 71 and carbon inherits: TCarbonWSLazAccessibleObject = class(TWSLazAccessibleObject) in lcl\interfaces\carbon\carbonwscontrols.pp The generic classes are also compiled into the lcl. So the widgetset can provide the sub classes, and lcl knows how to call them. On 08/10/2017 21:09, Lubos Pintes via Lazarus wrote: Hello, If I want to add a functionality like accessibility to WidgetSet, which package could I use, lcl.lpk, or lclbase.lpk? Also, how can I rebuilt the package when I modify/add some unit? Do I need to always rebuild the IDe, or there is a quicker way? I am thinking about syntax check / quick compilation to incrementally check and fix semantic / syntax errors. Thanks -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Developing a WidgetSet
You are quite wrong when you are talking about LCL. For example, even buttons are not accessible, on the IDE welcome page, screen reader reports only "button", instead of "StartIDE button", "Help button", etc. Yes, the button itself is native, but is broken. Another totally inaccessible component is, probably TTreeview. It is used in the options dialog where categories are displayed, in the package explorer etc. TCheckedListBox is yet another example. Code editor is totally inaccessible, etc, etc. So again, you are wrong. Dňa 8. 10. 2017 o 23:15 Graeme Geldenhuys via Lazarus napísal(a): On 2017-10-08 21:09, Lubos Pintes via Lazarus wrote: If I want to add a functionality like accessibility to WidgetSet, which package could I use, lcl.lpk, or lclbase.lpk? I believe "accessibility" is beyond the scope of the LCL. It is expected that the underlying GUI toolkit (Qt, GTK, fpGUI etc) implement the accessibility and will magically be available in your application, if accessibility is enabled in your desktop environment. Regards, Graeme -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
[Lazarus] Developing a WidgetSet
Hello, If I want to add a functionality like accessibility to WidgetSet, which package could I use, lcl.lpk, or lclbase.lpk? Also, how can I rebuilt the package when I modify/add some unit? Do I need to always rebuild the IDe, or there is a quicker way? I am thinking about syntax check / quick compilation to incrementally check and fix semantic / syntax errors. Thanks -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Lazarus code editor: what happened with the caret?
This helped a lot, thanks! Dňa 7. 10. 2017 o 17:25 Martin Frb via Lazarus napísal(a): If it hooks ExtTextOut, then the color settings will most likely make a difference. Each time the color (or text style, e.g. bold) changes, the Editor interrupts the output, and makes a new call. Also colors change, when the caret moves, so there is constant redrawing. I attached a file editoroptions.xml It has (almost) all colors black and white. Selected text will be bold. While lazarus is not running, put this file into: (replacing username with your name / make a backup of the old file) C:\Users\username\AppData\Local\lazarus\editoroptions.xml This file also overrides keyboard shortcuts, and mouse settings (in case you changed any of them). On 07/10/2017 15:46, Lubos Pintes via Lazarus wrote: Hello and thank for info. NVDA uses screen scraping, it hooks Windows API like ExtTextOut, TextOut, etc. This rarely works well, and it is used as a last chance when everything else fails. Also there is an OCR, but it is only for static things, i.e. take a snapshot of window and OCR it. So for example an inaccessible installer can be used quite well, but something as dynamic as edit text area cannot, at least now. -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Lazarus code editor: what happened with the caret?
Ahh, LCLCheckListBox is also not accessible, so I cannot disable things there, I have no feedback. Dňa 7. 10. 2017 o 16:46 Lubos Pintes via Lazarus napísal(a): Hello and thank for info. NVDA uses screen scraping, it hooks Windows API like ExtTextOut, TextOut, etc. This rarely works well, and it is used as a last chance when everything else fails. Also there is an OCR, but it is only for static things, i.e. take a snapshot of window and OCR it. So for example an inaccessible installer can be used quite well, but something as dynamic as edit text area cannot, at least now. Dňa 7. 10. 2017 o 16:12 Martin Frb via Lazarus napísal(a): To rebuild the IDE, open the Tools Menu. 2nd last entry: "Build Lazarus ... profile name" Or last entry "Configure build lazarus" which opens a dialog, so you can specify compiler options. How does NVDA read the content of a control? Does it do OCR? Because SynEdit is entirely custom drawn. SynEdit does not expose it's text through any API. If it is OCR, maybe it helps to switch SynEdit to black and white. (Tools: Options, then Editor, Colors / But you have to switch of each color by itself. Also make sure you go to the config for "Markup and Matches" and disable everything there. (Especially the new option "Outline (global)" If it is an issue with scrolling: Try compiling with the option -dSynNewScrollBarUpdate On 07/10/2017 09:01, Lubos Pintes via Lazarus wrote: Hello, One of your suggested changes indeed showed a system caret, but there is probably another change, because the NVDA is unable to show me lines after I scrool with a down arrow to try to read the contents. But that may be a NVDA problem. For now I will use external editor for editing and special IDE features like code completion directly in the environment. I now have another question, a bit unrelated to this thread but relevant for me. If I make a change like this, I obviously need to rebuild the IDE. Currently I am using the command lazbuild --build-ide= -q -q Can someone perhaps suggest a better command, another parameters for example? I am not sure if that is totally correct. I will then save the command to b.bat to make rebuilds easier. -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Lazarus code editor: what happened with the caret?
Thank you very much for information, I will try it. Dňa 6. 10. 2017 o 22:43 Martin Frb via Lazarus napísal(a): Latest SynEdit uses a custom drawn caret. This was introduced to enable multiple carets. That is: having several carets at the same time, to type and edit several locations simultaneously. (e.g shift-alt down, gives you 2 carets, one in each row) Since Windows does not allow for more than one caret to be created, it was necessary to draw them directly. See components\synedit\synpluginmulticaret.pp line 1713 if ScreenCaret.Painter.ClassType = TSynEditScreenCaretPainterSystem then ScreenCaret.ChangePainter(TSynEditScreenCaretPainterInternal); Comment this out. (multicaret will not work / only one caret will be visible). Or change components\synedit\syneditpointclasses.pas line 3085 TSynEditScreenCaret.ChangePainter to always set TSynEditScreenCaretPainterSystem On 06/10/2017 20:57, Lubos Pintes via Lazarus wrote: Hello, After years, I just built a fresh Lazarus from SVN. I ran the IDE, and noticed immediately that a code editor is completely unusable to screen reader. I am running Windows and using NVDA. In the past, the code editor was partially usable. But now, NVDA is unable to see the caret. So I would like to ask: is caret drawn in some nonstandard way? Or could I set any settings in options to try to fix this? -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
[Lazarus] Settings in the options dialog are not focusable via keyboard
Hello, When I open the options dialog by pressing Ctrl+Shift+O, choose a category in the tree and try to navigate using Tab, I can tab through the category tree, three buttons and the filter edit. The settings themselves are not reachable. Is this a bug? I am using Windows 10 and the fresh Lazarus from SVN built today. Thanks -- ___ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus