Powered by discountASP.NET
referal ID: sdtref
Why recommend discountASP.NET?

Archives
Steve Trefethen Steve's RSS Feed Subscribe or via email
What's this?
Contact me Send mail to the author(s)
About Me
View my LinkedIn profile

Add to Google
Subscribe with Bloglines
MCP Microsoft Certified Professional

Falafel Software
ActiveFocus Project Management Solution by Falafel Software
Online or OnSite TestComplete Training
Blogroll
Recent Comments
My Online Tools
Stats
Total Posts: 441
This Year: 46
This Month: 2
This Week: 0
Comments: 1526
Tags
Disclaimer
The posts on this weblog are provided �AS IS� with no warranties, and confer no rights. The opinions expressed herein are my own personal opinions and do not represent my employer�s view in any way.
 Tuesday, April 17, 2007

Amending the Delphi 2007 readme

Posted @ 1:27AM by Steve Trefethen

Categories: Delphi

Tags:

A few years ago I mentioned the notion of a living readme which got me thinking about how to best handle issues raised by people commenting on my previous post. I've now created such a readme on my wiki and have started amending it with these new items which I've marked with a solid vertical blue line in the left hand margin. That wiki page has it's own RSS feed so you shouldn't have to actively watch it for new entries. Additionally, as an experiment, I've opened the Discuss pages on my wiki so people can comment directly on the wiki. Of course, if that decision turns into a spam nightmare I'll turn it off but it's on for now. Please let me know of any abuse.

[UPDATE: April 17, 2007] Fix the link to the actual readme.
 Monday, April 16, 2007

I'm gathering issues upgrading from earlier versions to Delphi 2007

Posted @ 11:02AM by Steve Trefethen

Categories: Delphi

Tags:

NOTE: The focus here is on the process of upgrading applications not simply upgrading the IDE.

If you've upgraded from any earlier version of Delphi to Delphi 2007 please leave a comment here as to what, if any, issues you encountered porting exsiting applications. I'll work to collect them and get them organized and more searchable so more people can benefit.

Please try to include as many specifics as possible. If you'd rather send me an email at strefethen at codegear dot com and I'll integrate that as well.

I'm interested in issues related to things like:
  • Installation/configuration
  • RTL source code related changes
  • VCL component changes which may affect older applications
  • OpenTools API changes
  • Rebuilding 3rd Party component libraries
  • Recompiling existing applications

 Thursday, April 12, 2007

Delphi package types: Runtime, Design Time and IDE

Posted @ 9:56PM by Steve Trefethen

Categories: Delphi | IDE

Tags:  | 

An interesting question was asked on Nick's blog regarding the differences between IDE and "normal" packages. First, all Delphi packages are really just normal packages the differences are how they are used and loaded particularly  by the IDE. The various packages types are as follows:
  • Runtime
    • Make up the Delphi RTL/VCL. They're used by the IDE as well as by your applications if you have Build with runtime packages checked in your project options.
  • Design time
    • Typically contain code which augments components as their used in the designer including things like component registration, property editors and component editors. These can also include OpenTools add-ins.
  • IDE
    • Core packages - those required by all personalities
    • Personality specific packages - Delphi, C++Builder etc.
    • Personality agnostic packages - which contains things like the HTML editor and the Welcome page
I hope that answers the question!
 Tuesday, April 10, 2007

Video: Setting up a continuous integration environment

Posted @ 12:37PM by Steve Trefethen

Categories: Agile | Automation | Delphi | Development | Open Source | Testing | Tools | Videos

Tags:  |  |  |  |  |  |  | 

I've blogged a lot about how CodeGear uses Continuous Integration (CI) in it's development process for Delphi/BDS. What want to talk about here is how you can use these same tools for your development process.

First, is the issue of version control and for that we use Subversion otherwise known as SVN. SVN is open source and fortunately there is a convenient "1 click setup" described as follows:

Svn1ClickSetup takes a user through the steps necessary to install the Subversion command-line utilities and TortoiseSVN, as well as creating a repository and initial project.

