About Project
This project was first built as hobby while I was learning Win32 API programming. That was time when vb6 and similar Integrated Development Environments inspired me too much, and I was always interested in getting several tasks done in smallest possible time, especially building of Graphical User Interface for application. While learning Win32 API I decided to wrap it into C++ classes. I first searched on web for similar projects and I came through couple of them, even few people suggest me to go with MFC, WTL, or Borland C++ Builder etc. My major concern was to have something that allowed coding style similar to VB6 with the power of C++, especially using free C++ compilers such as Mingw G++, DMC, etc. I fought with generic properties to make them work just like VB and attach getters/setters to them. I adopted several codes but again they lacked few things at the end. Finally I came up with a solution of my own, and created a generic MACRO's based technique that could result in new classes for each data type rather than creating yet another type for each variable. I posted that article on codeguru and several other sites; My own unmodified and unedited version of implementation of generic properties may be found here. MSVC, Borland C++ and others do have such features already built within compilers but my favorite a free one MingW-G++ lacked it, that was the reason a new implementation was born, which was efficient enough. Most importantly a compiler that doesn't create a lot dependencies and forces developer to dispatch runtime libraries and stuff alongwith application setup program. Application built using RAD C++ is independent of any external DLL or OCX. In simple I wanted to make some library that would allow me:
Form form1("Form1");
ForProcedure proc(FormProcArgs);
rad_main()
form1.procedure = proc;
rad_end()
and I managed to achieve this very fast. I registered this website so that others can also benefit from my effort, as well as will not have to spend much time learning core of Win32 API, yet building dependency-less applications. Library has been through several experiments the most stable version was 1.2.4 that had almost all controls required by an advanced level SDI windows application, except web-browser support (that has now been added to next version). This library has been used in several commercial projects.
After a long time being inactive in development I have decided to continue working on latest version which was left aside for about 2 years. Next version will change a lot of things in RAD C++, such as creating whole GUI from XML, and code wont look similar anymore if GUI is hardcoded for application; e.g.
rad_main()
GUI.createForm("Form1");
GUI["form1"]
.createChild("text1", TEXTBOX)
.createChild("Button1", BUTTON)
;
GUI["form1"]["text1"].text = "I am textbox";
rad_end()
Targeting the controls and overall GUI elements will be even simpler as you can notice in example above. Secondly creating GUI from XML would be even better, e.g.
rad_main()
GUI.loadFromXML("GUI.xml");
/* or from resources */
GUI.loadFromXML(5444);
rad_end()
Wrapping in a class would be:
class myclass : public _window {
public:
myclass() {
adopt( GUI["form1"] );
procedure = proc;
};
friend Procedure proc(FormProcArgs);
};
News and updates on RAD C++ Version 3n may be found on Updates page.