Wednesday, 23 October 2013

Windows 8 - The new Windows Search (Goodbye, Windows Start Screen!)

There's the new "Navigation" tab in the taskbar settings. 

What you see is NOT the default but what I have it set to. Go through these settings, and get a feel for what they do!

The start search has been streamlined! When "search everywhere" is checked in taskbar settings, search results include EVERYTHING; files, apps, and settings! Results appear below the search field. 

When testing this, I found it odd that I would press the windows key, then results would appear below while the apps list would stay idle, so I poked around, and found that Windows-S serves the exact same functionality. No more searching by pressing "windows" and being distracted. Its all about the new streamlined Windows-S. Combo that with the "sign in to desktop" option, i'll hardly see that screen now! Windows-S is 8.1 only.

If you click the suggestions below the results, it'll do a bing search for those terms in the bing app. Pretty neat, and what I had expected 8.0 to do before the change in direction to "Modern" apps.

Tuesday, 22 October 2013

Windows 8 - What developers should know

Here's the quick rundown:

  • Download will happen in MS Store, no estimated time left. 
  • After it is done downloading, the computer WILL reboot after x amount of time (not sure what, I went for lunch), no way to delay it. Keep your documents saved people!
  • Be sure to upgrade to the latest VMware workstation, network connectivity will not work until you're on VMware 10 (at least, without major rehauling of the network config)
  • Windows-S
From my perspective, I was no worse with 8.0 than 8.1. I tolerated the windows-D combo every time I logged in. The new windows button is worthless, bringing me back to that start menu (or apps, if configured).

In conclusion, it's like you ordered coffee with cream and sugar, they forgot the cream and sugar with windows 8.0, then apologizes and gives you just the cream with 8.1. We still need the sugar!

Tuesday, 15 October 2013

CodeRage 8!

I'm at Coderage 8, speaking about abstracting your UI and business logic!

Want to see the code I edited in the session?

Also, checkout my Twitter and LinkedIn accounts!

@PascalCoder (For general ramblings)
@DelphiTips (For Delphi tips)
in/JeffLefebvre (LinkedIn)

Friday, 17 February 2012

Code Tidbits: Swapping Assignment Variables

Sometimes you come across a situation where you want to assignment 20 or variables, then later on assign them back. Situations like:

  • Class adapter functions
  • Form Load/Save functions
  • Queries. Load from fields, then assign to parameters.

This function will save you from having lots of copy pasta. Run your assignment code through this function, and the variables will be swapped on either side of the assignment operator.

For example:

frmEdit.edtItemPrice.text := Query1.FieldByName('ItemPrice').AsInteger;

Query1.FieldByName('ItemPrice').AsInteger := frmEdit.edtItemPrice.text;

Simply replace the FieldByName with ParamByName and presto!

Query1.ParamByName('ItemPrice').AsInteger := frmEdit.edtItemPrice.text;

Excellent!  And here is the function!

procedure SwapAssignments(Lines: tstrings);
  i : integer;
  assignIndex : integer;
  leftstr, rightstr : string;
  for i := 0 to Lines.count - 1 do
      assignIndex := pos('=',Lines[i]);

      leftstr := copy(lines[i], 1, assignIndex - 2);
      rightstr := copy(lines[i], assignIndex + 1, length(lines[i]) - assignIndex - 1);

      lines[i] := trim(rightstr) + ' := ' + trim(leftstr) + ';';

Tuesday, 18 October 2011

Creating a Concave User Interface

This post is part of series of posts to help developers develop great user interfaces.  

One way to take your FireMonkey HD application into the the 3rd dimension is to make a concave user interface. This interface simply consists of several TLayer3Ds, arranged in a concave fashion. Each TLayer3D simply is the parent of a form on a different unit. Its that simple!

Well, not quite. You need this bit of code.

This function takes in an X,Y position of your concave user interface, along with other important info, and returns the position, width, and height of your TLayer3D!  All you need to do is fill your 3D interface with TLayer3D components, and call this function to set the positions!

For more great articles, check out!
To convert your VCL/VGScene applications to FireMonkey, check out the FREE MonkeyGroomer tool!
Check out more information about 3D and Delphi at the Embarcadero Developer Portal
Follow me during my CodeRaging!

Monday, 17 October 2011

CodeRage 6 is ON!

I am proud to announce that CodeRage 6 is going on right now!  Here is how you can follow it!

And, be sure to watch my session tomorrow at 12:00 PDT, "FireMonkey FireStarter!"  See you there!

Wednesday, 12 October 2011

Announcement: MonkeyGroomer 0.1 Public Release!

I am proud to announce the public release of MonkeyGroomer 0.1!

Download Now for FREE!

MonkeyGroomer is a simple application that aims to help convert your Delphi projects to FireMonkey projects. Currently only VGScene is supported. It also supports VGScene style files.

  • MonkeyGroomer supports over 100 VGScene classes and components
  • In this release, components not supported in the selected project will halt the conversion. (with a helpful message)
  • In the final release, you will have the option of removing unsupported components.
  • Currently the VCL conversion converts specific properties for any component. In a future release the engine will be more discriminatory.
  • Most VGScene components have been tested. 

  • A wizard is planned, to make the conversion process simple and painless!
  • Most of the work was done on the form parser and conversion engine. Once support for VCL is complete this engine will be adapted to support other delphi platforms and components in the future, using Lua4Delphi! (donate now!)
Special thanks to Simon J Stuart!

For inquiries, please contact me at

Quoted from: