Skip to content

Delphi 2009 and C++Builder 2009 Live Webinars with David I starting tomorrow, August 13

I hope you will join me for three weeks of Project Tiburon (Delphi 2009 and C++Builder 2009)
preview webinars taking place starting tomorrow, Wednesday August 13.  I will be doing a
Delphi and C++Builder live webinar each Wednesday, Delphi at 11am Pacific Daylight Time (PDT)
and C++Builder at 1pm Pacific Daylight Time (PDT).

To pre-register for the Delphi 2009 and C++Builder 2009 webinars go to:

  What’s new in Delphi 2009
  Wednesday, August 13, 11:00am PDT (UTC -7)
    https://www.livemeeting.com/lrs/advancedsw_ccc/Registration.aspx?pageName=3rqsv5mftkxzmxzd

  What’s new in C++Builder 2009
  Wednesday, August 13, 1:00pm PDT (UTC -7)
    https://www.livemeeting.com/lrs/advancedsw_ccc/Registration.aspx?pageName=x6w5d7xhhdk1953g

  Easily connect with all your data across multiple sources and tiers using Delphi 2009
  Wednesday, August 20, 11:00 AM PDT (UTC -7)
    https://www.livemeeting.com/lrs/advancedsw_ccc/Registration.aspx?pageName=75bscbk40p9sczt7

  Easily connect with all your data across multiple sources and tiers using C++Builder 2009
  Wednesday, August 20, 1:00 PM PDT (UTC -7)
    https://www.livemeeting.com/lrs/advancedsw_ccc/Registration.aspx?pageName=dx47hm4qwfmggf4m

  Migrating your Projects to Delphi 2009 – It’s easy!
  Wednesday, August 27, 11:00 AM PDT (UTC -7)
    https://www.livemeeting.com/lrs/advancedsw_ccc/Registration.aspx?pageName=6jrgl47v10dcdh8v

  Migrating your Projects to C++Builder 2009 – It’s easy!
  Wednesday, AUgust 27, 1:00 PM PDT (UTC -7)
    https://www.livemeeting.com/lrs/advancedsw_ccc/Registration.aspx?pageName=xf2429xg8s1cqsmk

Sincerely,

David Intersimone "David I"
Chief Evangelist, CodeGear
Embarcadero Technologies

ps:  You can also see Delphi 2009 and C++Builder 2009 sneak peak videos at
  http://www.codegear.com/cg-videos/

Tiburon, Delphi 2009/C++Builder 2009, Preview Information
———-

Here Comes Tiburon
  http://blogs.codegear.com/nickhodges/2008/07/15/39066

Tiburón - String Theory
  http://blogs.codegear.com/abauer/2008/07/16/38864

Tiburón Preview: TButtonedEdit
  http://blogs.codegear.com/seppybloom/2008/07/18/37605

Some new and enhanced VCL components coming in Tiburon
  http://dn.codegear.com/article/38349

New Language Construct for Exit
  http://blogs.codegear.com/nickhodges/2008/07/22/39079/

Boost support in Tiburon C++Builder 2009
  http://blogs.codegear.com/davidi/2008/07/21/38911/

Tiburon Preview: Vista Wait Chain Traversal
  http://blogs.codegear.com/chrishesik/2008/07/21/34833/

Tiburon DataSnap enhancements
  http://blogs.codegear.com/steveshaughnessy/2008/07/20/38912/

Tiburon - more about DataSnap
  http://blogs.codegear.com/andreanolanusse/2008/07/21/tiburon-more-about-datasnap/

Tiburon/C++Builder - soon with live UML modeling
  http://blogs.codegear.com/davidi/2008/07/17/38902

Tiburon’s LoadFromFile and SaveToFile for Unicode characters
  http://blogs.codegear.com/davidi/2008/07/15/38898

Unicode database support in Tiburon for Delphi and C++
  http://blogs.codegear.com/davidi/2008/07/15/38895

Don’t Get Caught with Boxes
  http://blogs.codegear.com/nickhodges/2008/07/17/39073

Ready For Tiburon: SmartInspect from Gurock Software
  http://blogs.codegear.com/nickhodges/2008/08/09/39096/

Tiburon News, Information, and Sneak Peeks
  http://blogs.codegear.com/nickhodges/2008/08/08/39094/

Delphi 2009 and C++Builder 2009 preview webinars, Wednesday August 13