This setup really lives up to it's name so if you're looking for a fast and easy way to get started with some great source control software this is what you're looking for. The install includes the TortioseSVN client which is an SVN client that's implemented as a Windows Shell Extension and is what the majority of developers at CodeGear use.

A Continuous Integration Server

That may sound a bit more daunting than perhaps it should but basically it's the software that pulls from your repository, builds your project and reports any errors. The Delphi development team uses CruiseControl.NET server and CCTray for client side notifications of build failures both of which are open source projects and even though it has ".NET" on the end of its name the server isn't restricted to building .NET only projects.

Once again the installation is very straight forward and if you have IIS installed you'll even be able to monitor your CI server via a browser including forcing a new build.

Ok, now that you've read all about it have a look at the video. Or can download it here.

Here is the ccnet.config file used in the video, and no, "steve" is not my normal password. :-)

[UPDATED: April 23, 2007] Fixed video and .zip file download links.
 Friday, April 06, 2007

A generic Windows application written in Object Pascal

Posted @ 2:03PM by Steve Trefethen

Categories: Delphi | Programming

Tags:  | 

This is a bit of a throw back to Delphi 1.0 days. Recently, we were wanting to see exactly what messages Windows sent when maxmimizing/minimizing/restoring an application without the impact of any sort of framework like the VCL. Thus we resurrected Generic.pas from Delphi 1.0 and below is a copy that  compiles/executes with Delphi 2007. This code can also be useful for playing around with code snippets Raymond Chen posts on his blog. Here's a post where he explains why he uses code like this in the first place.

You can download the .DPR along with the .RC/.RES files here.
1 {************************************************} 2 { } 3 { Demo program } 4 { Copyright (c) 1991, 2007 by CodeGear } 5 { } 6 {************************************************} 7 8 { "Generic" Windows application written in Turbo Pascal } 9 10 program Generic; 11 12 {$R GENERIC.RES} 13 {$WARN SYMBOL_PLATFORM OFF} 14 15 uses Messages, Windows; 16 17 const 18 SAppName = 'Generic'; 19 SAboutBox = 'AboutBox'; 20 SWindowName = 'Turbo Pascal Generic'; 21 22 const 23 idm_About = 100; 24 25 function About(Dialog: HWnd; Message, WParam: Longint; 26 LParam: Longint): Bool; stdcall; 27 begin 28 About := True; 29 case Message of 30 wm_InitDialog: 31 Exit; 32 wm_Command: 33 if (WParam = id_Ok) or (WParam = id_Cancel) then 34 begin 35 EndDialog(Dialog, 1); 36 Exit; 37 end; 38 end; 39 About := False; 40 end; 41 42 function WindowProc(Window: HWnd; Message, WParam: Longint; 43 LParam: Longint): Longint; stdcall; 44 begin 45 Result := 0; 46 case Message of 47 wm_Command: 48 if WParam = idm_About then 49 begin 50 DialogBox(HInstance, SAboutBox, Window, @About); 51 Exit; 52 end; 53 wm_Destroy: 54 begin 55 PostQuitMessage(0); 56 Exit; 57 end; 58 end; 59 Result := DefWindowProc(Window, Message, WParam, LParam); 60 end; 61 62 var 63 WindowClass: TWndClass = ( 64 style: 0; 65 lpfnWndProc: @WindowProc; 66 cbClsExtra: 0; 67 cbWndExtra: 0; 68 hInstance: 0; 69 hIcon: 0; 70 hCursor: 0; 71 hbrBackground: COLOR_WINDOW; 72 lpszMenuName: SAppName; 73 lpszClassName: SAppName); 74 75 procedure WinMain; 76 var 77 Window: HWnd; 78 Message: TMsg; 79 begin 80 { Register the window class } 81 WindowClass.hInstance := HInstance; 82 WindowClass.hIcon := LoadIcon(0, idi_Application); 83 WindowClass.hCursor := LoadCursor(0, idc_Arrow); 84 if Windows.RegisterClass(WindowClass) = 0 then 85 Halt(1); 86 { Create and show the window } 87 Window := CreateWindow(SAppName, SWindowName, ws_OverlappedWindow, 88 Integer(cw_UseDefault), Integer(cw_UseDefault), 320, 240, 89 0, 0, HInstance, nil); 90 ShowWindow(Window, CmdShow); 91 UpdateWindow(Window); 92 { and crank up a message loop } 93 while GetMessage(Message, 0, 0, 0) do 94 begin 95 TranslateMessage(Message); 96 DispatchMessage(Message); 97 end; 98 Halt(Message.wParam); 99 end; 100 101 begin 102 WinMain; 103 end.
 Monday, April 02, 2007

