Menu

Tree [r26] /
 History

HTTPS access


File Date Author Commit
 Demo 2010-10-05 j-a-s-d [r17] many updates, check README.txt
 SlotDemo 2011-02-01 j-a-s-d [r21] integrated SlotUI library as tuiSlots
 DEPENDENCIES.html 2011-06-16 j-a-s-d [r24] added tuiHTMLControls
 LICENSE.txt 2011-08-05 j-a-s-d [r25] check README.txt for update details
 README.txt 2011-08-17 j-a-s-d [r26] added RenderFile() to the Html controls
 TOOLS.html 2011-08-05 j-a-s-d [r25] check README.txt for update details
 tuiActionsUtils.pas 2010-10-05 j-a-s-d [r17] many updates, check README.txt
 tuiBar.pas 2010-11-01 j-a-s-d [r19] many changes, check README.txt
 tuiColorManager.pas 2010-10-05 j-a-s-d [r17] many updates, check README.txt
 tuiCommon.pas 2010-10-05 j-a-s-d [r17] many updates, check README.txt
 tuiControlFactory.pas 2010-12-08 j-a-s-d [r20] added SetEnabled(), SetBounds() and SetTag() to...
 tuiControls.pas 2011-02-01 j-a-s-d [r21] integrated SlotUI library as tuiSlots
 tuiDefines.inc 2010-10-05 j-a-s-d [r17] many updates, check README.txt
 tuiDialog.pas 2011-06-13 j-a-s-d [r23] added MakeResizable to TTurboUIDialog
 tuiDialogs.pas 2010-10-05 j-a-s-d [r17] many updates, check README.txt
 tuiFindDialog.dfm 2010-05-18 j-a-s-d [r5] added dialogs
 tuiFindDialog.pas 2010-10-05 j-a-s-d [r17] many updates, check README.txt
 tuiForm.dfm 2010-05-18 j-a-s-d [r5] added dialogs
 tuiForm.pas 2010-10-05 j-a-s-d [r17] many updates, check README.txt
 tuiFrame.dfm 2010-09-11 j-a-s-d [r16] many additions and updates, check README.txt
 tuiFrame.pas 2011-04-07 j-a-s-d [r22] fixed the TtuiFrame's ContainerPanel colour cha...
 tuiGUIUtils.pas 2010-10-05 j-a-s-d [r17] many updates, check README.txt
 tuiHTMLControls.pas 2011-08-17 j-a-s-d [r26] added RenderFile() to the Html controls
 tuiInformationBar.pas 2010-10-05 j-a-s-d [r17] many updates, check README.txt
 tuiItemWithLocationDialog.dfm 2010-05-18 j-a-s-d [r5] added dialogs
 tuiItemWithLocationDialog.pas 2010-10-05 j-a-s-d [r17] many updates, check README.txt
 tuiItemWithSizeDialog.dfm 2010-05-18 j-a-s-d [r5] added dialogs
 tuiItemWithSizeDialog.pas 2010-10-05 j-a-s-d [r17] many updates, check README.txt
 tuiItemWithStringValueDialog.dfm 2010-05-18 j-a-s-d [r5] added dialogs
 tuiItemWithStringValueDialog.pas 2010-10-05 j-a-s-d [r17] many updates, check README.txt
 tuiMainForm.pas 2010-10-05 j-a-s-d [r17] many updates, check README.txt
 tuiReplaceDialog.dfm 2010-05-18 j-a-s-d [r5] added dialogs
 tuiReplaceDialog.pas 2010-10-05 j-a-s-d [r17] many updates, check README.txt
 tuiSideBar.pas 2010-10-05 j-a-s-d [r17] many updates, check README.txt
 tuiSlots.pas 2011-02-01 j-a-s-d [r21] integrated SlotUI library as tuiSlots
 tuiTrayIcon.pas 2010-10-05 j-a-s-d [r17] many updates, check README.txt
 tuiUtils.pas 2010-10-05 j-a-s-d [r17] many updates, check README.txt
 tuiVstDialog.dfm 2010-07-01 j-a-s-d [r9] added tuiDialog; all dialogs descends from TTur...
 tuiVstDialog.pas 2010-10-05 j-a-s-d [r17] many updates, check README.txt
 tuiWaitDialog.dfm 2010-10-05 j-a-s-d [r17] many updates, check README.txt
 tuiWaitDialog.pas 2010-10-05 j-a-s-d [r17] many updates, check README.txt

Read Me

TurboUI
http://coderesearchlabs.com/turboui

DESCRIPTION
-----------
A Turbo Delphi 2006 Application User Interface using SpTBXLib and other optional packages.

It also contains integrated the old SlotUI library, a "slot-oriented" User Interface for building KIOSK like applications.

USAGE: The Forms
----------------
Inherit the forms of your projects from the TTurboUI forms. That's all.