I will be presenting two webinars next Wednesday, August 13, giving an demonstration of What’s New in the upcoming Delphi 2009 and C++Builder 2009.  In each of the webinars I will showcase what is new in the language, library, components, and IDE.

You will find additional information in the developer network calendar and the following articles.  Each webinar will last approximately 1 hour (depending on Q&A). You can pre-register for each webinar using the link in each article.

I hope you will join me next week.  It’s going to be fun!

david_752.gif

purplyel_750.gif

Are you concerned with database/SQL optimization or performance?

Embarcadero Technologies’ DB Optimizer brings profiling and tuning into the development process so you can speed up implementation cycles and deliver optimized code to production. DB Optimizer can easily be combined with other database development and administration tools. It combines SQL profiling, tuning, and editing in to one interface and is a great compliment to any 24×7 monitoring tool.

If you want to see the product in action: on Thursday, August 14, we will present a new web seminar, Finally! The SQL Profiling and Tuning Tool You’ve Been Waiting For, by Greg Nerpouni, Embarcadero Technologies’ Senior Product Manager, Developer Solutions. Follow the link below for more details on the webinar and to register and receive the online meeting information necessary to attend the event.

Web Seminar Details
Finally! The SQL Profiling and Tuning Tool You’ve Been Waiting For
Date: Thursday, August 14, 2008
Time: 11:00 AM PST/ 2:00 PM EST
Duration: 1 hour
To register for the webinar go to: http://emb.rsys1.net/servlet/website/ResponseForm?LtmE.2e8vimU_3LIpgHk_7NnTB_bgOpmL

If you want to take the product for a spin: take the DB Optimizer Challenge and get a free t-shirt!

DB Optimizer offers:

  • Graphical visualization of wait-time analysis to easily pinpoint the SQL causing poor database performance
  • Hyperlinked drill-downs for locating detailed activity information for an individual SQL statement
  • Explain plans for a better understanding of how SQL will be executed and the performance costs
  • Real-time Quick Fixes to flag and correct inefficient SQL automatically (Oracle)
  • Batch tuning of DML statements, stored routines, entire SQL files and the System Global Area (Oracle)

Additional Information:

Tiburon Preview - this Friday, August 1st - 11am PDT

Join us this Friday, August 1st at 11am Pacific Daylight Time for a first look at Tiburon, the next Delphi and C++ Builder release.

The presentation will last for one hour and will cover what is new in Tiburon including language enhancements, new VCL components, database and DataSnap, and new IDE capabilities.  This webinar is for Delphi and C++ developers.  It will be presented in english and will last for one hour.

 To pre-register for this event go to

https://www.livemeeting.com/lrs/advancedsw_ccc/Registration.aspx?pageName=cv0btr3dhzvvhl83

Tiburon - new language features for Delphi 2009

There are loads of new features in Tiburon for Delphi and C++Builder developers. New language features, more compatibility at the component level between Delphi and C++, C++0x draft standard language and library support, new and enhanced VCL components, and a totally revamped DataSnap.

Here is a quick look at two of the new Delphi language features - Generics and Delphi Anonymous Methods

Delphi Generics: Great for containers and collections

Declaration:

  TList<T> = class
  private
    FItems: array of T;
    FCount: Integer;
    procedure Grow(ACapacity: Integer);
    function GetItem(AIndex: Integer): T;
    procedure SetItem(AIndex: Integer; AValue: T);
  public
    procedure Add(const AItem: T);
    procedure AddRange(const AItems: array of T);
    procedure RemoveAt(AIndex: Integer);
    procedure Clear;
    property Item[AIndex: Integer]: T
      read GetItem write SetItem; default;
    property Count: Integer read FCount;
  end;

Use:

var
  ilist: TList<Integer>;
  slist: TList<String>;     

procedure PrintListInteger;
var
  i: Integer;
begin
  for i := 0 to ilist.Count - 1 do
    Write(ilist[i], ' ');
  Writeln;
end;         

procedure PrintListString;
var
  i: Integer;
begin
  for i := 0 to slist.Count - 1 do
    Write(slist[i], ' ');
  Writeln;
end;         

begin
  ilist := TList.Create;
  try
    ilist.AddRange([1, 2, 3]); // ['1', 'second', 'third']);
    PrintListInteger;
    ilist.RemoveAt(1);
    PrintListInteger;
    ilist.Clear;
    PrintListInteger;
  finally
    ilist.Free;
  end;
  slist := TList.Create;
  try
    slist.AddRange(['one', 'two', 'three']); // ['first', 'second', 'third']);
    PrintListString;
    slist.RemoveAt(1);
    PrintListString;
    slist.Clear;
    PrintListString;
  finally
    slist.Free;
  end;
  Readln;