VCL and RTL enhancements since Delphi 7 (D7)

Posted @ 11:47AM by Steve Trefethen

Categories: Delphi | RTL | VCL

Tags:  |  | 

Nick Hodges put together a list of changes to the VCL since D7 and I thought I'd pitch in and help expand since it only includes a few of the high level items. I'll try and avoid duplicating items Nick's list (no guarantees). This is by no means an exhausive list and does not include bug fixes nor does it mention cases where we've made numerous methods virtual/protected to better enable descendant classes.
  • New TDragObject properties AlwaysShowDragImages and RightClickCancels
  • New TDragDockObject properties EraseDockRect and EraseWhenMoving
  • New classes TCustomControlAction, TControlAction, TCustomTransparentControl, TColorListBox, TTrayIcon
  • Many new methods on TControlActionLink for binding to additional properties on TControls
  • New Control States: csDesignerHide, csPanning, csRecreating, csAligning
  • New Control Styles: csPannable (mousewheel support), csAlignWithMargins
  • New events published throughout VCL: OnMouseActivate, OnMouseEnter and OnMouseLeave now with reliable enter/leave detection
  • New events on TWinControl OnAlignInsertBefore and OnAlignPosition for use with alCustom alignment style
  • New TWinControl property MouseInClient
  • New TDragImageList property DragHotSpot
  • New TDockZone property ChildControl
  • TDockTree has many new methods for better mouse support
  • Improved double buffered painting performance
  • Updated appearance with gradient painting support for TControlBar
  • New events on TControlBar BeginBandMove/EndBandMove
  • New properties on TControlBar CornerEdge, DrawingStyle, GradientDirection, GradientStartColor and GradientEndColor
  • New property on TColorBox: OnGetColors
  • New properties on TCustomForm: PopupMode, PopupParent
  • New properties on TScreen: CursorCount, FocusedForm, SaveFocusedList, PrimaryMonitor
  • New properties on TApplication: ActionUpdateDelay, ActiveFormHandle, MainFormHandle, MainFormOnTaskbar, ModalLevel, ModalPopupMode, PopupControlWnd
  • New events on TApplication: OnGetActiveFormHandle, OnGetMainFormHandle
  • Improved drawing support meaning less flicker for many controls throughout VCL
  • Constants for standard web colors added to Graphics.pas
  • RGB conversion routines for working with web colors/color names
  • New Pen Styles: psUserStyle, psAlternate
  • New property on TFont: Orientation
  • Enumerator support on numerous classes throughout VCL for use with "for...in"
  • New property on TOleControl: ServiceQuery
  • New action: TBrowseForFolder
  • New property on TLabel: EllispsisPosition
  • New property on TComboBox: AutoCompleteDelay
  • New property on TListBox: AutoCompleteDelay
  • New properties/events on TTabSet: Images, ShrinkToFit, TabPosition, OnGetImageIndex
  • Numerous ActionBand menu enhancements
To elaborate on Nick's FastCode mention there is the following on the RTL side:
  • New high performance memory manager
  • FastCode routines:
    • Move
    • _FillChar
    • _LStrCmp
    • Pos
    • __lldiv
    • UpperCase
    • LowerCase
    • CompareStr
    • CompareMem
    • CompareText
    • StrLen
    • StrCopy
    • StrComp

  • Numerous inlined routines throughout the RTL
