17
May 10

Cool a new GlassButton!

GlassButton test demo

I liked the idea of having a “glassbutton” to use on my VistaPanel. So I decided to try making one. This is the result. It sure took a lot more work than I was thinking it would! Personally I like the result. There are some options to fine tune the result like, Glossy, GlossyLevel and the SingleBorder properties. Best result requires experimenting.

The “Arrow” property will add just that an arrow to the right side of the button. Combining it with the “DuoStyle” property will make the arrow get its own button part. Like you see in the image.

Hope you like it, have fun! Feedback is always welcome!

Download GlassButtonProject(253kB)


13
May 10

SmartPath v2.3 released

I am happy to announce that SmartPath v2.3 is here.

Whats new:
– Pressing arrow button now toggle popup menu.
– New event, OnError. Thanks Castor69.
– New property AutoComplete.
– Color properties for button painting have been added.
– Bug in keyboard navigating have been fixed.
– Bug in edit path have been fixed.
– Some small code optimization.

OnError AException values:
0 : Create directory failed

Download SmartPath2.3


02
May 10

SmartPath v2.2 released

Well I finally had some time to update my smartpath component. So what did I do? It is now possible to navigate the smartpath using the keyboard just set AllowKeyNav to true and you are set. I had some trouble making it work so report back any bugs you find, in my testing it worked as expected. Ownerdraw now has its own property, set it when using ownerdraw event. New Folder in home menu is now optionally. ParentFont added. A new property named ClickSetPath will set the path automatically when button on path is clicked so you no longer need to set it in the OnClickEvent. Changed AllowEdit to be set to true as default. OnMouseLeaveEvent should now be working again. Some code optimized.

Download SmartPath v2.2


06
Apr 10

SmartPath updated

VistaPanel image

Good looking SmartPath

This is just an update of my SmartPath component. Some elements have been removed while some elements have been added.

I added a transparent option, and lookup in edit mode. The search option was removed. Some bugs were removed and the code tweaked a little.

UPDATED!
New property added

NetDiskWait: Boolean;

When set to true it works like normal but if you set it to false it will not check if net disks(drives) are ready. I have a net drive that lose connection all the time, making me crazy every time I am going to pick a disk, so I had to do something about it. Default is False.

Download Component

Hope you like it.

Roy M Klever


06
Apr 10

Smooth vista gradient panel

VistaPanel image

Good looking vista panel

What is it? Simply a panel with a gradient that look like the gradient used in Vista. Play with the colors and I am sure you can come up with something you like. There really isn’t more to say about this small component.

Some times I just get the idea of trying to figure out how they make that gradient, well this is my take at the Vista gradient bar. Enjoy!

Download Component

Roy M Klever


12
Feb 10

Tabs with a twist – rkSmartTab

SmartTabs in use

SmartTabs in use

Here is a new component of mine, rkSmartTabs. Its a simple but easy to use tab bar component. It was made for my explorer application but I guess others might find it usefull too. I do not have a demo yet but you can download an early beta of my explorer to see and and get a feel for how it works. rkSmartTabs is rendered using GDI+ so you must make it available for Delphi. Hope you find it useful. Feedback is always welcome.

Download rkSmartTabs

Download BlaiseExplorer (540KB)

Tip: Use Ctrl left and right arrow to open/close all groups.


30
Jan 10

Alternative progressbar

Showing Vista Progress Bar

I guess most of you have allready found a replacement for default progressbar in D2007. If not take a look at my solution. It have similar look to the system progressbar but without any animation.

The component will work in any delphi version but I have only tested it in D2007 and D2010.

It is licensed as freeware so no limitations on its use except you can not charge for it.

Download VistaProBar


14
Jan 10

Small but smart colorpicker

Small but smart colorpicker

The small but smart color picker

This is my attempt at making a small but smart color picker. It has two modes and can be used for live color updating. The mode shown in image is Alphamode:= True, second mode will then be Alphamode:= False which will be more aimed at web design.

To set the colorpickers color use:
SetColor(Color, Alpha, Update) or SetColor(Color, Update) where Update is a boolean which if false will set old color to color value.

Alpha is a value between 0 and 255.

To get color value use GetColor. Alpha value is stored in RGBAlpha.

Download: Color Picker (260kB)


13
Jan 10

Released rkSmartPath version 2

Smart Path v2 in action

Smart path demo application

After a lot of testing, tweaking and fixing version 2 of rkSmartPath is available.
Whats new:

* Now it is possible to disable edit of path
* Added owner draw event
* Using displayname for folders
* Added search event. Use path edit for searching/filtering
* Tweaks and fixes
* End arrow only if there is folders in last folder

What is rkSmartPath: it is a component for Delphi that will allow you to navigate the filesystem similar to explorer in Vista. Folder path is represented as buttons and arrows. Pressing a button will allow you to set that path, pressing an arrow will let you pick a folder in that folder. Try the demo and you see what I am talking about.

Download Project(265kB)

Update 03.02.2010:

TBXSmartPath

How it looks with Athen theme

Download TBX test version


02
Jan 10

Mixing two colors

Just a quick tips for those of you needing to blend two colors. Usage is very easy.

// Usage  NewColor:= Blend(Color1, Color2, blending level 0 to 100);
function Blend(Color1, Color2: TColor; A: Byte): TColor;
var
  c1, c2: LongInt;
  r, g, b, v1, v2: byte;
begin
  A:= Round(2.55 * A);
  c1 := ColorToRGB(Color1);
  c2 := ColorToRGB(Color2);
  v1:= Byte(c1);
  v2:= Byte(c2);
  r:= A * (v1 - v2) shr 8 + v2;
  v1:= Byte(c1 shr 8);
  v2:= Byte(c2 shr 8);
  g:= A * (v1 - v2) shr 8 + v2;
  v1:= Byte(c1 shr 16);
  v2:= Byte(c2 shr 16);
  b:= A * (v1 - v2) shr 8 + v2;
  Result := (b shl 16) + (g shl 8) + r;
end;