end.

The Tiburon Generics.Collections unit includes: TList, TQueue, TStack, TDictionary, TObjectList, TObjectQueue, TObjectStack, and TObjectDictionary.

Delphi Anonymous Methods: use them when nothing else is nearly as good, ideal for passing code when you need to parameterize types and procedures by code or behaviour. You can also "simulate" new syntax constructs defined entirely in libraries. Don’t use them when for/in or an equivalent loop would do.

Declaration:

type
  // method reference
  TProc = reference to procedure(x: Integer);               

procedure Call(const proc: TProc);
begin
  proc(42);
end;

Use:

var
  proc: TProc;
begin
  // anonymous method
  proc := procedure(a: Integer)
  begin
    Writeln(a);
  end;               

  Call(proc);
  readln
end.

For a look at the new language construct for Exit, check out Nick Hodges blog at http://blogs.codegear.com/nickhodges/2008/07/22/39079/

Boost support in Tiburon C++Builder 2009

We are adding the Boost C++ libraries to C++Builder in Project Tiburon.  You could use Boost with previous versions of C++Builder, but C++Builder 2009 will have the 1.35 libraries included with the product.  Below you will find a few screen shots showing a sample program that uses the Regex regular expression library.

The first screen shot shows the Boost 1.35 header files as part of the include path.

boost1_714.jpg

 The second screen shot shows the Regex example program from the Boost.org web site.

boost2_716.jpg

 The third screen shot shows the program in action.

boost3_718.jpg

Stay tuned to the developer network and blogs for additional previews of Project Tiburon - Delphi 2009 and C++Builder 2009.

Do you spend too much time writing SQL code for your Java programs?

Wish you had a tool that would help you write better SQL, faster?  Get to know Embarcadero PowerSQL!

PowerSQL is the first SQL development tool built specifically to meet the needs of application developers. With the acquisition of CodeGear, Embarcadero can now offer unparalleled end-to-end Java and SQL development by pairing PowerSQL and JBuilder.

Please join us for a new web seminar, “A Powerful SQL IDE for Java Developers”, to learn how PowerSQL can help you:

  • Produce SQL with 100% object name accuracy and real-time SQL syntax validation.
  • Write error-free and high-performing SQL code with real-time performance suggestions and optimal execution plans.
  • Streamline project organization and maintenance with project-level SQL file cataloging and search features.
  • Easily navigate, search, extract DDL, execute commands, and browse an outline view without opening the SQL file.
  • Create and easily incorporate SQL into your Java projects.

A Powerful SQL IDE for Java Developers

Date: Thursday, July 24, 2008
Time: 11:00 AM PDT/ 2:00 PM EDT
Duration: 1 hour

To register for the webinar go to: http://emb.rsys1.net/servlet/website/ResponseForm?LtmEwhPLkzxe_3LIpgHk_cNsRTB_bgOpmL_c8NpsKLk

Tiburon/C++Builder - soon with live UML modeling

C++Builder 2007 included code visualization, a one-way UML class diagram view, we called it code visualization.  In Project Tiburon, the next version of C++Builder will have live modeling.  This means you can work in the source code, work in the UML model, and move back and forth with full, live synchronization - "the code is the model, the model is the code".

C++Builder will include support for the Class, Use Case, Sequence, Collaboration, Component, Deployment, Statechart, and Activity diagrams.

cppuml1_666.jpg

cppuml1a_668.jpg

cppuml2_670.jpg

The C++Builder modeling support also includes design pattern support including "create by pattern" and harvesting objects in your models with the "save as pattern".  For Tiburon’s C++Builder supports Gang of Four design patterns including the Behavioral, Creational, and Structural groups of patterns.

 cppuml3_672.jpg

cppuml4_674.jpg

When (and/or if) you need to generate HTML documentation for your project, you can right mouse click on any diagram and choose the "Generate Documentation" pop-up menu item and choose to generate diagrams, JavaScript navigation tree, and interfaces for the current namespace, current namespace with descendant namespaces, current diagram, or all diagrams.

cppuml5_676.jpg

Stay tuned to the developer network for additional C++Builder news and preview videos.

Tiburon’s LoadFromFile and SaveToFile for Unicode characters