[Update: Mar 2, 2007] Fixed typo.
 Monday, March 26, 2007

The new VCL property TApplication.MainFormOnTaskbar in Delphi 2007

Posted @ 11:06PM by Steve Trefethen

Categories: Delphi | VCL

Tags:  | 

In Delphi 2007, one of the changes we made in VCL was to provide better support for Window Vista, particularly in relation to window animations which occur when your application is minimized, restored or closed. Nathanial Woolls has a good write-up on some of the related issues.

Ok, I'd like to back up a little bit and explain why Delphi works this way in the first place. When Delphi first came out it used multiple free floating windows that all worked in concert with one another where the "main" window contained the menus and toolbars. When you minimized the main window the rest of the IDE's windows disappeared and likewise when you restored they all came back. Well, that functionality doesn't exactly come for free. There is a fair amount of code to try and make multi-window VCL applications behave like single window applications with regard to min/max/restore operations. Of course, this was well before Windows 95 and the taskbar which introduces additional complications.

The primary issue at hand is that the TApplication object has a hidden window used to deal with a lot of these operations although it wasn't perfect either. In Delphi 2007, there is a new TApplication property called MainFormOnTaskbar that's documented in the readme.txt (as it came in too late for formal documentation). The readme states:

"Delphi 2007 adds a new property to TApplication called MainFormOnTaskBar. It defaults to True for new Delphi 2007 applications and False for existing ones. The property controls several aspects of how VCL applications perform with regard to minimize/maximize/restore operations in Windows. Be aware that it will affect the Z-order of your MainForm, in the event your applications depend on the old behavior. MainFormOnTaskBar is intended to be set at startup and persist throughout the duration of the application, changing this property at runtime could result in unexpected behavior. The major reason for this change was to better support several new features available on Windows Vista’s Aero Theme. To update existing VCL applications, add the following line to the project’s .dpr after “Application.Initialize;”:

Application.MainFormOnTaskbar := True;

Basically, what this property does is change the use of the TApplication hidden window and favor's the MainForm's window handle. This introduced a number of subtle changes like those mentioned above. Unfortunately, even prior to RTM we identified a few more issues and we're actively investigating those now. I've seen a few posts on the public newsgroups like this and this which we are very much aware of. In the case of BDS 2006 minimizing the IDE should restore its taskbar button since Delphi 2007 replaces the VCL100.bpl package used by BDS 2006.

What you need to know
We're working on identifying and fixing issues related to this property. In fact, Seppy has a spreadsheet that identifying 32 (at last count) scenarios and combinations thereof including things like MainFormOnTaskBar, ShowMainForm, programmatically setting Form.Visible, changing Visible in OnShow/OnCreate, changing Visible with a timer and Taskbar icons which we'll continue to augment as we go. So, this isn't the end of the MainFormOnTaskbar story.

Lastly, while this is a new property for Delphi 2007 it was added in a non-interface breaking manner just so we're clear.

In case you missed, I'm currently on vacation and will follow-up next week.

 Wednesday, March 21, 2007

Theming Windows applications in Delphi 2007

Posted @ 7:41AM by Steve Trefethen

Categories: Delphi | IDE | VCL

Tags:  |  | 

With the release of Delphi 2007 we've made it really simple to theme VCL applications using a checkbox option. On the Project Options dialog, on the Application page you'll now see the "Enable runtime themes" checkbox which makes the necessary modifications to the projects (.res) resource file to ensure that your application is themed. By default, this option is checked for new Delphi VCL application and as I've indicated previously it controls how the designer renders your controls at design time.

Additionally, it's no longer necessary to include either the TXPManifest component nor the XPMan unit (which is basically what dropping the TXPManifest component did) in your application. In fact, this method of theming your application will likely be deprecated in a future release of Delphi.

