Removed a bug about double freed Memory in TListBox.
Added click to TListBox (which seems only work with double click… bug in Zune? The Event is not fired on Single Click even there is a special double click event.. will later try out again)
Windows can now be placed all over the screen… the position will be used at init. It is possible to hide the bordericons or even hide the complete border.. use ButtonStyle.. see picture:
To test if the erroneous Hooks are really the reason for the bug .. i implemented a version which does not use Hooks, but ReturnID.. this is very Bad because the number of Events is limited… its not OOP and some Events will not work i guess (mouse move for example)
I included Events on closing Window (so now a second window can be closed also OnCloseQuery is possible (still not checked but should work) so a question can be fired to close/not close the window)
some little bug fixes for crashing application closing for checkbox/combobox
Last version including this bugfixes (for a aros-exec release some more features should be included first)
I think i have an idea whats wrong with the windows opened later! nothing to do with the window itself.. and also this error messages seems have nothing to do with it.
the Hook which call the opening of the window seems not working well… even I can not explain whats the reason.. I wrote a little Mui only program (so without LCL) and i got the same result.. when i produce a new window inside the button click.. this Window will crash (little bit different behavior, other memory areas).
Then i tried not to use a THook for calling the button press but a application Result (as is used for Quit the program).. and IT WORKS, without any problems… ok this way is VERY bad to use in LCL because very hard to find who made the call (make a separate list?).
Ok as a first tryout I COULD try out tomorrow… hmm or try to find why the Hook makes such bad things… hmm perhaps a gdb debug would help.
Besides this I searching for a bug appearing for Windows not opened at startup, but showed later… there seems a big problem… every Redraw of this window let crash the program (sometimes AROS as well).
With a direct call of MUI in a freepascal program it doesn’t happed.
I found a strange error message when open a TForm in LCL:
[intuition] Invalid pointer value d84ded7b at openwindowtaglist.c, line 295
[intuition] Invalid pointer value d84decaf at openwindow.c, line 129
[intuition] Invalid pointer value d84dece7 at openwindow.c, line 184
something like this… every TForm.Show bring up such error message. Looking into code at the given places it seems the pointer value is out of the heap area thats the reason for this message… but WHY? and WHO? i still didn’t get.. The only thing i can guess, is that the pascal objects or resources could be a reason… both I still have to check.
The first and most important work was Code cleaning and debug messages removal to distribute a very first Version of fpc with some lcl units.
Besides this i played around with recordmyDesktop for linux to make Movies. (Tutorials for fpc/lcl?) with the gui its very nice to use, even the selection of area to record is a little bit difficult, because the preview picture is so small.
This days i didn’t have much time for fpc/lazarus.. too much work.
But today i found a little bit time to complete the Filedialoges, (Save dialog, select directory, multiselect, pattern) and also started with custom dialoges with test and buttons for use with Showmessage, MessageBox MessageDlg.. This is a little bit strange there is a function called messageBox in TWidget but this function seems to be never called, at least not with this functions, but a function prompt User exists and is called for show this message box… a really BAD and strange thing: MUI Does not repaint the window as long the dialog is shown..
I started to implement Dialogs, of course starting with file dialog which is the most important, the most time I needed to port the ASL.library header and workbench.library header for fpc, but then its really very simple.
I noticed that the Mui application has some fields for author, version, copyright and so on. Now I set some of these Values from the resource set in Lazarusproject version informations, see screenshot, already you can see some of them in the exchange window. The rest will be only visible in the Abort requester. I’m not completely sure how to implement such things… perhaps as a own requester type. I will think about it, but THIS is really not urgent, first try to get the most important things running 😉
The Menu event (click) is now working, it was more difficult than I thought, but the problem was not on the MUI side but on the LCL side… it was difficult to find out how to fire the event in MenuItem, because its not done via an Event (like mouseclicked on Button or so) but by and direct Command (TMenuItem.Click).
Sadly i don’t have much time this days so the progress is very slow, perhaps at WE i have more time for it.
Now its time to implement the Menus. The handling is a little bit strange… in MUI… hmm the difference between Menu.mui and Menuitem.mui seems to be only the Event and some more options for Item… but for the menu in prinbiple can always use MenuItem.mui. hmm should check more carefully tomorrow.
Finally i got it to work in a first very crude way… the events still not working, ok this should not be a big issue, after Menus are finished i should try Dialogs and make some cleanups then in principle could release a first alpha version with lcl support.
Like always a little screenshot of todays work 😉
top: Menueditor in lazarus ubuntu
bottom: Aros with compiled program and opened menu
The problems with Streams in freepascal is solved, the crash was produced by the BPTR problem described before. The reason for failure was different, the arguments contains quotes and the current routine for get the arguments did not handle quotes. After include a routine for handle quotes it works fine, so now the fpcres is also usable. This means lazarus created projects can be compiled directly with fpc on AROS. I made a Video to show how it works: Create a simple AROS program
The TMemo crash problem at close of program also solve. It was just an inherited problem in TWSCustomEdit