Latest Posts
Your data, how you want it, where you want it, with DataSnap 2010
You can use Embarcadero Technologies‘ RAD Studio 2010, Delphi 2010, C++Builder 2010, and Delphi Prism 2010 to build lightning-fast, rich native Windows, .NET, Web, and database applications. You can also decide to use the new DataSnap 2010 technology to build distributed applications with separate desktop or web clients, middle tier business logic application servers, and back end database servers. Bob Swart (aka Dr.Bob an IT consultant, developer, reseller, author, trainer and webmaster for his company Bob Swart Training & Consultancy - eBob42 - based in Helmond, The Netherlands) takes you from start to finish building DataSnap multi-tier applications.
Key new features in RAD Studio 2010 include:
- NEW! Cutting-edge support for touch- and gesture-enabling your apps on any Windows OS, including Windows 7
- NEW! IDE Insight for instant access to any feature, setting, or component
- ENHANCED! Support for the latest databases with DataSnap™ and dbExpress™
- NEW! Support for Firebird database!
- NEW! Over 120 developer-focused IDE enhancements
- and more
Your data, where you want, how you want it - watch the videos, read the paper!
Let Bob Swart ("Dr Bob") take you from the start with building DataSnap servers and clients on Windows, right through how to use filters, callbacks and build Web targets. Click http://www.embarcadero-info.com/in_action/radstudio/db.html to download his white paper and watch his new videos.
Please register to download the white paper at http://www.embarcadero-info.com/in_action/radstudio/db.html
White Paper: Delphi 2010 DataSnap: Your data – where you want, how you want it.
Table of contents
- DataSnap History
- DataSnap Windows Targets
- DataSnap and Databases
- DataSnap Filters
- DataSnap Web Targets
- HTTP(S) and Authentication
- REST and JSON
- DataSnap and .NET
- Summary
Ways to stay connected and up to date with Embarcadero
- Follow Us! Embarcadero on Twitter - http://twitter.com/EmbarcaderoTech
- Watch Us! Videos on YouTube - http://www.youtube.com/embarcaderotechnet
- Network with Us! Embarcadero on LinkedIn - http://www.linkedin.com/companies/embarcadero-technologies
- Take Part! Embarcadero Events - http://www.embarcadero.com/news/events.php
- The Blogosphere! Embarcadero employee blogs - http://blogs.embarcadero.com/
- Talk Shop! Embarcadero Discussion Forums - https://forums.embarcadero.com/index.jspa
Share This | Email this page to a friend
posted @ Fri, 06 Nov 2009 13:50:43 +0000 by David Intersimone
Delphi Conference Brasil - Inscrições Abertas
Share This | Email this page to a friend
posted @ Fri, 06 Nov 2009 00:38:01 +0000 by Andreano Lanusse
Embarcadero ER/Studio Software Architect Demo
Embarcadero® ER/Studio® Software Architect is UML modeling tool for application architects to visually analyze and design complex software applications. By supporting the UML 2.0 specification, it simplifies the design stage of a project by organizing and visualizing the requirements, subsystems, design patterns, and audit metrics of intensive software systems. Model-driven architecture and standards Industry-standard patterns Model audits and [...]
posted @ Wed, 04 Nov 2009 10:03:28 +0000 by Josh Howard
RAD Studio 2010: Delay Load import exceptions
One of the things I do after a product release (or an update release, for that matter) is keep an eye on the Incident Reports that are submitted to QualityCentral via the Send Report wizard that is built into the IDE. A few years ago, I wrote a tool that makes it really easy to see which reports are coming in at a high frequency. The data gleaned from this tool is really helpful when looking for "big bang for the buck" type bug fixes to go after for an update (or future product release). One issue that I’ve seen reported at a moderate level (about a dozen reports, so far) for the 2010 release is related to the new "delay-loaded import" feature. You can learn more about this feature by reading the following posts by Allen Bauer and Christian Wimmer:
http://blogs.embarcadero.com/abauer/2009/08/25/38894
http://blogs.embarcadero.com/abauer/2009/08/29/38896
http://blog.delphi-jedi.net/2009/08/29/version-checking-for-delphi/
In Christian’s post and in Allen’s second post, there is discussion of the exception that is raised when a delay-loaded method can not be found at runtime. It is this exception that is prompting D2010 users to submit QC reports. In fact, every single one of these reports I’ve seen so far are coming from developers who are using the JVCL at design time in the IDE — in particular it appears that these developers are using a TJvCustomSpeedButton descendant. Based on the exception, it would appear that each report was generated on a pre-Vista OS.
The error message associated with this exception is either "External Exception $C0FB007E" or "External Exception $C0FB007F." Here is the top of the stack trace for one of these reports (this is what you’ll see if you click the "Details" button on the error message in the IDE):
[7C812A6B]{kernel32.dll} RaiseException + $52
[50011BDB]{rtl140.bpl } System.@_delayLoadHelper (Line 302, "C:\Builds\TP\rtl\sys\delayhlp.c" + 158) + $D
[500B0681]{rtl140.bpl } UxTheme.uxtheme.dll (Line 5112, "UxTheme.pas" + 0) + $5
[500B0712]{rtl140.bpl } UxTheme.DrawThemeTextEx (Line 5138, "UxTheme.pas" + 1) + $20
[490EE508]{JvCoreD14R.bpl} JvThemes.DrawGlassableText + $C4
[490EE54C]{JvCoreD14R.bpl} JvThemes.DrawGlassableText + $108
[49ACF1B4]{JvStdCtrlsD14R.bpl} JvSpeedButton.TJvxButtonGlyph.DrawButtonText + $C4
[49ACF2A6]{JvStdCtrlsD14R.bpl} JvSpeedButton.TJvxButtonGlyph.DrawEx + $E2
[49ACDA81]{JvStdCtrlsD14R.bpl} JvSpeedButton.TJvImageSpeedButton.PaintImage + $C5
[49AE416C]{JvStdCtrlsD14R.bpl} JvToolEdit.TJvEditButton.PaintImage + $78
[49ACCC96]{JvStdCtrlsD14R.bpl} JvSpeedButton.TJvCustomSpeedButton.Paint + $336
[49AE4078]{JvStdCtrlsD14R.bpl} JvToolEdit.TJvEditButton.Paint + $98
[501CE436]{vcl140.bpl } Graphics.TCanvas.SetPenPos (Line 4050, "Graphics.pas" + 1) + $9
[5029F685]{vcl140.bpl } Controls.TGraphicControl.WMPaint (Line 13141, "Controls.pas" + 7) + $5
[49ACD58E]{JvStdCtrlsD14R.bpl} JvSpeedButton.TJvCustomSpeedButton.WMPaint + $B6
[50295DFC]{vcl140.bpl } Controls.TControl.WndProc (Line 7062, "Controls.pas" + 91) + $6
The exception is raised because in Delphi 2010, the DrawThemeTextEx declaration in UxTheme.pas was changed from using the LoadLibrary/GetProcAddress mechanism mentioned by Allen to use the new delay-loaded mechanism.
Below if the pre-D2010 version of the implementation of DrawThemeTextEx:
function DrawThemeTextEx(hTheme: HTHEME; hdc: HDC; iPartId: Integer;
iStateId: Integer; pszText: LPCWSTR; cchText: Integer; dwTextFlags: DWORD;
pRect: PRect; var pOptions: TDTTOpts): HResult;
begin
if Assigned(_DrawThemeTextEx) then
Result := _DrawThemeTextEx(hTheme, hdc, iPartId, iStateId, pszText, cchText,
dwTextFlags, pRect, pOptions)
else
begin
Result := E_NOTIMPL;
if ThemeLibrary > 0 then
begin
_DrawThemeTextEx := GetProcAddress(ThemeLibrary, 'DrawThemeTextEx'); // Do not localize
if Assigned(_DrawThemeTextEx) then
Result := _DrawThemeTextEx(hTheme, hdc, iPartId, iStateId, pszText,
cchText, dwTextFlags, pRect, pOptions);
end;
end;
end;
And here is the D2010 version:
function DrawThemeTextEx(hTheme: HTHEME; hdc: HDC; iPartId: Integer;
iStateId: Integer; pszText: LPCWSTR; cchText: Integer; dwTextFlags: DWORD;
pRect: PRect; var pOptions: TDTTOpts): HResult; stdcall; external themelib name 'DrawThemeTextEx' delayed;
Because of the change, existing code that calls this API on a pre-Vista system would now generate the aforementioned delay-load exception. With the old mechanism, calling this method would have resulted in a "E_NOTIMPL" return value. The JVCL code that calls this API, had error-handling code in place to properly handle the E_NOTIMPL return value, but this did not help with the new exception-raising mechanism. I just checked, and it looks like the JVCL team has addressed this issue. The sources contained in the current JVCL tip revision properly handle the situation by doing a Windows version check before calling the API (see revision 12491 of JVThemes.pas, committed on September 4th, 2009). That said, if you are using the JVCL and have not yet updated to the most recent sources, you may still run into this exception in D2010 when running on Windows XP (or any pre-Vista version of Windows). To avoid this, I would suggest updating your JVCL sources. If that’s not practical, I would at least apply the changes made in the aforementioned revision.
On a related note, it would probably be a good idea for the IDE to give a better error message in this particular case. I think that if the IDE used a solution similar to one presented by Allen in his second post, that would definitely make things much more user-friendly should an error like this occur again in the future. Telling the user that a particular entry point is missing from a particular module is much nicer than giving an external exception with an obscure error code. I’ll be investigating such a solution for a future release.
UPDATE: I just noticed that Andreas Hausladen blogged on this exact issue a few months ago: http://andy.jgknet.de/blog/?p=660
Share This | Email this page to a friend
posted @ Mon, 02 Nov 2009 18:41:47 +0000 by Chris Hesik
Random Thoughts on the Passing Scene #134
- We have published Help Update #1 for the RAD Studio 2010 help. You can find out more at the Developer network. The Help Update should be available through the IDE’s automatic update system. If you have that turned off by default, you can invoke it via the Start menu.
- Question: Can you ever really have “Release Candidate 1”? If you call it that (as opposed to just “Release Candidate”), is it really a release candidate?
- The marketing folks have been busy – they’ve taken your input and created a Delphi and C++Builder Application Showcase page. On that page, you can find all different kinds of applications that are built with RAD Studio, from licensing tools to Client/Server applications to games and media players. If you want to see the power and speed of what can be done with your favorite development tool, that is the place to go. And of course, if you want to be included in that impressive lineup, then let us know.
- I’ve mentioned this before, but it bears repeating: If your most current version of RAD Studio is 2005 or earlier, then 31 December 2009 is the last day you can take advantage of upgrade pricing. So if it has been a while since you’ve upgraded, now is the time. That page is also our Upgrade Center, which has information and links about the latest new features, how to migrate to Unicode, and getting your third-party tools updated to the latest version. There isn’t going to be a better time to make the move to the best version of RAD Studio ever.
- And of course, if you’ve moved to Windows 7, RAD Studio is the tool for doing your Windows 7 development.
Share This | Email this page to a friend
posted @ Mon, 02 Nov 2009 17:09:51 +0000 by Nick Hodges
RAD Studio 2010 tour around the US in November and December
We are on the road in the United States in November and December with free seminars and workshops covering all the development you can do with RAD Studio 2010, Delphi 2010, C++Builder 2010 and Delphi Prism 2010.
Technology is moving fast. Learn the secrets to getting the most out of RAD Studio 2010 and new Windows technologies by attending the RAD Studio 2010 Tour in a city near you. These free two-hour technical seminars, led by noted experts David Intersimone, Anders Ohlsson, Nick Hodges, or Mike Rozlog, will give you a firsthand look at new capabilities that will make you more productive and successful with Delphi®, C++Builder®, Delphi Prism™ and Embarcadero® RAD Studio 2010.
You’ll learn how to:
- Speed your development using new IDE and debugging enhancements
- Take advantage of new Delphi language features including RTTI
- Build apps that leverage new Windows® 7 technologies
- Touch, multi-touch, and gesture enable your applications with ease
- Migrate your earlier Delphi projects to Delphi 2010
- Rapidly create multi-tier, desktop, and Web applications
- Improve data and code comprehension and quality
Register today! All event attendees will receive:
- Special discounts on Delphi, C++Builder, Delphi Prism and RAD Studio
- Entry in a drawing for a free copy of RAD Studio 2010 and other prizes
- Discount on Delphi training from The DSW Group
To register, click the city of your choice:
- San Diego, CA, November 10 - 12:30pm-2:30pm
Silicon Valley, CA, November 11 - 11:00am-1:00pm
Phoenix, AZ, November 12 - 12:00pm-2:00pm
Philadelphia, PA, November 17 - 6:00pm-8:00pm
Raleigh, NC, November 18 - 6:00pm-8:00pm
Minneapolis, MN, November 19 - 6:00pm-8:00pm
Sacramento, CA, December 2 - 6:00pm-8:00pm
Los Angeles, CA, December 3 - 7:00pm-9:00pm
Denver, CO, December 8 - 5:00pm-7:00pm
More cities and dates are being added. Stay tuned to this page for updates.
The U.S. tour home page can be found at http://www.embarcadero.com/rad-tour-2010-free-seminar
Share This | Email this page to a friend
posted @ Mon, 02 Nov 2009 15:38:16 +0000 by David Intersimone
La guia de Delphi - Libro de Marco Cantu en Español
El libro Delphi 2009 Handbook de Marcu Cantu fue traducido al Español, felicito a nuestro partner Danysoft por el excelente trabajo.

