Archive for the ‘Delphi’ Category
Posted by jpluimers on 2010/07/06
This interesting post by Serg Kas on Delphi interfaces on binary level didn’t make it on DelphiFeeds, hence my reference to it.
It is a nice post about the inner workings of interfaces in Delphi.
Recommended reading!
–jeroen
via: Delphi interfaces on binary level « The Programming Works.
Posted in Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2010/06/22
I always seem to forget the solution for the error messages about DsgnIntf or DesignIntf.dcu not found when porting old (D# projects) to new (D####) projects.
Googling for this always gets a few false hits at the top, so for my memory,
here it is: Read the rest of this entry »
Posted in Component Development, Delphi, Designer Development, Development, Package Development, Software Development | 2 Comments »
Posted by jpluimers on 2010/06/17
When you do some maintenance on old projects, you sometimes bump into things you have completely forgotten about.
This time it is in Visual Studio 2005, with a WPF app, and messages about App.xml.
Since there are few threads covering this problem, so I’m not sure how many people bump into this.
I know that the problem does not limit itself to C#; I have seen people in VB.NET and Delphi.net bump into this as well.
This problem is not limited to Visual Studio 2005, some people also have it in Visual Studio 2010.
Some people also have it with other objects than App.xaml (like Windows1.xaml, etc).
If you get this error, the solution is simple:
- perform a “Clean Solution”,
- then run your app again.
This trick has worked for me every time I bumped into it. Read the rest of this entry »
Posted in .NET, C#, Delphi, Development, Prism, Software Development, Visual Studio and tools, WPF | 2 Comments »
Posted by jpluimers on 2010/06/16
When you want to support long pathnames on Windows, you need to watch for the MAX_PATH limitation.
Some tools, like RoboCopy (developed in C++), Beyond Compare (developed in Delphi) and others get it right.
Getting it right does not depend in your development environment: it is all about calling the right API’s with the right parameters.
Let me take a tool – in this case DropBox, though other tools suffer from the same problem – and investigate how they should do it.
Even though DropBox is cross platform, the Windows version of DropBox limits itself to synchronizing files having less than 260 characters in their path.
This is a big drawback: it is so 20th century having a limitation like this. Read the rest of this entry »
Posted in .NET, Delphi, Development, Encoding, Opinions, Software Development, Unicode | 6 Comments »
Posted by jpluimers on 2010/06/07
Posted in .NET, C#, Delphi, Development, HTML, Java, Opinions, Software Development, VBS, Web Development, WPF | Leave a Comment »
Posted by jpluimers on 2010/05/25
Having done quite a bit of C and C++ work in the past, I often still use “Yoda Conditions”, especially in environments where you have both = and == as an operator.
So, in a boolean expression, I often put the constant to test in front of the test.
I recently learned at stackoverflow that quite a few people call these “Yoda Conditions”:
“Yoda Conditions”— the act of using if(constant == variable) instead of if(variable == constant), like if(4 == foo). Because it’s like saying “if blue is the sky” or “if tall is the man”.
Thanks to dreamlax for helping me find that.
This is a problem in languages that have both the = and == operators, and the result of an assignment itself is also a value (i.e. allowing a = b = true). Read the rest of this entry »
Posted in .NET, C#, Delphi, Development, Java, Ruby, Software Development, Web Development | 22 Comments »
Posted by jpluimers on 2010/05/21
Scott Dorman udpated his macro to change the target framework version for all projects in a solution to Visual Studio 2010 and published the new macro on CodeProject.
His new macro now supports these target frameworks:
Notes:
- The links are to the download pages of the frameworks; look for “Standalone version” or “Full installer” for non-bootstrap download.
(version 1.1 can be downloaded here, but is not supported in VS2010)
- The “Client Profile” versions are stripped down versions of their “Full” counterpart.
–jeroen
Posted in .NET, C#, C# 2.0, C# 3.0, C# 4.0, Delphi, Development, Prism, Software Development, Visual Studio and tools | 2 Comments »
Posted by jpluimers on 2010/05/14
I always tend to recompile assemblies when something changes they depend upon.
But now I’m even more careful after reading Fabulous Adventures In Coding : Putting a base in the middle.
Especially his checklist is important.
When you use a newer version of an assembly you depend on:
(1) at the very least test your derived types with the new base type — your derived types are relying on the mechanisms of the base types; when a mechanism changes, you have to re-test the code which relies upon that mechanism.
(2) if there was a breaking change, recompile, re-test and re-ship the derived type. And
(3) you might be surprised by what is a breaking change; adding a new override can potentially be a breaking change in some rare cases.
–jeroen
Posted in .NET, C#, C# 2.0, C# 3.0, C# 4.0, Delphi, Development, Prism, Software Development | Leave a Comment »
Posted by jpluimers on 2010/05/12
A short while ago, [WayBack] Danny Thorpe posted an answer about multithreading issues on StackOverflow.com [WayBack] which reminded me a lot about a BorCon session he did.
That session is called [WayBack] “Reading Tea Leaves: The Fine Art of Debugging“, it is still very current (a lot of it is not Delphi specific at all: it can be applied to a broad range of platforms), and I was glad to find that [WayBack] Joe White made [WayBack] some great notes and posted them on his blog.
Edit 20100513T0830: (thanks Mario!) Don’t you love 404 :-)
The blog from Joe White seem to be down, and the web archive of his blog didn’t have that particular page, but the google cache has.
–jeroen
PS:
Danny is a great writer; I’m really glad he [WayBack] showed up at StackOverflow.
Here is another very [WayBack] nice answer from him on concurrency in software using read-write, locking, interlocked increment and more.
He found back his slides:
Consolidating a dusty box of ancient DVDRW archive disks this weekend (uploading them to multi-redundant NAS) and looky what I found! I’d given up all hope of ever finding this again. #digitalpackrat ftw!
Hope this brightens your day @jpluimers :) https://t.co/saqq7JA46e
Posted in Debugging, Delphi, Development, Software Development | 3 Comments »