USAGE: The Menus
----------------
The menu items are populated from actions. To load menu items, create an action list to hold actions which will be the main menu items. If a menu item should be a submenu, create an action list with the action list prefix ('al_') by default. That means you must create action lists as many submenu items you have, and set their name to 'al_'+Action.Name.
For example, in the Demo you have:

  alMainMenu: TActionList
    actFile: TAction
    actHelp: TAction

  al_actFile: TActionList
    actOpen: TAction
    ExitSeparator: TAction
    actExit: TAction

  al_actHelp: TActionList
    actAbout: TAction

And so on. Note that every separator caption must be, by default, '-'.
After this, just pass the root action list to the SetSubmenus method. For the demo it will be SetSubmenus(alMainMenu).
Yes, it's so easy.

USAGE: The Control Factory
--------------------------
A Control Factory is provided to build up the controls of your TUI forms offering a set of fluent interfaces to configure the controls you can create with it (or without it).
Besides TTurboUIForm offers one instance by default you can create a new control factory via the NewControlFactory() routine taking to parameters: an Owner and a Parent (both are for the generated controls).
You can do a New<control-type> or Wrap<control-type> if you want to reuse an already created control (it can be create with or without the factory).

Example using the control factory offered by the TTurboUIForm (the code is supposed to be in one of the methods of the TTurboUIForm descendant):

  ControlFactory
    .NewLabel.SetTop(20).SetLeft(24).SetCaption('Title').SetFontSize(18)
  .GetFactory
    .NewLabel.SetTop(40).SetLeft(32).SetCaption('Subtitle').SetFontSize(12)
  .GetFactory
    .NewLabel.SetTop(60).SetLeft(32).SetCaption('Some text').SetFontSize(10);

Example creating a new control factory, saving the controls instances (in 3 different ways) and wrapping one of them:

  with NewControlFactory(AOwner, AParent) do
  begin
    FLabel1 := NewLabel.SetTop(20).SetCaption('Title').SetFontSize(18).GetInstance;
    NewLabel.SetTop(40).SetLeft(32).SetCaption('Subtitle').SetFontSize(12).GetInstance(FLabel2);
    NewLabel(FLabel3).SetTop(60).SetLeft(32).SetCaption('Some test').SetFontSize(10);
    WrapLabel(FLabel1).SetLeft(FLabel2.Left - 8);
  end;

USAGE: The Slots
----------------
You can use the slots to build KIOSK like applications just like with the old SlotUI library. Just check the SlotDemo to learn how to use it.

FAQ
---
Q: Which kind of UI is this? The forms are empty! What happens?
A: Turbo Delphi 2006 does not allow installing/using third party components at design time, that's why I build up the UI in runtime. Just look at the Demo, it's so simple.

Q: The UI is not initializing. What happens?
A: The UI will be automatically initialized in AfterConstruction(). So, if you are going to override the AfterConstruction method remember to call inherited.

LICENSE
-------
MIT. Check the LICENSE.txt file for more details.

Be sure to read and accept the licence of this library and all the licencies of the third-party dependencies before using this library.

DEPENDENCIES
------------
Check DEPENDENCIES.html for a full third-party dependcy tree.

TOOLS
-----
Check TOOLS.html to see a list of the tools involved in the development of this project.

HISTORY
-------
2008 oct 26
 - first lines around the SlotUI idea
2008 nov 10
 - added toolbar
2008 nov 18
 - added toolbar item constants
2008 dec 26
 - created the slots holder class
2008 dec 28
 - added FSlotList
2008 dec 30
 - added GetVisibleHeight
2009 feb 07
 - added GetSlotByCategory
2009 mar 25
 - added BACKBUTTON_CAPTION
2009 apr 05
 - added more BACKBUTTON constants
2009 may 23
 - added separator
2009 oct 23
 - addapted SlotUI to work with standard controls
2009 Oct 26
 - first release of TurboUI (demo exe size: 750 kb | demo exe size with upx: 286 kb)
2009 Nov 20
 - maximization fix and added TurboUIUtils.pas with some helper functions
2009 Dec 09
 - avoid flickering with BeginUpdate/EndUpdate of MainMenu on SetSubmenus()
2010 Apr 03
 - updated TurboUIUtils.pas mainly with widestring support for internationalization purposes
2010 May 18
 - TurboUI unit prefix changed to tui
 - added tui*Dialogs
 - several other fixes
2010 May 27
 - chopped off tuiActionsUtils unit from tuiUtils unit, adding more functionality
2010 Jun 06
 - added tuiControlFactory and tuiVstDialog
2010 Jun 25
 - added Wrap*() to the TtuiControlFactory
 - a GetFactory() to all wrapped controls
 - a ControlFactory property to TTurboUIForm by default
2010 Jun 26
 - added GUID, Name generation and GetInstance() fluent overload in tuiControlFactory fluent configurations
2010 Jun 27
 - added NewMultiDock() and NewSplitter() to tuiUtils
 - added SetModalResult(), SetDefault() and SetCancel() to the button's fluent configuration
