[Lazarus] LCLMessageGlue.pas, typo in debug output?

2018-03-09 Thread Lubos Pintes via Lazarus

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?

2018-03-05 Thread Lubos Pintes via Lazarus
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?

2018-03-04 Thread Lubos Pintes via Lazarus
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?

2018-03-04 Thread Lubos Pintes via Lazarus

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

2018-03-03 Thread Lubos Pintes via Lazarus

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

2018-03-03 Thread Lubos Pintes via 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

2018-03-02 Thread Lubos Pintes via 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

2018-03-02 Thread Lubos Pintes via 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

2018-02-06 Thread Lubos Pintes via Lazarus

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

2018-02-06 Thread Lubos Pintes via Lazarus

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

2017-11-27 Thread Lubos Pintes via Lazarus

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

2017-11-14 Thread Lubos Pintes via Lazarus

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

2017-11-13 Thread Lubos Pintes via Lazarus

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?

2017-11-13 Thread Lubos Pintes via Lazarus
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

2017-10-11 Thread Lubos Pintes via Lazarus
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

2017-10-11 Thread Lubos Pintes via Lazarus

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

2017-10-10 Thread Lubos Pintes via Lazarus

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?

2017-10-10 Thread Lubos Pintes via Lazarus

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

2017-10-09 Thread Lubos Pintes via Lazarus


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

2017-10-09 Thread Lubos Pintes via Lazarus
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

2017-10-09 Thread Lubos Pintes via Lazarus

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

2017-10-09 Thread Lubos Pintes via Lazarus
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

2017-10-09 Thread Lubos Pintes via Lazarus
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

2017-10-09 Thread Lubos Pintes via Lazarus

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

2017-10-08 Thread Lubos Pintes via Lazarus

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?

2017-10-07 Thread Lubos Pintes via Lazarus

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?

2017-10-07 Thread Lubos Pintes via Lazarus
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?

2017-10-07 Thread Lubos Pintes via Lazarus


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

2017-10-06 Thread Lubos Pintes via Lazarus

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