Be aware, theming your application may not be a quick and simple operation depending on the use of custom components that either you've written or are using. Not all components behave properly when themed so be sure to test your applications if you decide to check this option. You should also be aware of the performance impact that themes have on applications and test accordingly.

[UPDATED: Mar 21, 2007] Clarify that this option is check by default for new VCL applications. For existing applications you'll need to set this manually. Add information about the resource that's added to the .res file.

The resource that's added to is called a "Manifest Resource" which you can learn more about here. Below is a copy of the manifest resource added to a new VCL project which, btw I highlighted using my online syntax highlighter.

1 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> 2 <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 3 <assemblyIdentity 4 type="win32" 5 name="CodeGear RAD Studio" 6 version="11.0.2597.23844" 7 processorArchitecture="*"/> 8 <dependency> 9 <dependentAssembly> 10 <assemblyIdentity 11 type="win32" 12 name="Microsoft.Windows.Common-Controls" 13 version="6.0.0.0" 14 publicKeyToken="6595b64144ccf1df" 15 language="*" 16 processorArchitecture="*"/> 17 </dependentAssembly> 18 </dependency> 19 </assembly>
 Monday, March 19, 2007

Aligning, sizing and spacing commands in the Delphi 2007 VCL designer

Posted @ 5:11PM by Steve Trefethen

Categories: Delphi | IDE

Tags:  | 

Guest blogger: I'd like to introduce Jim Tierney, Principle Engineer working on the BDS development team at CodeGear as a guest blogger. Jim made numerous enhancments/improvements to the VCL form designer for Delphi 2007. I also work closely with Jim on the ASP.NET designer.

Prior to Delphi 2007, the “Align” and “Spacing” toolbars were not entirely supported by the VCL designer. Now, operations like “Align left edges” or “Increment horizontal spacing” can be performed by clicking a toolbar button. Delphi 2007 also makes it easier to identify and change the anchor component for these commands.

Align toolbar
The Align toolbar is an alternative to using the Edit|Align… and Edit|Size… commands. To show the Align toolbar, check “Align” on the toolbar popup menu.

The Align toolbar contains alignment commands as well as sizing commands like “Make same width”.  Note that most of these commands are grayed unless multiple components are selected.

The Align commands are: Align left, align right, align vert centers, align tops, align bottoms, align horz centers, align to grid, Snap to grid, make same height, make same width, make same size, size to grid

The Edit|Align… and...

Edit|Size... commands continue to work as in Delphi 2006.

Spacing commands
Spacing commands are new to the Delphi 2007 VCL designer (with the exception of "space equally").  These commands change the spacing between components.  “Increment horizontal spacing” is an example of a spacing command.

To show the spacing toolbar, check “Spacing” on the toolbar popup menu.  Spacing commands are grayed unless multiple components are selected.


The Spacing commands are: space equally horz, increment horz spacing, decrement horz spacing, remove horz spacing, space equal vert, increment vert spacing, decrement vert spacing, remove vert spacing

Anchor element
When multiple components are selected, one component is the anchor.  When aligning, sizing, or spacing, the anchor component stays in place and the other component(s) are moved or sized in relation to the anchor.

There are two changes to anchor support in Delphi 2007.

  1. Clicking on a selected component makes that component the anchor.
  2. The handles of the anchor component are painted black. Other handles are gray.

In summary, these minor enhancements to the VCL form designer provide new and improved ways to position and size components.

Delphi 2007 VCL Designer Theme Support

Posted @ 7:38AM by Steve Trefethen

Categories: Delphi | VCL

Tags:  | 

In the Delphi 2007 IDE, we enabled Windows theming which serves to upgrade the appearance of the entire IDE leaving behind the more classic Windows style. In fact, all new VCL applications in Delphi 2007 have themes enabled by using the new "Enabled runtime themes" checkbox on the Applications page of the Project Options dialog. This means you no longer have to add either the XPMan unit to your uses clause nor drop a TXPManifest component to theme a VCL applications.

