Author Archives: Roy Magne Klever

Whats next


Preview of coming SmartTabs

I am working on the next update to rkSmartTabs and this is more or less what I have come up with.
What you see on the picture is a smarttab with more tabs than fit the view, the three first tabs are pinned tabs so they are not scrollable. It is not finished as you can see from the rendering. A lot of coding remains.

You are welcome to give me feedback on this one.

Just an update of what I am working on.

I also have some updates of some of my other components coming up.

Roy M Klever

A smart dialog solution

An image of a filter dialog

Sample filter dialog

When doing graphics filters I am often annoyed by the fixed dialog most people use, so I decided to try to come up with an alternative solution and this is what I did.

To compile the demo you need to install the included component, rkFilterPreviewDialog.

This component will display a dialog according to the instructions in the controls property. You can add a label, trackbar, radiobutton or a space command.
Commands you can use are:
L:Just a label
R:Radio button:0 // change zero to one to select it
S:16 // a 16 pixels space is added before next component is added
T:0:100:10:10 // Trackbar:Min:Max:Value:Frequency

You can use the properties CtrlBegin and CtrlEnd to say where the dialog starts and end. From line to line. See demo to get a better view.
Remember to set UseBeginEnd when using these properties.

Here is the setup for the dialog in the picture above.
— Misc
R:Split light:0
R:Split blur:0
R:Roll Horizontal/Vertical:0

The demo shows how everything works a lot better than I can explain.

Download Component, demo and exe (505kB)

rkSmartTabs now smarter

The new SmartTabs component

rkSmartTabs in use

Version 1.8 of rkSmartTabs is up. A lot of new stuff in here.

A few things that are new.

Tab captions are now rendered a little different and close button are adjusted down a little.

You can now pin a tab to the left side. See image above, three pinned tabs to the left.

Use UnpinTab(ATab) to unpin a tab and PinTab(ATab) to pin a tab. A pinned tab can only show a glyph. You can use TabPinned(ATab) to check if a tab is pinned. Because of the way pinned tabs are handled you should use SetTabName and GetTabName to set and get the caption of a tab. To get which tab is under the cursor you can use the GetTabAtXY function.

There is a new property, OnCustomDraw, that will lett you draw onto a tab. This can be used to paint a progress indicator or other thing you would like to put on a tab.

Some new properties
Now you can control the colors of your tabs
The border colors

Text outline colors

Color of the tabs

Tabs caption text

GdiPlusText, this property is used when painting tabs in aero glass. I could not make gdi text work properly with aero so you need to enable gdi+ text rendering when using aero. If not using too transparent tabs aero works ok.

You can set the opacity of a tab state using the following properties

Outline Text can be outlined by setting this property to true. This is not operativ when using gdi+ text

PinnedStr New in this version is pinned tabs set the symbol string you want to use for marking a pinned tab here

SeeThruTabs This property will let the other tabs shine thru, see what it looks like in picture above

Download at downloads page

This component uses the GDI + headers found at
In Delphi XE this is not working very well… one solution might be to rename the gdi+ units. I am trying to resolve this issue but as long I can not test, it is a little difficult. Maybe use graphics32 as the base is better?

Roy M Klever

SmartView sample application

This is the source code of the teaser program. Take note that this is just a sample and not, in any way, a complete application.

It uses a lot of my components so I suggest you download and install all of them.

Original a D2007 project but now a D2010 project. This means that the saving and loading of the albums are in ansi code and not unicode. When compiling in D2010 you will get a lot of warnings. I needed it to be in ansi code to be compatible with my existing album files. It should not be to difficult to come up with a different way of loading and saving albums.

Hope this helps a little in working with rkSmartView.

Some keys…
Ctrl + arrow left and right to expand and close all groups.
Space = Preview
Alt + left mousebutton will show image information.
F8 will show statistic information.
Press and hold left mousebutton in imagepreview to zoom.

Download project code

Whats comming… a teaser

A screenshot of the album demo

Blaise Photo Album

This is just a compiled program of what I gone post next. Hope you like it. The source will be up as soon as I get my normal internet line back up and running.

My email is back so anyone that have posted something should be getting answers soon. Sorry for any trouble but nothing I could do about it.

If you want to compile this program (when source is available), you will need ImageEn, just make an account and you will get access to the download.

Download compiled demo: Blaise Photo Album