https://github.com/PaulSquires/WinFBE/releases
Beta version featuring major internal changes to the visual designer code generation and underlying engine. This beta is intended for testing of these visual designer features. No changes to the core WinFBE editor itself - only the visual designer has changed.
(Note: The documentation for the visual designer has yet to be updated)
Although the Status Bar Editor is functional, it does not generate any code yet. I will implement the code generation before I upload a final 1.9.2 version.
Hello Paul
Many thanks for the new version.
I took my test object again and compiled it with the new version.Now I get the error.
QuoteE:\WinFBE_Suite\Sample_Projects\TEST-PROJEKT\Fenster.bas(1089) error 42: Variable not declared, InitializeComponent
In version 1.9.1 I don't get the error.
Hello Paul
probably just a little something.
I can only use the code tips or the automatic completion if I remove the hook in the settings, save it and set the hook again.
Hello Paul
I have adapted the German language file to the new version.
Thanks Joerg! Appreciate it :)
That "InitializeComponent" error is because of new code generation that I added to the engine. When a Form is created, the constructor calls InitializeComponent to essentially assign values to all of the controls and add those controls to collections. When the Form is destroyed, the InitializeComponent is called again in order to reset the values back to original so that if the Form is shown again then the default/original values will be used.
I had programmed the visual designer to regenerate all Form code when the project is compiled so I am surprised that this error would appear.
I assume that any newly created project does not show this error???
Also, did you test this WinFBE beta version in a new separate folder, or did you copy the files over an existing WinFBE installation?
Hello Paul
I installed the beta version in a separate directory.
I get this error regardless of whether I compile a new form without controls, drag any controls onto the window or compile an existing project.
I'll try again tomorrow at the office.
Good morning Paul
I reinstalled the beta version on a directory in the office this morning.
What surprises me now is that this error does not occur now.
Neither in an "empty" project, with controls or with existing projects.
In this case, there must be something in my "old" directory somewhere that causes the error.
If I can narrow down the error I write again.
Hello Paul
I got the error message again.
It is probably due to the WinFBE.ini.
If I delete the WinFBE.ini and replace it with the original file, I don't get the error anymore. I don't know if it plays a role. I have the beta version in a subdirectory of the release version.
If it helps you, I can upload the working and the "damaged" WinFBE.
The InitializeComponent call is made from the base wfxForm class. That would indicate to me that maybe you are pointing your compiler setup to a different path that the one that is in the WinFBE Suite download? You would need to point your compiler to the one in the download because then the paths to the include files will be correct. The download contains the latest files for the WinFormsX classes that I wrote to handle the visual designer code generation. Those classes are located at .\WinFBE_Suite\FreeBASIC-1.06.0\inc\WinFormsX
If you are using a different, or older, version of the compiler and/or includes then you will definitely run into problems. Likewise, the new download uses a different format for the codetips/automplete related to the controls keywords. That file is codetips_winformsx.ini located in your .\Settings folder.
Hello Paul
Thank you very much for your feedback and explanation.
I have now understood that. :-)
I've fixed my "bug" and now it's working fine.
Hi Paul,
wrt designer, an undo would be nice.
In the text editor, I find if I create a function, anything that has a termination line, while loop, if statement or similar you create the end statement automatically, which is OK, since I enter the code beffore the end statement. But, if I go back to edit the code, and insert a line just after the first statement, e.g. after the while or if line, it inserts another end statement. It is something that is a bit annoying, and just now trying to define exactly when it occurs, I can't repeat with simple code to prove the point. Maybe you've seen it.
Hi Ray, I get the same result as you. Once a For, While, Do etc. has been completed and I want to add code just below the first line, I arrow to/place cursor at the beginning of the second line of code and hit Enter. The editor does not add an End Anything, just a blank line. But I don't always remember to do that!
WinFBE uses a very simple algorithm to determine if it should add an ending statement to a flow statement. It is all found in the AutoInsert.inc source code file. If anyone can suggest a way to improve and make the process better then certainly please let me know. The current approach is certainly not extremely smart but it works okay in most situations.
Other ides for other languages, languages that have loops etc with {} often match the { with its} highlighting them both, as you scroll down through the program listing. I don't know if that would be possible in win fbe. Have a flag in the loop opening statement which is set when closing statement made, do not add another closing statement if flag set.