The SynFacialHighlighter seems not to work on AROS, because no WideStringmanager is available, one way would be to write a Widestring manager (maybe would be good idea to do so also for the basic Freepascal implementation) or search for a different customizable highlighter. I found already one (included in Lazarus) SynUniSyn. The main problem is that this is just a very basic port from the delphi SynUniSyn and the original SynUniSyn is very hard to find (at least the original Pages are down, and sourceforge and so on are empty), so no Highlighter example files available. But I found a very old source of an editor wich have in an older repository version the sources and 311 (!!) Highlighters included.
So it works, also on AROS, maybe some tiny changes must be done, for example the C++ highlighter turns everything into uppercase. But this could be done I think, I will play a little bit with it.

Source at Github
Binary AROS i386
Implemented Screenshot possiblity for AROS, works very nice. Also found a source, how to make a screenshot
without the windows, the application.Minimize and Restore was long time implemented already but I never tried.
so here the source to create a screenshot:
procedure TForm1.Button1Click(Sender: TObject);
var
MyBitmap: TBitmap;
ScreenDC: HDC;
WrkJpg: TJpegImage;
begin
Application.Minimize;
Application.ProcessMessages;
Sleep(32);
MyBitmap := TBitmap.Create;
ScreenDC := GetDC(0);
MyBitmap.LoadFromDevice(ScreenDC);
Application.Restore;
Application.BringToFront;
WrkJpg := TJpegImage.Create;
try
WrkJpg.CompressionQuality := 80;
WrkJpg.Assign(MyBitmap);
WrkJpg.SaveToFile('test.jpg');
finally
FreeAndNil(WrkJpg);
end;
ReleaseDC(0, ScreenDC);
FreeAndNil(MyBitmap);
end;
and the resulting Image:

Finally go LazPaint somewhat working, yesterday was just with many dummy functions in the bgrabitmap package. Today I wrote some implementations of this. It works, but it is VERY slow, because the drawing functions like WritePixelArray are very slow when drawing to a ARGB Screen. Maybe a clever conversation before will improve it. the other thing: it crashes very often, mostly List exceptions, I’m wonderring if thats the same as I got for EdiSyn, some fonts are too small to read.


Worked at my idea for the visible Tabs at the Pagecontrol. As I found out before the Register at MUI can not be changed on runtime, so hard to use it directly for the LCL Pagecontrol. But now I just add a second MUI Object above the Pages which only contains the Register. Rather the same schema I used for the Caption of Checkboxes.

I played a little bit with the TAChart, omg so many different units needed, so many components/pathes to set. Some inital drawing problems, some more error checking need. Now works nicely, of course some events and so on does not work.
This new TAChart is very different as the one I used long time before in my programs in university. So I’m not sure how to use this but in principle it works 😉
Made a little test program afunction plotter:
Download: TAChartTest

To debug the lcl more I tested some 3rd party lazarus applications, some of them are really bad made. So my LCL get some problems with Autosize, especially when the window is Autosized and sizeable at the same time (which sounds a little bit strange for me also)
WinFF
WebPage
Problems:
Statusbar still crashes, so I had to remove it, still no idea whats wrong there. Funny, after removal of Statusbar it still compiles, so it was not in use?.
Autosize setting of the main window, as described already. First it get some exceptions because the defaultsize was not set, thats right I didn’t set this things. It seems some alignment problems alao related to this. So now I made a very simple implementations set the Prefered Size to 20×20. Later should add some for every widget.
Besides this problems the program work, but inside many ifdef unix, ifdef windows so much work need to implement startup of programs and so on.

This ffplay is already called as expected. (just the ffplay is strange, crashes often and plays much to fast). The convert is done via a script with is very nice and easy to bring to AROS. But sadly the ffmpeg has some problems: First it’s not made for amiga so a source defined with „System:test/test.avi“ will not work because ffmpeg will report „Error: Unknown protocol System“ so one have to use „file:System:test/test.avi“ or so. But even then its not working, unrecognized options everywhere, maybe its made for an other ffmpeg version, I did not find for which ffmpeg its made.
Lyapunov Fractal
I really liked this fractals on AMIGA, even its was VERY slow to calculate (and its still, even on this fast computers), but they look better, different than the mandelbrot, julia or so. I found a rather complex program to calculate it, for Delphi, but converting to lazarus and some tiny changes and it also works on Lazarus, some more changes also works on Linux. now to AROS.
Problems:
Mainproblem is the Tabcontrol which still does not allow to switch tabs, so I had to add some Buttons for navigation and like always some drawing problems. Especially, Editpanels behave strange sometimes. I have to check later.
Download: Lyapunov for AROS i386

Example saved images:

LazSokoban
This worked surprisingly well, biggest problem was only that the pathes was added a DirectorySeparator even there was already one, no problem for Linux/Windows, but at AROS it means updir. And again some AutoSize issues really need look whats the problem there.
In contrast to the lazman program this is really well programmed, work well and also fast on AROS without any further optimizations. The colors are so also in the origian not a colorbug (I had to check twice, could not believe someone make such colors by purpose)
Download: LazSokoban
(AROS i386 – inclusive Source)

Finally finished the user commands things, for now, already yesterday made two movies to show how it work, so today the Screenshot shows the Preferences window.
News:
- ADD: Iconify Icon
- ADD: User Program Startup
- ADD: Catching Program output
- ADD: Parsing program output -> Freepascal and GCC supported
- ADD: ShortCuts for User programs
Download at EdiSyn Page

Working on the next EdiSyn Version (0.50). The main new feature will be userdefined programs with capturing and parsing the output that you can jump into the source to the error/warning.
The mainproblems are the capturing of hte output, because there is no way to route the Output of an AROS program directly into memory. The only way is to let the Output write to a temporary file in RAM and read this at the same time. It works very nice, just if something happen the files stays in RAM: and uses up some memory.
The other Problem is again a very bad Amiga-style problem. When started from Workbench/Wanderer its nearly impossible to get the shell path, so the compiler is not able to find the linker and so on.
There are several ways to obtain the path, but seems als does not work on AROS. For example:
- WorkbenchControl(nil, [WBCTRLA_DuplicateSearchPath, @path, TAG_DONE]); does simply nothing, the Path stays on nil.
- PProcess(WBStartup^.sm_Message.mn_ReplyPort^.mp_SigTask)^.pr_CLI^.cli_CommandDir the problem is that the pr_CLI is nil, so not set.
- cli := AllocDosObject(DOS_CLI, nil); results in a CLI but the path is also empty there.
The only way I found was to trace through all Processes and search for the main process (e.g. Wanderer, Shell, DirectoryOpus, such things, rather unsafe way to do it… but better than nothing).
The Output from GCC and Freepascal is parsed now so you get colored output and click to jump to the related position.
EdiSyn with Freepascal Output (compiles EdiSyn):
and GCC, with error reporting:
The new EdiSyn is out, Version 0.40.
Most important features should be the configuration possibility for the SynEdit control, inclusive Color selecting for Highlighter, and shortcut preferences.
The highlighter colors are saved in separate files.
- ADD: Preferences Dialog
- ADD: Key binding Dialog with Key catcher
- ADD: Highlighter Color selection Dialog
- ADD: New tab on every open
- ADD: Tab Navigation ShortCuts
- FIX: Faster New Tab
- FIX: Drawing improvement
- FIX: Menu Items Memory leak
- FIX: Canvas Memory leak
- ADD: Easter Eggs
Download at EdiSyn Page