Para tener mas información y adquirir el libro, clic aqui
Share This | Email this page to a friend
posted @ Fri, 30 Oct 2009 20:49:15 +0000 by Andreano Lanusse
On the Road with Nick
Hey, I might not be the Delphi Product Manager any more, but that doesn’t mean that I won’t be going out on the road to see customers and show off RAD Studio 2010! I will be making three tour stops as part of the RAD Studio 2010 Road Show. I’ll be doing the Philadelphia, Raleigh, and Minneapolis/St. Paul meetings. (The last one is nice because I’ll get to see my folks and my old running mates in the Twin Cities). Each of those three events will be held “right after work” from 0:600pm – 08:00pm. Follow the links for more information about the venues.
So please sign up – I’d love to see you all again or meet you for the first time, as the case may be.
And remember, it’s all free!
Share This | Email this page to a friend
posted @ Fri, 30 Oct 2009 16:21:29 +0000 by Nick Hodges
Delphi Conference Brasil - Prepare-se
![]()
Share This | Email this page to a friend
posted @ Fri, 30 Oct 2009 05:00:58 +0000 by Andreano Lanusse
OS X malloc
I could write a lot about OS X malloc. Other people already have, and maybe I’ll write some more about it at a later date. I just wanted to point out a couple of things to make people think a little.
The default allocator you get when you call malloc has a bunch of debugging support built in. Some of it is enabled all the time. For example, try this:
#include <stdlib.h>
int main(void) {
void *p = malloc(10);
free(p); free(p); // <- hey look: bad code
return 0;
}
If you compile and run this, you’ll get this:
bash-3.2$ ./a.out a.out(11352) malloc: *** error for object 0x100120: double free *** set a breakpoint in malloc_error_break to debug
This support pointed out a few goofs for us early in the RTL development stages. I’ll not go into all the details of the OS X memory manager; there is a lot of good documentation on it available, so I’ll just provide some pointers:
The links above include some details about the various switches you can apply to the memory manager, plus some additional custom malloc debugging libraries, plus some cool tools that are included in the shipping OS for analyzing allocations. Worth a read.
I suppose the first question I asked myself when I saw this was "Doesn’t that have an adverse performance effect on applications?". I think there are several answers to this. One is "Apparently not". Another is "To a degree". The first one comes from simple observation that the platform generally rocks. The second is due to reading various arguments and analyses on the web, some of which say the OS X allocator is slower than Linux, but has improved, some of which say these analyses are not very real world, and if you do real world tests, the OS X allocator rocks pretty well. Forgive me the weasel words - I admit to not doing in depth research on this. I haven’t had time to find or come up with a definitive answer for myself here. I may come back to the topic at a later date, though if the allocator doesn’t really show itself to be a problem when we profile things, I’m not going to worry about it. Mostly my point in blogging today was to make newcomers to the Mac platform aware of the fact that there is quite a bit of debugging and profiling support built right into the platform that is worth looking at and learning about.
Share This | Email this page to a friend
posted @ Thu, 29 Oct 2009 12:27:41 +0000 by Eli Boling


