Archive for the ‘Delphi XE5’ Category
Posted by jpluimers on 2016/03/14
Initial hack – image via the forums server.
This weekend, the Embarcadero web site was hacked by AnonCoders . Not once (see also [WayBack ] G+ link and [WayBack ] DelphiPraxis link and [WayBack ] image ) but at least twice (see also [WayBack ] G+ link and [WayBack ] image and [WayBack ] Delphi Praxis link and [WayBack ] image ) where the initial hacked simple text “Hacked By AnonCoders ~ Cyber Caliphate” after having been reverted back to the site – hopefully by Embarcadero staff – was replaced with [WayBack] more graphical content later on.
Hack presenting itself in the IDE – image via the forums server.
The Welcome Page inside the Delphi IDE uses the Embarcadero web site, so the Delphi IDE Welcome Page was also affected (see also [WayBack ] this G+ link ).
Because the IDE uses this on-line content, potentially any code could be executed inside the IDE (apart from that page being loaded over http, so any man-in-the-middle could abuse this, but I digress ). This imposes a security risk as many developers run the IDE from accounts having more rights than the average user.
Read the rest of this entry »
Posted in Delphi , Delphi 10 Seattle , Delphi 2005 , Delphi 2006 , Delphi 2007 , Delphi 2009 , Delphi 2010 , Delphi XE , Delphi XE2 , Delphi XE3 , Delphi XE4 , Delphi XE5 , Delphi XE6 , Delphi XE7 , Delphi XE8 , Development , QC , Software Development | 13 Comments »
Posted by jpluimers on 2016/02/24
As Delphi allows to forward declare both classes and interfaces, people often wonder about records.
The short answer: you can’t forward declare record types .
The long answer: you can’t directly, but you can indirectly either reference based (through pointers or callbacks with const parameters ) or operator based (through operator overloading ).
I think the reason forward declaration of classes and interfaces is possible because they both are reference types, so referring does not impose copying.
Anyway, the trick is this:
You can’t have forward declarations for record types. Define both Implicit operators in the second type
Source: delphi – How do I define implicit conversion operators for mutually dependent records? – Stack Overflow
–jeroen
via:
Posted in Delphi , Delphi 10 Seattle , Delphi 2007 , Delphi 2009 , Delphi 2010 , Delphi XE , Delphi XE2 , Delphi XE3 , Delphi XE4 , Delphi XE5 , Delphi XE6 , Delphi XE7 , Delphi XE8 , Development , Software Development | Leave a Comment »
Posted by jpluimers on 2016/02/17
A wile ago, I had a this error when trying to get the TIME portion of a DATE column:
ORA-00904: "TIME": invalid identifier
This doesn’t work in Oracle, even though when you search for Oracle convert DATE to TIME you end up at this page listing TIME as a function: 12.7 Date and Time Functions . Alas, that page is for MySQL which is owned by Oracle for a while now .
Back to the query which was like this where date_column was of type DATE .
SELECT
id,
date_column,
TIME (date_column)
FROM some_table
That DATE type actually stores date+time , and since it was filled with Delphi TTime values, the date parts would always be “1899-12-30” (yes, I like ANSI DATE and TIMESTAMP formats ). Oracle doesn’t get that, so I wanted to get the time portion.
Solutions:
Read the rest of this entry »
Posted in Database Development , Delphi , Delphi 10 Seattle , Delphi 2005 , Delphi 2006 , Delphi 2007 , Delphi 2009 , Delphi 2010 , Delphi 7 , Delphi XE , Delphi XE2 , Delphi XE3 , Delphi XE4 , Delphi XE5 , Delphi XE6 , Delphi XE7 , Delphi XE8 , Development , OracleDB , Software Development | Leave a Comment »
Posted by jpluimers on 2016/02/14
Now that you’re 21 , have a glass of wine and watch this great presentation by Warren Postma which he made for last years birthday:
VIDEO
–jeroen
Posted in Delphi , Delphi 1 , Delphi 2 , Delphi 2005 , Delphi 2006 , Delphi 2007 , Delphi 2009 , Delphi 2010 , Delphi 3 , Delphi 4 , Delphi 5 , Delphi 6 , Delphi 7 , Delphi 8 , Delphi x64 , Delphi XE , Delphi XE2 , Delphi XE3 , Delphi XE4 , Delphi XE5 , Delphi XE6 , Delphi XE7 , Delphi XE8 , Development , Software Development | Leave a Comment »
Posted by jpluimers on 2016/02/03
A while ago I bumped into this: As of Windows 7 (and probably Vista), the standard Windows Common Item (Open and Save) Dialogs expect the main thread to be initialised with STA because it is easier to support apartment threading in single-threaded apartments because COM provides synchronization on a per-call basis and the Windows GUI APIs are not guaranteed to be thread safe.
Windows XP and Server 2003 didn’t enforce this for the classic Windows Open and Save Dialogs , so it only appeared when the software below got run on Windows 7 in a way too late time frame (but the market share of XP is still high ).
The reason is that when using Delphi, the TOpenDialog and TSaveDialog will use the classic Open and Save Dialogs on Windows < Vista and fall-forward to the new Common Item Dialogs handled by TFileOpenDialog and TFileSaveDialog (both will not fall backward).
When you have your COM initialisation done wrong, your application appears to hang. Amidst the plethora of threads started by the COM subsystem, these two dead-lock:
Read the rest of this entry »
Posted in Delphi , Delphi 10 Seattle , Delphi 2007 , Delphi 2009 , Delphi 2010 , Delphi XE , Delphi XE2 , Delphi XE3 , Delphi XE4 , Delphi XE5 , Delphi XE6 , Delphi XE7 , Delphi XE8 , Development , Software Development | 2 Comments »
Posted by jpluimers on 2016/01/19
Just in case I need SynEdit in Unicode:
Old SVN versions are at
Newer Github repositories are at
The finaly one has a Demos folder and links to the original ANSI version. It seems the only version for which SynGen works in Unicode Delphi versions.
–jeroen
via Missed link? Anyone know what happens there? :) Once again: 1.SynEdit? … .
Posted in Delphi , Delphi 10 Seattle , Delphi XE , Delphi XE2 , Delphi XE3 , Delphi XE4 , Delphi XE5 , Delphi XE6 , Delphi XE7 , Delphi XE8 , Development , Software Development | Leave a Comment »
Posted by jpluimers on 2015/12/17
DUnit registration can mix TestSuites and TestCases.
Some links:
–jeroen
Posted in Agile , Delphi , Delphi 10 Seattle , Delphi 2005 , Delphi 2006 , Delphi 2007 , Delphi 2009 , Delphi 2010 , Delphi 5 , Delphi 6 , Delphi 7 , Delphi XE , Delphi XE2 , Delphi XE3 , Delphi XE4 , Delphi XE5 , Delphi XE6 , Delphi XE7 , Delphi XE8 , Development , Software Development , Unit Testing | Leave a Comment »
Posted by jpluimers on 2015/12/03
Nested DataSet fields assume identical naming of fields and parameters as Richard Stevens did comment in So I’m in total n00b mode here. I’m trying to set up a master/detail… .
Of course the documentation for that is easy to find. Not.
Even this article by Cary Jensen doesn’t reveal the issue: Nesting DataSets in ClientDataSets .
So thanks Richard for clearing that up!
–jeroen
Posted in Delphi , Delphi 10 Seattle , Delphi 2007 , Delphi XE , Delphi XE2 , Delphi XE3 , Delphi XE4 , Delphi XE5 , Delphi XE6 , Delphi XE7 , Delphi XE8 , Development , Software Development | Leave a Comment »
Posted by jpluimers on 2015/12/02
Reading a thread with ramblings on failing to understand that packed records overrides the $ALING directive , I found out that there is also an Undocumented Delphi record alignment directive – Chee Wee’s blog: IT solutions for Singapore and companies worldwide .
David Heffernan mentioned some nice permutations in the first thread.Chee Wee Chua “documents” the second. Both provide great reference material.
Note that both directive require a const expressions evaluating to a power of two. If you don’t, you get the same error: E2573 Illegal value for the ALIGN directive (valid for one of 1, 2, 4, 8 or 16) (Delphi) – RAD Studio
–jeroen
via:
Posted in Delphi , Delphi 10 Seattle , Delphi XE5 , Delphi XE6 , Delphi XE7 , Delphi XE8 , Development , Software Development | 2 Comments »
Posted by jpluimers on 2015/12/01
On the todo list:
Interesting use of an IDE plugin: Copy a string from a “Watch” entry to the clipboard without quotes. – Thomas Mueller (dummzeuch) – Google+
Source: delphi – Can I change the display format for strings in the watch list? – Stack Overflow :
Every now and then I use the watch window to display strings which contain sql statements.Now I select Copy Value from the context menu and get
'SELECT NAME FROM SAMPLE_TABLE WHERE FIRST_NAME = ''George'''#$D#$A
but want
SELECT NAME FROM SAMPLE_TABLE WHERE FIRST_NAME = 'George'
The answer by MartynA has an OTA plugin that could be integrated with something like GExperts.
–jeroen
via: Interesting use of an IDE plugin: Copy a string from a “Watch” entry to the clipboard…
Posted in Delphi , Delphi 10 Seattle , Delphi 2005 , Delphi 2006 , Delphi 2007 , Delphi 2009 , Delphi 2010 , Delphi 7 , Delphi x64 , Delphi XE , Delphi XE2 , Delphi XE3 , Delphi XE4 , Delphi XE5 , Delphi XE6 , Delphi XE7 , Delphi XE8 , Development , Software Development | Leave a Comment »