Unfortunately, theming your application isn't always a trivial task because not all 3rd party or custom controls behave properly when themed not to mention it can potentially really slow your application down if it wasn't written with themes in mind. We recognize this and have built the Delphi 2007 VCL designer so that it will properly displays your controls depending whether "Enable runtime themes" is checked for your project.

For example, here is a screenshot with a "Enabled runtime themes" checked:

And the same application with themes disabled:

In addition, we've made numerous improvements to VCL to help reduce flicker and improve performance particularly when DoubleBuffered is enabled. Since this release is interface compatible with BDS 2006 there are additional changes which have to that will have to wait for the next major release.

[UPDATE: March 19, 2007] The IDE caption says "Highlander" because this is my developer build which includes all personalities and HL related bits.

 Friday, March 16, 2007

Delphi 2007 goes Gold!

Posted @ 12:34PM by Steve Trefethen

Categories: CodeGear | Delphi

Tags:  | 

We've officially signed off Delphi 2007 and it will be available for download shortly (in fact, it's available for download now in Germany). This is a major milestone for CodeGear and as has been mentioned we've put tons of effort into making this a great release. There are lots of features and improvements to blog about so I'll continue posting about cool features. If there is anything inparticular you would like to hear about please leave me a comment and I'll do my best to post some coverage.

A big thanks to our Field Test community and the BetaBloggers for helping us kick off CodeGear's first major Delphi release. Thanks to all of you who answered Nick's call for beta testers.

 Wednesday, March 14, 2007

Source code and screenshot of my Vista Demo application on Windows XP

Posted @ 2:00PM by Steve Trefethen

Categories: CodeGear | Delphi | VCL

Tags:  |  | 

I got a few comments regarding the Vista Demo application I blogged about so I thought I'd answer those as well as provide the source code.

> stanleyxu: A small question: is it a 100% Vista-like user interface?

The new Vista UI introduces lots of changes not all of which are supported in Delphi 2007. Delphi 2007 is binary compatible with BDS 2006 which means some of the additional support will have to wait for a release where interface compatibility isn't a requirement.

> gabr: could you release a full source for that?

Absolutely, here you go. Here is a screenshot of this exact same executable running on Windows XP:
VCL application with Windows Vista Aero UI support

The project itself has only two lines of code setting DoubleBuffered := True on the two controls located on the Glass area of the form. You can load and recompile this application in BDS 2006 and just click Ignore all to the message regarding unknown form properties (which are new in Delphi 2007). Just be sure to install the demo Shell Control components first.
 Tuesday, March 13, 2007

Writing native Win32 applications for the Windows Vista Aero UI

Posted @ 4:56PM by Steve Trefethen

Categories: CodeGear | Delphi | VCL | Vista

Tags:  |  |  | 

If you're a Windows developer and your looking to write native Win32 applications that support Microsoft Vista's new Aero UI you're sort of on your own right now. If you're a Visual Basic 6.0 developer you'll need to "roll your own" solution since Microsoft has moved to .NET. If you're an MFC developer, based on a few Microsoft blog posts, it appears you'll have to wait for the Orcas release of Visual Studio which Scott Guthrie has said will be shipping sometime in the second half of 2007 though it's unclear, at least to me, what level of support is actually planned and I've Googled all over looking.

In Delphi 2007, which CodeGear has announced to be available in Q1, you will not only be able to develop new Win32 applications that support Aero but you'll be able to update exising VCL applications as well. There has been a lot of work on the VCL to support Vista including the Aero UI, the common dialogs, the TaskDialog API. Allen has a nice write-up on how we implemented some of these changes without breaking existing unit compatibility with BDS 2006

Here is a screenshot of Delphi 2007 VCL application I threw together illustrating the new Aero support:

VCL application with Windows Vista Aero UI support

Of note in this screenshot is the Glass UI which extends into the client region of the form, the new style listview/treeview controls, the gradient toolbar style and the combobox style.

 Friday, March 09, 2007

My favorite things about Delphi 2007

Posted @ 7:28AM by Steve Trefethen

