Yesterday I revisited a nasty problem that occurs on Windows 64bit versions. I ran into that when I upgraded to Windows 7, but it seems it affects older 64bit editions of Windows as well.
After installing D2009 on a clean Win7 machine I was happy to see that Windows 7 really is what Vista should have been. It works snappy and has a lot of productivity features. But then when I started compiling and debugging a couple of my existing Delphi applications I experienced Debugger crashes almost everytime when I terminated an application.
Embarcadero is apparently in the process of blowing out an e-mail blast, which “silently” announces Instant-On(TM), a mechanism which basically eliminates the installation process. You get one executable per product, run it and it will, well, “run”. No more tedious installation procedure.
As far as I understand this technology, you would even be able to keep your Delphi (or any other Embarcadero product) on a USB-stick, and run it on any computer you like. Just plug in the stick and run the exe. Very cool!
I’m excited to get a first demo of this in my hands!
Here is the online-version of the (German) newsletter announcing this technology.
Update: The AllAccess information page also contains the note about “InstantOn. In fact it was already mentioned in the earlier press release of AllAccess – but apprently it didn’t get much attention.
Quote: “On-Demand Power with Embarcadero InstantOn™
A unique, innovative capability in All-Access is Embarcadero InstantOn. With InstantOn, you can simply click-and-run the selected tool on-demand, either locally or over your network, without full installation on your local machine. InstantOn saves valuable time by allowing quick access to tools, even in locked-down desktop environments where installing software is problematic.”
We have got all the top speakers, including Cary Jensson, Marco Cantu and Ray Konopka.
Many (most?) members of Delphi R&D team (including Barry Kelly – “The Delphi Compiler”) will be at the conference and there will be of course "Meet the Team" sessions.
All Sessions are online and registration is now open. The speakers list includes all those who already submitted their bio and photo. For a complete list of speakers please refer to the list of sessions for now.
If you register before April 10th, 2009, then you can take advantage of the Early Bird rebates.
S&S Media is a book/magazine publisher and software conference organizer. S&S is well known in the Delphi community for their Delphi focused "EKON" conferences and "Entwickler" magazines.
For comments, questions or concerns you may use the contact form on the DelphiLive web site, or just leave a comment here.
A while ago a couple of users started reporting odd Access Violations when running a Project in Delphi 2007 for the first time. It turned out that this was caused by some Logitech WebCam drivers. See Nick Hodges blog on this topic.
To make it clear: it’s not just Delphi users reporting issues with these Logitech drivers, some other applications seem to affected as well. Google for lvprcinj.dll – I find the word “injection” in that dll pretty scary btw.
Apparently even with the latest Logitech drivers (11.1.0.2030 at the time of writing this), this error is still there (or maybe there again) and affects Delphi 2009 too.
So if you experience this odd AV as demonstrated on Nick’s blog, then you have terminate lvprcsrv.exe at least.
In OOP, we are using Properties to be able to limit access to class members, or to have “calculated” values. In Delphi Native Pascal, a class with 3 properties may look like this:
As there is obviously still some uncertainty if Delphi Prism is really a fully fledged .NET development environment, I’m posting an example below to prove that Prism does allow you to LINQ to SQL:
This is a “Customer” class definition with a manual mapping to a “Customers” table on a SQL Server 2005:
This is the actual LINQ to SQL code that relies on the class definition above:
method MainForm.button2_Click(sender: System.Object; e: System.EventArgs);
var
LCustomers: Table<Customer>;
LDBMain: DataContext;
LConnectionString:String;
begin
LConnectionString := 'Data Source=.\SQLEXPRESS;Initial Catalog=DBDEMOS;Integrated Security=True';
LDBMain := new DataContext(LConnectionString);
LCustomers := LDBMain.GetTable<Customer>();
var USCustomers := from Customer in LCustomers where Customer.Country = 'US' select Customer;
for each Customer in USCustomers do begin
listBox1.Items.Add(Customer.Name);
end;
end;
Interesting to note is that Prism has a very nice name scope mechanism. Even though “Customer” is a Class name, it is also used as local variable in the LINQ and FOR constructs. I am not saying that this is a good practice though
Technically, both “Customer” variables are different variables – which is quite important to understand.
The full demo source can be downloaded here: [download#2].
There are a couple of people who have asked if LINQ can be used with the new Delphi .NET version aka Delphi Prism. The cool thing is that with Prism you can utilize all available .NET technologies. LINQ though, requires some additional compiler support – to allow for the “compilable query statements”.
The good news is, RemObjects implemented all required compiler support! Excellent!
Delphi Prism comes with a nice “Sync Editing” feature. Unfortunately it’s not enabled by default, because it relies on an external “DXCore” assembly, which is available as free download from DevExpress. This “Sync Edit” works for methods only currently, but it does that in a very intuitive way, you don’t have to remember any shortcuts, just write. As little bonus it also gives you “animated bookmarks”. These bookmarks are used for example when you press CTRL-SHIFT-V to declare a local variable or property (which depends on the name you give).
DevExpress is a component set and productivity plugin vendor who serves the VCL and .NET market. DXCore is a base library which is heavily used by their CodeRush and Refactor products.
To finally enable Sync Editing after installing DXCore you need to copy one file manually. Just follow the steps in this Prism Wiki article.