Kylix 3.0 Enterprise (with C++)
When you run the command startbcb to bring up the C++ version of the IDE, a registration window will pop up. After filling in the data, the on-line registration went without a problem. After the registration window is closed, a nice splash window pops up. It takes quite a bit of time to load the IDE, so I can see the need for a splash screen. When the development environment is fully loaded, a default project is generated.
The IDE is comprised of several floating windows. The main window is docked to the top of the desktop, and it contains all the menus and tabs with the components that are available for use. The second window is the Object Inspector, which shows all the properties and events of an object. A property of a visible component is, for example, what color it should be, its placement rules, caption and more. Under the Events tab of the Object Inspector, you can see all the events this component supports, such as On Click, On Start Drag, On Drag Over and more. The third window is the code editor that shows files that are a part of your program. There is a tab for each open file plus a tab called Diagram. You can drag and drop components onto the Diagram tab from the Object Tree View to create diagrams of your project. The fourth window is the Object Tree View, which shows the tree hierarchy of your program as you add components to it. For a visual representation, take a look at Figure 1.
I decided to press the Run button with the default project. It turns out that my default installation of Linux didn't install the glibc-devel package. As you can imagine, this generated a lot of compile errors. It's not a big deal, but I would expect the installer to warn me about missing package dependencies. I installed the RPM and pressed the Run button one more time. This time, the compiler finished, but the linker had problems finding libX11.so. I knew exactly what was wrong; reading all the Readme files before the installation paid off. SuSE installer didn't create the symbolic link libX11.so to libX11.so.6. After I created the link manually, everything worked. I was ready to write, or should I say “point and click”, some code.
The whole IDE interface might be a bit confusing at first. After you get a feel for it, you will find it's really easy to build applications. Application design works exactly like a WYSIWG editor. I grab a few components from the component bar and drop them onto my form. I assign one or two of the components properties. What I am looking at is an application that I have not even compiled yet, but the database lookups are running. Simply setting the Active properties to true on the database components was enough to get queries going. I can see how my application would look if I had actually compiled and ran it. Take a look at Figure 2 to see what I mean.
After clicking around I decided that I wanted to see how the actual coding experience is with the tool. I grabbed a button from the component bar and placed it onto my form (application main window). When I double-clicked this button, the Object Inspector switched to the Events tab and selected the OnClick event. Meanwhile in the code editor, a code framework for the click event was built. My keyboard focus was placed at the function block start, ready for code entry. I wanted the application to close when I clicked the button that I just placed on the form. I started typing “Application->” and a small window popped up in the editor. It listed all the functions and properties of my application instance called “Application” (Figure 3).
As I typed in the letter T of the function name (Terminate) that I wanted to call, the code-completion feature eliminated properties and functions that didn't match up. When I saw what I was looking for, I scrolled up and down through the list and pressed Enter. That filled in the code in the editor, then I need to add the semicolon at the end. I thought to myself “that's nice but how about if I spice it up a bit?” I included a Linux header file called utsname.h and instantiated a structure of type utsname and name tst. I typed in tst. and waited to see what would happen. The same window popped up and listed all the structure members and their types (e.g., char). This comes in handy in those “what's that function called again?” moments.
Free DevOps eBooks, Videos, and more!
Regardless of where you are in your DevOps process, Linux Journal can help!
We offer here the DEFINITIVE DevOps for Dummies, a mobile Application Development Primer, and advice & help from the expert sources like:
- Linux Journal
- Users, Permissions and Multitenant Sites
- New Products
- Flexible Access Control with Squid Proxy
- Security in Three Ds: Detect, Decide and Deny
- High-Availability Storage with HA-LVM
- Tighten Up SSH
- DevOps: Everything You Need to Know
- Solving ODEs on Linux
- Non-Linux FOSS: MenuMeters
- March 2015 Issue of Linux Journal: System Administration