Monthly Archives: April 2017

What’s New in Xailer 5 (VI)

Dear Xailer use,

Today I present another more control created by me for Xailer 5, that is the control TSwitch. It is a control whose functionality is identical to a ‘checkbox’ but visually is much more suitable, especially for use in tablets for its ability to set the size you want.

Xailer Switch

Xailer Switch

like the TEditMod control that I showed in my last article, TSwitch is a control that is painted absolutely vectorially with antialiasing techniques to decrease the sawtooth effect in their curves. You can also set the base color of the control, by default will use the one that is configured in Windows theme (Windows Vista or above).

I hope you like it!. Xailer 5 is coming really soon. Stay tuned!


What’s New in Xailer 5 (V)

Dear Xailer user,

In this new article I want to introduce you to the new controls I have made to improve editing from Xailer and adapt them to Windows 10 and their use with tablets. The original control of Windows suffers from several problems, which are:

  • Impossibility to center your text vertically in its container frame, which forced to change the font according to the height of the control to adapt it more or less.
  • Impossibility to change the ‘password’ style after the control is created.
  • Impossibility to completely change its frame

Also, in Windows 10 we can see how there are new features in some editing controls, such as:

  • A help text when control is empty
  • An image of a magnifying glass to trigger a search
  • An image to erase the contents of the control (very useful with tablets)
  • An image to display the contents of a password-type edit control

All of these new features have been incorporated into two new controls: TEditMod and TMemoMod, which of course have their equivalents as DataControls: TDbEditMod and TDbMemoMod. I leave you an image of them:

TEdiMod y TMemoMod

TEdiMod y TMemoMod

The painting of the different images that the control shows is completely vectorial using techniques of ‘antialiasing’ that incorporates GDI +.

I hope you like these new control. See you soon!


Ignacio Ortiz de Zúñiga
Xailer team

What’s New in Xailer 5 (IV)

Dear Xailer users,

Fourth article of the improvements that will include Xailer 5, and is is very important and almost indispensable if you want to make applications for tablets with Windows 10 as OS. It is a control that already exists in Xailer from its beginning and is based on a native control of Windows but we have always wanted to get rid of it due to its limitations and is the control ‘TTabControl‘ and its inherited ‘TFolder ‘.

The new name control ‘TTabs’ includes all the functionality of the native control, but also includes the following improvements:

  • Any orientation (with correct visualization)
  • Definible Height and width of tabs
  • Ghost tab so the user can include more tabs
  • Possibility to move the tabs by the end user
  • Customizable tab borders
  • Absolute absence of any type of flicker

TTabs 1
The new TTabs control also allows you to trap the paint events in a simple way and thus completely change the appearance of the control. With this simple code:

METHOD Tabs1DrawTab( oSender, nIndex, cText, nImage, nClrText, nClrPane, nState, hDC, aRect ) CLASS TForm1

LOCAL hBrush
LOCAL aColors := {0x737373, 0x4986E7, 0x16A765, 0xE9B330, 0xA479E2}

 IF (nState == tsHOT .OR. nState == tsSELECTED) .AND. nIndex > 0
  nImage += 5
  hBrush := CreateSolidBrush( aColors[ nIndex ] )
  FillRect( hDC, { aRect[ rtLEFT ], aRect[ rtTOP ], aRect[ rtRIGHT ], aRect[ rtTOP ] + 2 }, hBrush )
  DeleteObject( hBrush )
  aRect[ rtTOP ] += 2


We get this effect: (Maybe I’ll remind you of something ;-))
TTabs 2
For Xailer 5 I have developed a total of ten new controls thinking especially in the new visual aspect that imposes Windows 10 and the need to have controls optimized for use in tablets. We understand that they are advanced usage controls and for that reason will only be present in the Enterprise version of Xailer. We encourage you to make the jump to Enterprise as soon as possible. The advantages are many, but certainly the most important, is to be able to use database servers directly without any type of connector such as ADO or ODBC.