2010 Jul 01
 - new tuiDialog, inheriting from tuiForm and incorporating existant tuiDialogsConsts
 - added SetCursor() to the checkbox's fluent configuration
 - added SetTabOrder() to the button's fluent configuration
 - adapted find and replace dialogs to use ControlFactory
2010 Jul 06
 - fixed translation bug on ReplaceDialog
 - updated the default dialog's button size from 80 to 96
2010 Aug 18
 - replaced all references to SpTBXLib controls to Ttui<control_name> placed into tuiControls unit
 - added SetSize() to TTurboUIForm
2010 Aug 19
 - added SetCursor(), SetOnClick() and SetOnDblClick() to listbox's fluent configuration
 - added more references to SpTBXLib controls as Ttui<control_name> in tuiControls unit
2010 Aug 21
 - fixed SetCommaText() of listbox's fluent configuration not returning Self
 - added SetMaxLength(), SetOnClick() and SetOnChange() to edit's fluent configuration
 - added SetOnChange() to spinedit's fluent configuration
 - added SetOnClick() to checkbox's fluent configuration
 - added SetTag() to button's fluent configuration
2010 Aug 23
 - added tuiSideBar
2010 Aug 24
 - added TopPanel and NewDropDownButton() to tuiSideBar
 - added tuiDialogs
2010 Aug 25
 - added SetButtonsVisibility() to tuiSideBar
 - added the StatusBarRightText label in the TtuiMainForm
 - added SetTabStop() to edit's and panel's fluent configuration
 - added SetCursor() to spinedit's fluent configuration
 - added NewFactory() to the controls factory
 - now the panels are skinned by default after the creation via the controls factory
 - now all the dialogs have an skinned panel by background
 - now all the controls in the dialogs are created via the controls factory
2010 Aug 26
 - added OnlyCheckThisActionInActionList() to tuiActionsUtils
 - added tuiColorManager
2010 Sep 03
 - the button OK now is set as Default in the dialogs
 - fixed BrowseForFolder not working on Windows 9x/ME (due to the lack of wide API function versions)
2010 Sep 04
 - added NewActionList() to tuiActionsUtils
 - added the parameter AOnExecute to NewActionInActionList()
2010 Sep 06
 - now all the dialogs has properties and methods using widestring
2010 Sep 07
 - now the tuiItemWithLocationDialog accepts the RETURN key when editing the path without closing
 - added TtuiItemWithLocationDialog.EnsureItemLocation property
2010 Sep 08
 - added SetLocation(), Move() and Grow() to TTurboUIForm
 - added static functions ColorToRGBText() and RGBTextToColor() and new color constants to TurboUIColorManager
 - added TtuiMemo
 - added tuiBar unit
 - added TtuiInformationBar
2010 Sep 09
 - added the left image to the TtuiInformationBar
 - added TtuiFrame
2010 Sep 11
 - renamed TtuiHorizontalBarPanel to TtuiHorizontalBar and TtuiVerticalBarPanel to TtuiVerticalBar
 - added SetTabOrder(), SetBorders(), SetAnchors(), SetFont*() and SetScrollbarsVisibility() to the the memo's fluent configuration
 - added SetMultiSelect() to the listbox's fluent configuration
2010 Sep 27
 - added SetAlignment() and SetAutoSize() to the label's fluent configuration
2010 Sep 28
 - added ComboBox's fluent configuration
 - added SetAnchors() to all the fluent configurations
 - added TtuiWaitDialog
2010 Oct 01
 - added the internal BrowseForFolderCallback() to the tuiItemWithLocationDialog
2010 Oct 04
 - added the Whole Words checkbox to the Replace dialog
 - added tuiDefines.inc
 - added tuiTrayIcon.pas
 - added tuiGUIUtils.pas
2010 Oct 09
 - added autosize to imagelist's sizes in TtuiVerticalBar.NewButton()
2010 Oct 10
 - now the container panel of the TtuiFrame does not have borders
 - added SetStyle() to combobox's fluent configuration
2010 Oct 30
 - added "out AInstance" overloads to New*() methods of the control's factory
2010 Oct 31
 - added padding adjustment when autosizing to imagelist's sizes in TtuiVerticalBar.NewButton()
2010 Nov 01
 - added SetFontName() to label's and memo's fluent configurations
2010 Dec 08
 - added SetEnabled(), SetBounds() and SetTag() to all/most the control's factory fluent configurations
 - added checklistbox's fluent configuration
2011 Feb 01
 - integrated SlotUI library as tuiSlots, dropping the optional native control set
2011 Apr 07
 - fixed the TtuiFrame's ContainerPanel colour change problem
2011 Jun 13
 - added MakeResizable to TTurboUIDialog
2011 Jun 16
 - added tuiHTMLControls
2011 Aug 05
 - added TtuiHtmlPanel
2011 Aug 17
 - added RenderFile() to the Html controls

Enjoy,
Javier Santo Domingo
j-a-s-d@coderesearchlabs.com