Categories: Delphi

Tags:

Ben Smith CodeGear's CEO has tagged me for my favorite things about Delphi 2007. In no particluar order:

  1. FastCode/community contributions to the RTL

    This quote pretty much sums up the Delphi community:
    "One of the best I've found is the community that grew up around the Borland programming tools that have since become the CodeGear programing tools. Members of that community go to amazing lengths to help fellow programmers learn new ways of doing things. I've tried many other communities and you are either ignored or ridiculed."
    (I found this using a Delphi related Google blog search I converted to an RSS feed via Yahoo Pipes)

  2. Seppy Bloom's work on Vista support in the VCL
  3. Jim Tierney's work on usability improvements in the VCL form designer
  4. Mark Edington's work on desktop switching performance
  5. Adam Markowitz's work on Code Insight

Like David, there are far more things to mention this but some of these are not obvious until you start using the product.

I tag: Eric Fortier, Zarko Gajic, Jeremy North, Jacob Thurman and Matt Levin
 Saturday, March 03, 2007

Delphi 2007 Component Palette Improvements

Posted @ 9:07PM by Steve Trefethen

Categories: Delphi | Quality

Tags:  | 

Recently, Jeremy North, Marco Zehe and Primoz Gabrijelcic have all blogged about some great tool palette enhancements in the Delphi 2007. One item I haven't seen mentioned is better keyboard support. Since the Tool Palette is now organized like a treeview, albeit a two level treeview, we felt it should support similar keyboard navigation. Marco Zehe pointed out that categories are now selectable but additionally you can use all the normal treeview keystrokes to expand/collapse categories and navigate the palette which is much more consistent UI.
 Tuesday, February 27, 2007

Community contributions improve Delphi 2007 RTL performance

Posted @ 5:52AM by Steve Trefethen

Categories: Delphi | Performance

Tags:  | 

One of the areas I've worked on in the Delphi 2007 release is the inclusion of Delphi Community RTL contributions. Now, including community contributions is not new to Delphi. In fact, there is a project called FastCode which is dedicated to providing highly optimized, high quality replacements for existing RTL routines. With Delphi 2007 we've replaced the following RTL routines with code from our user community including the FastCode project under an MPL 1.1 license which is consistent with previous community contributions:

Contributor(s) Routine
FastCode and Pierre le Riche SysUtils.CompareStr
FastCode and Pierre le Riche SysUtils.StrLen
FastCode and John O'Harrow
SysUtils.LowerCase
FastCode and John O'Harrow
SysUtils.UpperCase
Pierre le Riche
System._LStrCmp

Since this release is interface compatible with BDS 2006 we had somewhat less flexibility to take RTL replacements but the door will swing back open with our next release and I'll continue integration of these great contributions.
 Saturday, February 24, 2007

Delphi 2007 desktop switching performance improvements

Posted @ 10:46AM by Steve Trefethen

Categories: Delphi | Performance

Tags:  | 

The Delphi/BDS IDE supports saving of desktops, or window layouts, via a dropdown list available from the main toolbar. These desktops allow you to control which windows are visible and arrange their size, position and docked location. For example, here is my design-time layout:

Delphi IDE design layout

As you can see I use the "undocked IDE" meaning my code editor is free floating, not docked into the top main toolbar window. I actually like the docked IDE but I prefer to do everyday work using the undocked layout to make sure it's always getting tested.

Now About the Perf...

The other day Mark Edington our performance cop recruited me to help with tuning the performance of switching desktop which I mentioned was keeping me busy on Tuesday. This morning I checked my email and Mark had done some timing of my new code and found "The general average seems to be that things are approximately 30% faster". Cool! Couple this with the flicker work I've been doing and I think the Delphi 2007 experience is going to be much nicer.
 Tuesday, February 20, 2007

CodeGear announces Q1 releases of Delphi 2007 and Delphi for PHP

Posted @ 4:05PM by Steve Trefethen

Categories: CodeGear | Delphi

Ta