Best regards,

Ignacio Ortiz de Zúñiga
Miembro del equipo de Xailer

What’s New in Xailer 5 (III)

Hello everyone,

Today I comment on another IDE improvement that I understand is quite useful and consists of the possibility of performing incremental searches on the search results offered by the IDE when a massive search is performed. In the new version of Xailer when you perform a massive search you can see a new icon on the messages window:

Search on search

Search on search

When we click this new button we can perform an incremental search on the search results obtained. The search system is incremental and begins to act as soon as we are more than half a second without introducing any character. I hope you like it.
Search on search results

Search on search results

There is less left for the Xailer 5 release!

The following articles will be much more important and interesting; We will address the ten new controls that includes Xailer 5 and the new local version control tool that is also fully compatible with the use of external version control systems such as SVN or CVS.

Best regards,

What’s New in Xailer 5 (II)

Dear Xailer user,

Today I want to talk about the control TListView. That great unknown 😉 This control is typical of the Windows API and basically is a Browse that allows you to display the information in the same way as the file explorer in Windows itself. It has the following types of view: Icon, small Icon, List, Tile and Details.

The Browse (TBrowse and its inherited) that incorporates Xailer looks like a TListView with ‘Details’ view. When we want to display information that way, with grid style, Xailer browse is infinitely more powerful than TListView. However, there are times when the TListView may be a better candidate for the data to display. Obviously when you prefer a view different from ‘Details’, but also can be a great candidate when you need to group the different elements of the browse or display a ‘checkbox’ in each one.

TListview with groups

TListview with groups

Until Xailer 5 the control was quite limited since you could not customize almost anything, but now it has completely improved its functionality allowing you to do things like this:

TListView OnDrawCell

TListView OnDrawCell

And this has been all the code needed to get it:

METHOD ListView1DrawCell( oSender, oItem, nColumn, nClrText, nClrPane, hDC, aRect ) CLASS TForm1
   LOCAL nWidth

   IF nColumn == 0
      RETURN 0 // Notify columns one by one
   ELSEIF nColumn == 1
      SelectObject( hDC, ::oFontBold:Handle )
     SelectObject( hDC, ::oFont:Handle )
     IF nColumn == 5
        InflateRect( aRect, -1, -1 )
        nWidth := Int( ( aRect[ 3 ] - aRect[ 1 ] ) * oItem:aData[ 4 ] / ::nMaxSize )
        aRect[ 3 ] := aRect[ 1 ] + nWidth
        FillRect( hDC, aRect, ::oBrushGauge:Handle )
       RETURN 2 // Do not paint anything

As you see all your get overloading your OnDrawCell event that is very easy to do. I hope you like this important improvement that I made to the control. I encourage you to start using the TListView control as soon as possible.

Best regards,

What’s New in Xailer 5 (I)

Dear Xailer users,

I would like in a series of articles to gradually count the improvements that I personally have incorporated into the future Xailer 5. From the smallest to the most important and without any kind of pre-established order.

On this first occasion I will comment on the improvements built into the filter bar of the browses. I’m sure more than one is going to sigh a finally ! 😉 These are:

  • Access to the filter bar simply by pressing the cursor up key from the first record of the Browse.
  • Ability to navigate between different filter fields with the TAB and May + TAB keys
  • Ability to force immediate filtering and return focus to browse by pressing cursor key down from any filter bar edit field

When we use the filter bar of the TDbBrowse in conjunction with a TMemDataset object, there are important improvements worth mentioning:

  • Possibility of establishing a range using the sequence ‘- (2 dashes)’. For example: 2–8, which would mean values between 2 and 8 inclusive.
  • Using logical operators: ‘&&’ for Y and ‘||’ For O. For example: 1 || 3, which would mean values 1 or 3

I hope you liked it. Be aware of future articles. Thank you for your attention.

Best regards,