With Tiburon, I can use Unicode characters with VCL components like TMemo, TListBox, TComboBox (and others that contain string lists).  How can I  load the strings from a file and save the strings to a file? How do I need to modify any existing Delphi and C++Builder programs to handle Unicode characters for these components?  Here is the answer.

There is a new, optional, parameter for the LoadFromFile and SaveToFile methods. The optional parameter is named "Encoding" and its type is class type "TEncoding". TEncoding (defined in the SysUtils unit) contains several class properties that you can use to specify the type of strings you want to load and/or save:  ASCII, BigEndianUnicode, Default, Unicode, UTF7, UTF8.

The following are the declarations for LoadFromFile and SaveToFile methods for components that contain TStrings (defined in the Classes unit)

Delphi:
  procedure TStrings.LoadFromFile(const FileName: string);
  procedure TStrings.LoadFromFile(const FileName: string; Encoding: TEncoding);
  procedure TStrings.SaveToFile(const FileName: string);
  procedure TStrings.SaveToFile(const FileName: string; Encoding: TEncoding);

C++Builder:
  virtual void __fastcall LoadFromFile(const System::UnicodeString FileName)/* overload */;
  virtual void __fastcall LoadFromFile(const System::UnicodeString FileName, Sysutils::TEncoding* Encoding)/* overload */;
  virtual void __fastcall SaveToFile(const System::UnicodeString FileName)/* overload */;
  virtual void __fastcall SaveToFile(const System::UnicodeString FileName, Sysutils::TEncoding* Encoding)/* overload */;

Looking at the Delphi implementation for SaveToFile shows the use of TStream and the encoding I provide:

procedure TStrings.SaveToFile(const FileName: string);
begin
  SaveToFile(FileName, nil);
end;

procedure TStrings.SaveToFile(const FileName: string; Encoding: TEncoding);
var
  Stream: TStream;
begin
  Stream := TFileStream.Create(FileName, fmCreate);
  try
    SaveToStream(Stream, Encoding);
  finally
    Stream.Free;
  end;
end;

The following examples show how to load and save the strings with a ListBox VCL component on your form:

Delphi:
  Listbox1.Items.LoadFromFile(’c:\temp\MyListBoxItems.txt’,TEncoding.UTF8)
  ListBox1.Items.SaveToFile(’MyListBoxItems.txt’,TEncoding.UTF8);

C++Builder:
  ListBox1->Items->LoadFromFile("c:\\temp\\MyListBoxItems.txt", TEncoding::UTF8);
  ListBox1->Items->SaveToFile("c:\\temp\\MyListBoxItems.txt",TEncoding::UTF8);

Here is a screen shot of my example Delphi application:

delphihelloworld_658.jpg 

Here are links to the Delphi and C++Builder versions of the application:  delphihelloworld_660.zip  cpphelloworld_661.zip

With Tiburon, now my Delphi and C++ demo applications can handle Unicode characters in list boxes, edit boxes, and labels,  and I can also save and load the Unicode strings to/from my hard drive.

Unicode database support in Tiburon for Delphi and C++

In Tiburon, the next versions of Delphi and C++Builder, there is full support for Unicode throughout the language, the compiler, the runtime library, and the VCL. The basic String type is now a UnicodeString. As part of the Unicode support, there is also full support for Unicode characters in databases and database components. While Delphi and C++Builder have supported Unicode characters at the database level for some time, you know can use all of the VCL components to display and manipulate the Unicode characters.

I have an InterBase database from demos I did back when we first added support for Unicode in our DBX3 driver days. The database contains English, Greek, Hebrew, and Chinese strings in the CharField column. I create a VCL application with some database components: SQLConnection, SQLDataSet, DataSetProvider, ClientDataset, DataSource, DBGrid and DBLabel.

There are two ways to get a program to work with the Unicode database. 1) Open SQLConnection’s "params" property in the Object Inspector and create the name=value pair "ServerCharSet=UTF8". Then right mouse click on the SQLConnection component and choose "Refresh Connection String". Set the Connection active and now I have Unicode Characters in the DBGrid. 2) Modify the DBXConnections.xml file for your database connection to add "ServerCharSet=UTF8".

image10_654.jpg

Here is the resulting VCL application form at design time:

image11_656.jpg

Stay tuned to the developer network for Tiburon video previews. Also stay tuned to the CodeGear blogs for other employees who will preview Tiburon technologies.

Close