The Wiert Corner – irregular stream of Wiert stuff

Jeroen Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My work

  • My badges

  • Twitter Updates

  • My Flickr Stream

    MPS_9791

    MPS_9795

    MPS_9793

    More Photos
  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 430 other followers

Archive for the ‘Delphi’ Category

Dodgy Coder: Coding tricks of game developers

Posted by jpluimers on 2012/04/26

Some very interesting tips from game development that apply juts as well to general software development.

On code health:

Now I always try to dig right down to the root cause of a bug, even if a simple, and seemingly safe, patch is available. I want my code to be healthy. If you go to the doctor and tell him “it hurts when I do this,” then you expect him to find out why it hurts, and to fix that.

Though tools like SourceMonitor can help you track your code health, the best tool is between your ears.

–jeroen

via: Dodgy Coder: Coding tricks of game developers.

Posted in .NET, Batch-Files, C#, C# 2.0, C# 3.0, C# 4.0, C# 5.0, Delphi, Delphi x64, Delphi XE2, Development, JavaScript/ECMAScript, PHP, PowerShell, Scripting, Software Development | 1 Comment »

Installing Delphi XE2: disable/uninstall WorkPace 3.0 and Data Guardian 5.2 first

Posted by jpluimers on 2012/04/10

Lot’s of corporate environments keep killing the productivity of their software developers by running WorkPace. They claim to prevent RSI, but the main thing they do is getting you out of your mental flow.

Workpace (yes, it is written in Delphi) hooks itself into processes by injecting REC300.DLL into it.

That particular DLL prevents Delphi XE2 from installing in several of the systems colleagues tried, and gives you error messages like these:

'' is not a valid integer value

Followed by a bunch of access violations, and Process Monitor indicating issues reading the key HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\REC300.DLL which is part of WorkPace 3.0 (an old 2007 version).

The next problem was Digital Guardian (an old 2010 version) hooking itself into all processes. Uninstalling that is a pain, as it requires a special uninstall key, but luckily the automated update script on the SCCM server’s distribution share contained that in an encrypted form. Uninstalling this solved the problem.

Maybe newer versions of WorkPace and Digital Guardian wouldn’t have interfered with the Delphi XE2 install. If so, that would be another example of technical debt.

WorkPace and Digitual Guardian are most likely there because of government induced regulations in the corporate environment.

I’m feeling a bit like Dilbert now: the corporate environment is interesting, but often they make “getting work done” so much harder than it could be.

–jeroen

Posted in Delphi, Delphi XE2, Development, Opinions, Software Development | Leave a Comment »

Some words on Unicode in Windows (Delphi, .NET, APIs, etc)

Posted by jpluimers on 2012/04/05

O'Reilly book "Unicode Explained: Internationalize Documents, Programs, and Web Sites"

O'Reilly book "Unicode Explained: Internationalize Documents, Programs, and Web Sites"

Withe the growing integration between systems, and the mismatch between those that support Unicode and that do not, I find that a lot of organisations lack basic Unicode knowledge.

So lets put down a few things, that helps as a primer and gets some confusion out of the way.

Please read the article on Unicode by Joel on Software, and the book Unicode Explained. The book is from 1996, and still very valid.

Unicode

Unicode started in the late 80s of last century as a 16-bit character model.

Somehow lots of people still thing Unicode is a 16-bit double-byte character set. It is not. It uses a variable width encoding for storage.

All encodings except the 32-bit ones are variable width. The UTF-16 encoding is a variable width encoding where each code point (not character!, see below why) takes one or more 16-bit words.

This is because – as of Unicode version 2.0 in 1996 – a surrogate character mechanism was introduced to be able to have more than 64k code points.

The architecture of Unicode is completely different than traditional single-byte character sets or double-byte character sets.

In Unicode, there is a distinction between code points (the mapping of the character to an actual IDs), storage/encoding (in Windows now uses UTF-16LE which includes the past used UCS-2) and leaves visual representation (glyphs/renderings) to fonts.

Unicode has over a million code points, logically divided into 17 planes, of which the Basic Multi-lingual Plane has code points that can be encoded into one 16-bit word.

There is no font that can display all Unicode code points. By original aim, the first 256 Unicode code points are identical to the ISO 8859-1 character set (which is Windows-29591, not Windows-1252!) for which most fonts can display most characters.

I entity Unicode (Windows version)

By now, you probably grasp that Unicode is not an easy thing to get right. And that can be hard, hence people love and hate Unicode at the same time. Maybe I should get the T-Shirt :) .

One thing that complexes things, is that Unicode allows for both composite characters and ready made composites. This is one form where different sequences can be equivalent, so there can be Unicode equivalence for which you need some knowledge on Unicode Normalization (be sure to read this StackOverflow question and this article by Michael Kaplan on Unicode Normalization).

There are many Unicode encodings, of which UTF-8 and UTF-16 are the most widely used (and are variable length). UTF-32 is fixed length. All 16-bit and 32-bit encodings can have big-endian and little-endian storage and can use a Byte Order Mark (BOM) to indicate their endinaness. Not all software uses BOMs, and there are BOMs for UTF-8 and other encodings as well (for UTF-8 it is not recommended to include a BOM).

When only parts your development environment supports Unicode strings, you need to be aware of which do and which don’t. For any interface boundary between those, you need to be aware of potential data loss, and need to decide how to cope with that.

For instance, does your database use Unicode or not for character storage? (For Microsoft SQL Server: do you use CHAR/VARCHAR or NCHAR/NVARCHARyou should aim for NVARCHAR, yes you really should, do not use text, ntext and image). What do you do while transferring Unicode and non-Unicode text to it? Ask the same questions for Web Services, configuration files, binary storage, message queueing and various other interfaces to the outside world.

The Windows API is almost exclusively Unicode (see this StackOverflow question for more details)

Delphi and Unicode

Let’s focus a bit on Delphi now, as that the migration towards Unicode at clients raised a few questions over the last couple of months.

One of the key questions is why there are no conversion tools that help you migrate your existing source code to fully embrace Unicode.

The short answer is: because you can’t automate the detection of intent in your codebase.

The longer answer starts with that there are tools that detect parts of your Delphi source that potentially has problems: the compiler hints, warnings and errors that brings your attention to spots that are fishy, are likely to fail, or are plain wrong.

Delphi uses the standard Windows storage format for Unicode text: UTF-16LE.

Next to that, Delphi supports conversion to and from UTF-8 en UTF-32 (in their various forms endianness).

External storage of text is best done as UTF-8 because it doesn’t have endianness, and because of easier exchange of text in ISO-8859-1.

Marco Cantu wrote a very nice whitepaper about Delphi and Unicode, and I did a Delphi Unicode talk at CodeRage 4 and posted a lot of Delphi Unicode links at StackOverflow.

A few extra notes on Delphi and Unicode:

With Delphi string types, stick to the UnicodeString (default string as of Delphi 2009) and AnsiString (default string until Delphi 2007) as their memory management is done by Delphi. WideString management is done by COM, so only use that when you really need to. Also avoid ShortString.

For any interfaces to the external world, you need to decide which ones to keep to generic string, Char, PChar and which ones to fix to AnsiChar/PAnsiChar/AnsiString(+ accompanying codepage) or fix at UnicodeChar/PUnicodeChar/UnicodeString.

Of course remnants from the past will catch up with you: if you have Technical Debt on the past where characters were bytes, and you abused Char/PChar/array-of-char/etc you need to fix that, and use the Byte/PByte/TByteArray/PByteArray. It can be costly to pay the accrued debt on that.

–jeroen

PS:

Posted in .NET, C#, Delphi, Development, EBCDIC, Encoding, ISO-8859, Software Development, Unicode, UTF-8 | 2 Comments »

Debt in IT and Software Development (via: Coding Horror: Paying Down Your Technical Debt)

Posted by jpluimers on 2012/04/04

Debt and flood insurance

Thanks to Randy Glasbergen for the debt image

I love this quote from Jeff Attwood on technical debt in 2009:

periodically pay down your technical debt

and the Computer Weekely article about half a year ago:

Short-term speed may come at the price of long-term delays and cost.

Lately, I find that I need to explain Debt in relation to IT and Software Development more and more often.

We now all know what happens with the financial system when we let debt get out of control.

The same holds for your IT and Software Development.

Debts get introduced by not “playing by the rules”. The quotes are there because you can not always play nicely, and the rules are not always clear or known.

Lets give a few examples of rules that – from experience at clients – are more often than not neglected. The examples are based on Windows, but could just as easily be Mac OS X, Unix, OS/400 or anything else.

  • Make sure you use a recent Windows version
    I often see companies lagging more than one version behind (i.e. still use Windows XP or SQL Server 2000). That’s too far.
  • Don’t run your users with too many privileges (and certainly not as Administrators)
    Especially running as Administrator will get you in trouble with User Account Control (UAC) in Windows Vista and up.
  • Using directories like C:\TEMP is a no-no.
    This should be a no-brainer, but truckloads of in-company software still thinks it can write everywhere.
    I know C:\TEMP used to be the Temporary Folder some 20 years ago.
    But that was then, and this is now: Use the %TEMP% environment variable or GetTempPath function (even better: the GetTempFileName function or the .NET Path.GetTempFileName function).
    More in general for known folders, use CSIDL or KNOWNFOLDERID whenever possible. Your favourite development tool usually has a library functions for that, for instance the .NET System.Environment.GetFolderPath function.

These few were examples ranged from technically very broad to specific. There are more, but these will give you a rough idea how wide the field of debt can be. Even debt outside the realm of Technical Debt can turn out to be really expensive.

Every time you  postpone or skip a Windows version, you collect some debt in the hope (often wrongfully called expectation) that you earn more on the money/resource you just didn’t invest and putting that money/resource to use otherwise. The same holds for any other kind of debt.

The main problem with debt is not the total of the debt, it is the interest rate that makes the accrued debt grows faster than most people and organizations realize.

This is actually one of the main causes of the current world wide financial crisis, the same holds for many IT debts.

And for all kinds of debts, you often don’t know how high the interest rate will be, so the accrued value can be way beyond what you expect.

I’ve regularly seen projects collecting so much debt, that migration costs raised to thousands of hours because of it, resulting into management taking another very bad decision: rewriting the stuff from scratch. Don’t do that: Joel on Software excellently describes what happens when you do that.

What to do about it?

You might say “don’t collect debt”, but you can’t always avoid debt.

So you need to build periods where you pay off accrued debt. And you need to do that regularly, in order to avoid the interest pitfall.

This does not limit itself to software development (though that’s what I normally focus at). It covers a wide range of IT topics.

Sometimes, you can even pay your debt in advance. For instance, I was among the first to switch from Windows XP to the x64 of Windows Vista. I knew it would cause pain, but it immediately payed back by being able to use much more memory, and run more Virtual Machines at the same time. That made me more flexible and productive.

–jeroen

via: Coding Horror: Paying Down Your Technical Debt.

Posted in *nix, .NET, Delphi, Development, Opinions, Power User, Software Development, Windows, Windows 7, Windows 8, Windows Vista, Windows XP | 5 Comments »

naming – What’s the use/meaning of the @ character in variable names in C#? – Stack Overflow

Posted by jpluimers on 2012/03/28

Duh, I always thought @ could only be used for strings.

Not so: just like with the & in Delphi, you can use @ for identifiers too.

The prefix “@” enables the use of keywords as identifiers, which is useful when interfacing with other programming languages. The character @ is not actually part of the identifier, so the identifier might be seen in other languages as a normal identifier, without the prefix. An identifier with an @ prefix is called a verbatim identifier.

–jeroen

via: naming – What’s the use/meaning of the @ character in variable names in C#? – Stack Overflow.

Posted in .NET, C#, C# 2.0, C# 3.0, C# 4.0, Delphi, Development, Software Development | Leave a Comment »

“Cannot navigate to definition” annoyance in Visual Studio 2010 – (did it implement the mouse equivalent to Delphi code browsing? No, it didn’t)

Posted by jpluimers on 2012/03/08

This use case drove me nuts in Visual Studio 2010 for a while, but can be solved.

Use cases:

  1. Cannot navigate to definition.double click on a word to select it
  2. press Ctrl-C to copy the selected text
  3. result is either of these two dialogs:

    ---------------------------
    Microsoft Visual Studio
    ---------------------------
    Cannot navigate to definition.
    ---------------------------
    OK
    ---------------------------

    Cannot navigate to definition. The cursor is not on a symbol.or

    ---------------------------
    Microsoft Visual Studio
    ---------------------------
    Cannot navigate to definition. The cursor is not on a symbol.
    ---------------------------
    OK
    ---------------------------

The reason is that Visual Studio 2010 still thinks I am clicking the identifier (which I’m not, I just released the mouse button) while pressing the Ctrl key. Read the rest of this entry »

Posted in .NET, Delphi, Development, Software Development, Visual Studio 2010, Visual Studio and tools | Leave a Comment »

Anyone with a C#, Delphi or FreePascal implementation of the PRESENT Ultra-Lightweight Block Cipher encryption?

Posted by jpluimers on 2012/03/06

A short while ago a paper got published on PRESENT: An Ultra-Lightweight Block Cipher by Andrey Bogdanov et al becoming ISO standard 29192-2:2012.

Is there anyone that has a C#, Delphi or FreePascal implementation with unit tests?

–jeroen

Posted in .NET, C#, C# 2.0, C# 3.0, C# 4.0, C# 5.0, Delphi, Development, Software Development | 12 Comments »

P/Invoke: usually you need CharSet.Auto (via: .NET Column: Calling Win32 DLLs in C# with P/Invoke)

Posted by jpluimers on 2012/02/28

I don’t do P/Invoke often, and somehow I have trouble remembering the value of CharSet to pass with DllImport.

In short, pass CharSet.Auto unless you P/Invoke a function that is specific to CharSet.Ansi or CharSet.Unicode. The default is CharSet.Ansi, which you usually don’t want:

when Char or String data is part of the equation, set the CharSet property to CharSet.Auto. This causes the CLR to use the appropriate character set based on the host OS. If you don’t explicitly set the CharSet property, then its default is CharSet.Ansi. This default is unfortunate because it negatively affects the performance of text parameter marshaling for interop calls made on Windows 2000, Windows XP, and Windows NT®.

The only time you should explicitly select a CharSet value of CharSet.Ansi or CharSet.Unicode, rather than going with CharSet.Auto, is when you are explicitly naming an exported function that is specific to one or the other of the two flavors of Win32 OS. An example of this is the ReadDirectoryChangesW API function, which exists only in Windows NT-based operating systems and supports Unicode only; in this case you should use CharSet.Unicode explicitly.

–jeroen

via: .NET Column: Calling Win32 DLLs in C# with P/Invoke.

Posted in .NET, Ansi, C#, Delphi, Development, Encoding, Prism, Software Development, Unicode | 2 Comments »

FireMonkey and (OS X, iOS, Windows) Link Clearance

Posted by jpluimers on 2012/02/21

Some links that I found useful for doing FireMonkey and development for OS X or iOS:

–jeroen

Posted in Delphi, Development, FireMonkey, OS X FMX, Software Development | 2 Comments »

Jason Southwell (from arcana) just published DuckDuckDelphi: a unit to do Duck typing in Delphi XE2 (not XE)

Posted by jpluimers on 2012/02/16

If you haven’t seen Jason announce this in the general Delphi 3rd party newsgroup or his announcement thread on the FaceBook Delphi Developer group yet, this is a definitive must read:

Jason Southwell (from arcana) just published DuckDuckDelphi: a unit to do Duck typing in Delphi XE2 (not XE):

Duck Duck Delphi

DuckDuckDelphi is an Open Source (MIT License) unit for Delphi XE2 which adds duck typing functionality to a normally strongly typed language.

Great stuff that makes a truckload of my code so much easier to maintain.

–jeroen

via arcana – DuckDuckDelphi.

(Edit: 1400 UTC+1 Sorry, wrong boolean; wrote “and” but should be “not” XE).

Posted in Delphi, Delphi XE2, Development, Software Development | 8 Comments »

There is a great Android Design – UI Overview site, but no great UI design tools for Android

Posted by jpluimers on 2012/02/15

Recently the Android Design site was launched with great explanation on how to properly design UIs for Android Apps.

Like Apple’s iOS Human Interface Guidelines and Microsoft’s User Experience Design Guidelines for Windows Phone they are a must for any mobile developer.

Together with sites like Android UI Design Patterns, and mockup stencil tools, more Android UI mockup sketch tools and stencils allow you to give prospective users an impression on how an app might be looking like when developed.

What is lacking is a set of real Android GUI design tools. The kind of tools like the Xcode Interface Builder for iOS, or Expression Blend for Windows Phone that – together with iOS PSD templates or Windows Phone design templates (and more templates) – give you a killer start.

Also note Delphi XE2 that has a great UI designer which has consistently covered Windows UI design for 15+ years, including multi-touch and gesture support, and now covers Mac OS X and iOS for HD and 3D apps (but not yet with multi-touch or gesture support).

The only design tool for Android I could find is DroidDraw that emits the XML needed for Android UIs. It is painfully slow and lacks basic things like a property window to edit properties of UI elements.

Given the number of Android app developers, there is much room for improvement.

  • Am I missing something here?
  • What kind of tools are you using?

–jeroen

via: Android Design – UI Overview.

Posted in .NET, Android, Delphi, Development, iOS Development, Mobile Development, Software Development, Windows Phone Development | 6 Comments »

great answer by Remy Lebeau on windows – CreateProcessAsUser doesn’t work when “change user” – on Stack Overflow part of @StackExchange

Posted by jpluimers on 2012/01/10

You might wonder why I quoted two great StackOverflow answers recently. Well, it is because I absolutely love the way that StackExchange.com and StackOverflow.com changed how to find quality answers (and questions!) on topics varying from programmers through Cooking to Chines Language Usage in a community based way.

This one is by Remy Lebeau, who is part of TeamB:

You don’t need to enumerate running explorer.exe processes, you can use WTSGetActiveConsoleSessionId() instead, and then pass that SessionId to WTSQueryUserToken(). Note that WTSQueryUserToken() returns an impersonation token but CreateProcessAsUser() needs a primary token, so use DuplicateTokenEx() for that conversion.

You should also use CreateEnvironmentBlock() so the spawned process has a proper environment that is suited to the user account that is being used.

Lastly, set the STARTUPINFO.lpDesktop field to ‘WinSta0\Default’ instead of nil so the spawned UI can be made visible correctly.

I have been using this approach for several years now and have not had any problems with it. For example:

… code sample is in the answer …

–jeroen

via: windows – CreateProcessAsUser doesn’t work when “change user” – Stack Overflow.

Posted in Delphi, Development, Software Development | 2 Comments »

Great answer by Cosmin Prund: How and when are variables referenced in Delphi’s anonymous methods captured? – Stack Overflow

Posted by jpluimers on 2012/01/05

Every once in a while, by accident you stumble on a really great answer on StackOverflow.

Here is a quote from Cosmin Prund describing on how Delphi implements anonymous methods using a TInterfacedObject descendant:

When you have a function like the one in the question, where you have an anonymous method accessing a local variable, Delphi appears to create one TInterfacedObject descendant that captures all the stack based variables as it’s own public variables. Using Barry’s trick to get to the implementing TObject and a bit of RTTI we can see this whole thing in action.

Read his full answer for the complete description including sample code.

I stumbled on this great answer trough the question Is it possible for a managed local variable to transparently “travel to” another local scope? which might sound like an odd question, but it is not: StackOverflow is about learning, and some people do that by asking questions on solving problems in a very uncommon way, just to learn there are far better ways of obtaining what they want.

–jeroen

via: How and when are variables referenced in Delphi’s anonymous methods captured? – Stack Overflow.

Posted in Delphi, Development, Software Development | Leave a Comment »

Many more web platforms vulnerable to the hash collision attack (not only ASP.NET) #28C3 @hashDoS #hashDoS @ccc

Posted by jpluimers on 2011/12/29

When writing my Patch your ASP.NET servers ASAP early this morning, I didn’t have time to research the full extend of the vulnerabilities published at 28C3 (slides, mp4), though a small bell was ringing a message that I had seen something like it before earlier this century.

I was right, this posting on perlmonks direct me to a /. posting in 2003 pointing me to the research paper on low-bandwidth attacks based on hash collisions (pdf version) that I had seen before. Perl 5.8.1 fixed it September 2003 (search for “hash” in that link).

The attack can be used for DoS because a normal distributed hash table insert of n elements will be running O(n), but a carefully crafted insert of those elements will run O(n^2).

Carefully crafting a worst case scenario depends on how well you can predict collisions in the underlying hash table implementation, which - apparently - is not too difficult, and requires little bandwidth.

Many platforms and languages are vulnerable, including those based on Java, Tomcat, .NET, Ruby, PHP and more in greater or lesser extent. I have the impression that the list only includes big names, but presume platforms based on smaller names (ASP, Delphi, Objective C) are equally vulnerable.

Just read the articles on CERT 903934, oCERT 2011-003Arstechnica, Cryptanalysis.euHeise (German), Hackillusion and the research paper published at 28C3.

a few quotes:

“This attack is mostly independent of the underlying Web application and just relies on a common fact of how Web application servers typically work,” the team wrote, noting that such attacks would force Web application servers “to use 99% of CPU for several minutes to hours for a single HTTP request.”

“Prior to going public, Klink and Wälde contacted vendors and developer groups such as PHP, Oracle, Python, Ruby, Google, and Microsoft. The researchers noted that the Ruby security team and Tomcat have already released fixes, and that “Oracle has decided there is nothing that needs to be fixed within Java itself, but will release an updated version of Glassfish in a future CPU (critical patch update).”

“The algorithmic complexity of inserting n elements into the
table then goes to O(n**2), making it possible to exhaust hours of CPU time using a single HTTP request”

“We show that PHP 5, Java, ASP.NET as well as v8 are fully vulnerable to this issue and PHP 4,
Python and Ruby are partially vulnerable, depending on version or whether the server
running the code is a 32 bit or 64 bit machine.”

Microsoft seems to have been notified pretty late in the cycle, I presume because the researchers started with a some platforms and finally realized the breath of platforms involved.

The ultimate solution is to patch/fix the platforms using for instance a randomized hash function a.k.a. universal hashing.

Microsoft will provide a patch for ASP.NET later today, Ruby already patched and other vendors will soon or have already (please comment if you know of other platforms and patches).

The links this morning indicated there were no known attacks. That is (maybe was) true for ASP.NET, but for PHP a public proof of concept of such a DoS is has been published by Krzysztof Kotowicz (blog) with sources at github and a demo html page.

Temporary workarounds (based on the some of the links in this and the prior blog post, and the workarounds mentioned here and here):

  1. If you can: replace hash tables by more applicable data structures
    (I know this falls in the for-if anti-pattern category, but lots of people still use a hammer when a different tool works much better)
  2. Limit the request size
  3. Limit the maximum number of entries in the hash table
  4. Limit form requests only for sites/servers/etc that need it.
  5. Limit the CPU time that a request can use
  6. Filter out requests with large number of form entries

Some platforms already have applied temporary workarounds (I know of Tomcat (default max 10000 parameters), and PHP (default max_input_vars = 1000) did, and looks like the ASP.NET fix will do too).

Other platforms (like JRuby 1.6.5.1, CRuby 1.8.7 (comments) and Perl 5.8.1 in September 2003 ) fixed it the proper way.

Note: workarounds are temporary measures that will also deny legitimate requests. The only solution is to apply a fix or patch.

A major lesson learned today for a few people around me: when vendors start publishing “out of band” updates, do not trust a single 3rd party assessment with state “initial investigation”, but be diligent and do some further research.

–jeroen

PS: Just found out that most Azure users won’t need to manually apply a fix: just make sure your Hosted Service OS servicing policy is set to “Auto”.

Posted in .NET, ASP.NET, C#, Delphi, Development, Java, JavaScript, PHP, Scripting, Software Development, Web Development, Windows Azure | 5 Comments »

Added a few links to my “Tools” page, @WordPress bug spuriously inserting div tags still present.

Posted by jpluimers on 2011/12/28

While re-designing a Visual Studio 2010 plus Delphi XE2 install for a specific client, I updated some of my Tools page links:

And found out that the WordPress still wrongly inserts div tags when you step out a list by pressing Enter twice is still present. Annoying, as it has been there for at least 2 years, so I’m still interesting in people having a workaround for it.

–jeroen

Posted in .NET, C#, Delphi, Development, Software Development, TFS (Team Foundation System), Visual Studio 2008, Visual Studio 2010, Visual Studio and tools | Leave a Comment »

Applying XE2 Update 3: uninstall IDE Fix Pack first, then apply, then install updated IDE Fix Pack. Also update EurekaLog.

Posted by jpluimers on 2011/12/22

Before installing updates, it is always wise to read the release notes.

In this case, the below quote from the Release Notes for XE2 Update 3 was very important for me, as I use the IDE Fix Pack:

IDE Fix Pack Is Not Compatible with Update 3

The IDE Fix Pack for XE2 is incompatible with XE2 Update 3. If you have the IDE Fix Pack for XE2, you should uninstall the IDE Fix Pack for XE2 before installing Update 3. A revised version of the IDE Fix Pack for XE2 will be made available at http://andy.jgknet.de/fixpack/ .

The cool thing is, on the same day that Delphi XE2 Update 3 got releasedAndy also released the new FixPack 4.6 last week and also explained the cause of the incompatibility.

Note that because of the same reason, more products will need to be updated. EurekaLog also released an update, and I expect more vendors to release updates soon.

Update 3 breaks the monthly release cycle, but for a reason. This update contains way more fixes than the previous ones, in a much wider area and with short turnarounds between reporting and fixing (yes, it does pay to report bugs through QualityCentral). Just read the list of fixes. It is similar to the big updates we used to have for previous Delphi versions.

It also requires a lot more disk space, so make sure you have at least 5 gigabytes of free disk space.

Not related to Update 3, but still nice is that Thomas Müller made available for download the Expertimental GExperts version 1.35-2011-12-18 that is compatible with Delphi XE2. It includes a code formatter that has different bugs than the Delphi XE2 one, but for me usually works better.

–jeroen

via: Release Notes for XE2 Update 3 – RAD Studio XE2.

Posted in Delphi, Delphi x64, Delphi XE2, Development, Software Development | Leave a Comment »

Delphi XE2 and iOS: things you should not do

Posted by jpluimers on 2011/12/20

When developing applications for iOS using Delphi XE2, it uses a smart but convoluted FPC detour.

That results in a few things you should take into account when developing iOS applications:

  • Do not use Unit scope identifiers (that’s why for instance the FireMonkey unit FMX.Dialogs is called FMX_Dialogs when building an iOS application)
    So don’t do a “uses System.SysUtils”, but “uses SysUtils” and don’t name your units using Unit scope identifiers for now.
    It would be so nice if Embarcadero shipped the tool that made all the FMX_* units out of the FMX.* units; that alone would make code sharing between non-iOS and iOS applications in Delphi a lot easier.
  • Do not use Generics (though FPC supports them, the FPC mode that Delphi XE2 uses for iOS compatibility does not)
  • Do not use new style RTTI or TValue (they are not supported by FPC)
  • Do not use any other dataset than the ones directly descending from TDataSet (so anything TClientDataSet or IBX like is out) mostly because those depend on external C obj files, Unit scope identifiers or new style RTTI
  • Do not spread your application sources over multiple directories
  • Do not use the TMyDynamicArray.Create shortcut of initializing dynamic arrays, but use a wrapper function that uses Open Array parameters as Rob Kennedy explains on StackOverflow.
  • Do not run dpr2xcode after you have changed any files it generated (believe me, you will change those). This basically makes you have to reinvent most of the dpr2xcode logic, which is a real pain, as I’m still in that process and not completed.
    These are the things you usually want to manually keep track of:
    - most of the manual changes are keeping the “YourProject.dpr” and dpr2xcode generated “YourProject.pas” in sync
    - altering the PNG files to show different splash graphics / application icons

I will extend this list over time.

Note that this detour should be gone in a future Delphi version, but for now you need to take the above into account.

It means that you might feel like programming with one hand behind your back. Well, the Objective C and Xcode way feels very similar, but from a different perspective :)

–jeroen

Posted in Delphi, Delphi XE2, Development, Software Development, xCode/Mac/iPad/iPhone/iOS/cocoa | 2 Comments »

Asphyre Sphinx 2: X-platform game development for Delphi XE2 and/or FPC

Posted by jpluimers on 2011/12/15

Just found out that during my holiday, Asphyre Sphinx 2 was released: a free 2D/3D framework for X-platform game development that comes with full source code.

It is based on FireMonkey supports Delphi XE2 Update 1 and up, and FPC (and yes: it supports on iOS too).

Interesting stuff!

–jeroen

Via: Asphyre Sphinx 2.

Posted in Delphi, Development, Software Development | Leave a Comment »

Trouble with Google Reader and GEXperts RSS feed :)

Posted by jpluimers on 2011/12/07

While catching up my feeds after an astonishing holiday around the Antarctic Peninsula (some photos at Flickr), I bumped into a Google Reader issue with the GExperts.com RSS feed: all posts seem to be stamped 20111117T0555.

Funny, as I remember being late to report GExperts 1.35 for Delphi XE2 was released a while a go :)

It reminded me to ask Thomas to publish the XE2 version of his Experimental GExperts build though.

Lets hope he is faster than me catching up :)

–jeroen

via: Google Reader feed for GExperts.org.

Posted in Delphi, Development, Software Development | 7 Comments »

When writing applications, include Keyboard Shortcuts for both the CUA and Windows/Apple shortcuts

Posted by jpluimers on 2011/12/06

When you write applications, it is important to include both the CUA and the Windows/Apple keyboard shortcuts, and get the tab order of keyboard accessible user elements right.

Many modern applications seem to put less and less emphasis on the most efficient user input device: the keyboard.

You should: it makes your application much more pleasant to use.

I wrote about CUA before, but the Windows and Mac shortcuts are just as important.

A small table (please post a comment if you know additions):

Keyboard Shortcuts for the most common tasks.
Function CUA Windows Mac
Copy Ctrl + Insert Ctrl + C Command + C
Cut Shift + Delete Ctrl + X Command + X
Paste Shift + Insert Ctrl + V Command + V
Delete before cursor Backspace Delete
Delete after cursor Delete Fn + Delete
Undo Alt + Backspace Ctrl + Z Command + Z
Redo Ctrl + Y Command + Y
Confirm the current task Enter Return
Cancel the current task Escape Escape
Next field Tab Tab
Previous field Shift + Tab Shift + Tab
Next pane Ctrl + F6
Previous pane Alt + F6
Next window F6  Cmd + `
Previous window Shift + F6
Application menu Alt + Space
Windows menu
Local menu Shift + F10 Local Menu

Note that many Linux programs follow both the CUA and Windows settings.

References:

–jeroen

Posted in .NET, Delphi, Development, Keyboards and Keyboard Shortcuts, Power User, Software Development, xCode/Mac/iPad/iPhone/iOS/cocoa | Leave a Comment »

File Extensions of Files Generated by RAD Studio – RAD Studio XE2

Posted by jpluimers on 2011/12/01

With Delphi 1, it was easy to choose what to put in your version control systems: basically .pas, .dfm, .dpr, .inc, .res, .cfg and you were set.

Now there are many more extensions involved, so it is harder to choose what to put in your version control system and what not.

The File Extensions of Files Generated by RAD Studio page helps you with that: it lists most of the Delphi file extensions (.local is a noticeable exception) that are used today.

–jeroen

via: File Extensions of Files Generated by RAD Studio – RAD Studio XE2.

Posted in Delphi, Development, Software Development | 4 Comments »

Matrix library by Michael Rabatscher with many features and x86/x64 optimizations

Posted by jpluimers on 2011/11/24

This one is on my Delphi research list for sure:

a matrix library including some advanced operations like singular value or LU decomposition, pseudo inversion and others as well as a large set of assembler hand optimized matrix primitive functions. The assembler version are available for x64 code as well by the way. Quite a few of these matrix primitives are also available as multi threaded versions.  All functions are encapsulated in an easy to handle matrix class or interface.The library is released under the apache licence meaning that it may also be integrated into commercial products.

So it has lots of features, and optimizations. When browsing the source code, there are also some tests, I presume there will be more in the future.

The library has both a web site with download and a Google Code respository with source browsing.

–jeroen

via: Matrix Library by Michael Rabatscher.

Posted in Delphi, Development, Software Development | Leave a Comment »

Jamie’s Blog | MQTT Client Library for Delphi

Posted by jpluimers on 2011/11/23

Another way to talk to WebSphere MQ from Delphi is to use the MQTT Client Library for Delphi.

It encapsulates the MQTT protocol, which – being a telemetry transport protocol – is extremely light weight, but also versatile.

–jeroen

Via: Jamie’s Blog | MQTT Client Library for Delphi.

Posted in Delphi, Development, MQ Message Queueing/Queuing, Software Development, WebSphere MQ | 2 Comments »

In Delphi SHR is a SHR; in C >> is a SAR or SHR (via: Shift Right: Delphi vs C | Galfars Lair)

Posted by jpluimers on 2011/11/22

I never knew that >> in C was a SAR/SHR depending if the underlying integer type was signed/unsigned.

In Delphi the SHR is always a SHR operation: it never takes into account the sign.

–jeroen

via: Shift Right: Delphi vs C | Galfars Lair.

Posted in Delphi, Development, Software Development | 2 Comments »

Delphi XE2 Unit Scope tables

Posted by jpluimers on 2011/11/17

Delphi XE2 introduces Unit Scopes.

Below is a batch file that generates a CSV file with scopes and units. The file does not only contain the VCL, RTL and FMX units, but all units in the C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\source\ directory tree.

From the CSV, I generated two tables at the end: one with only the scope prefixes, one with all the units and the scopes they belong to.

The tables are based on Delphi XE2 Update 1.

I hope the batch file survives the WordPress syntax highlighter.

@echo off
  echo ScopePrefix
  call :outer 0
  echo ScopePrefix;UnitName;FileName;ParentDirectory
  call :outer 1
goto :end

:outer
:: recursively walk the directory for .pas file having a unit scope
:: http://osix.net/modules/article/?id=755
for /F "tokens=*" %%f in ('dir /s /b "C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\source\*.pas"') do call :inner %1%%f
goto :end

:inner
setlocal
::http://stackoverflow.com/questions/636381/what-is-the-best-way-to-do-a-substring-in-a-batch-file
  set Parameter=%*
  :: strip the first character: copy from 1 till the end
  set FullFileName=%Parameter:~1%
  set Mode=%Parameter:~0,1%
  shift
::  ~dp does not work for regular environment variables
::  ~dp only works for batch file parameters and loop indexes
  for %%d in ("%FullFileName%") do set ParentDirectory=%%~dpd
  for %%f in ("%FullFileName%") do set FileName=%%~nf
  for %%f in ("%FileName%") do set ScopePrefix=%%~nf
  for %%f in ("%FileName%") do set UnitName=%%~xf
  :: strip the first character: copy from 1 till the end
  if !%UnitName%!==!! goto :noscope
  goto :scope
:noscope
  set UnitName=%ScopePrefix%
  set ScopePrefix=
  goto :display
:scope
  set UnitName=%UnitName:~1%
:display
  if !%Mode%!==!0! if not !%ScopePrefix%!==!! echo %ScopePrefix%
  if !%Mode%!==!1! echo %ScopePrefix%;%UnitName%;%FileName%.pas;%ParentDirectory%
endlocal
  goto :end

:end

–jeroen

Table: Scope prefixes

ScopePrefix
Data
Data.Win
Bde
Data.Cloud
Datasnap
Datasnap.Win
Vcl
Data.Bind
Fmx.Bind
Vcl.Bind
System.Bindings
FMX
FMX.ASE
FMX.Canvas
FMX.Context
FMX.DAE
FMX.Filter
FMX.OBJ
FMX.Platform
FMX.Printer
FMX.Video
Web
Web.Win
System
System.Generics
System.Win
Macapi
System.Mac
Posix
System.Internal
Winapi
Soap
Soap.Win
Vcl.Imaging
Vcl.Samples
Vcl.Shell
Vcl.Touch
Xml
Xml.Internal
Xml.Win

Table: Units and their Scope prefixes

ScopePrefix UnitName FileName ParentDirectory
Data DB Data.DB.pas …\data\
Data DBByteBuffer Data.DBByteBuffer.pas …\data\
Data DBCommon Data.DBCommon.pas …\data\
Data DBCommonTypes Data.DBCommonTypes.pas …\data\
Data DBConsts Data.DBConsts.pas …\data\
Data DBPlatform Data.DBPlatform.pas …\data\
Data FMTBcd Data.FMTBcd.pas …\data\
Data SqlTimSt Data.SqlTimSt.pas …\data\
Data.Win ADOConEd Data.Win.ADOConEd.pas …\data\ado\
Data.Win ADOConst Data.Win.ADOConst.pas …\data\ado\
Data.Win ADODB Data.Win.ADODB.pas …\data\ado\
Bde Bdeconst Bde.Bdeconst.pas …\data\bde\
Bde DBTables Bde.DBTables.pas …\data\bde\
Bde DrTable Bde.DrTable.pas …\data\bde\
BDE BDE.pas …\data\bde\
Bde SMINTF Bde.SMINTF.pas …\data\bde\
AzureUI AzureUI.pas …\data\cloud\
Data.Cloud AmazonAPI Data.Cloud.AmazonAPI.pas …\data\cloud\
Data.Cloud AzureAPI Data.Cloud.AzureAPI.pas …\data\cloud\
Data.Cloud CloudAPI Data.Cloud.CloudAPI.pas …\data\cloud\
DSAzDlgACL DSAzDlgACL.pas …\data\cloud\
DSAzDlgBlock DSAzDlgBlock.pas …\data\cloud\
DSAzDlgBlockBlob DSAzDlgBlockBlob.pas …\data\cloud\
DSAzDlgBlockProps DSAzDlgBlockProps.pas …\data\cloud\
DSAzDlgCopyBlob DSAzDlgCopyBlob.pas …\data\cloud\
DSAzDlgCreateContainer DSAzDlgCreateContainer.pas …\data\cloud\
DSAzDlgMetadata DSAzDlgMetadata.pas …\data\cloud\
DSAzDlgPage DSAzDlgPage.pas …\data\cloud\
DSAzDlgPageBlob DSAzDlgPageBlob.pas …\data\cloud\
DSAzDlgPageProps DSAzDlgPageProps.pas …\data\cloud\
DSAzDlgPutBlockList DSAzDlgPutBlockList.pas …\data\cloud\
DSAzDlgSnapshotBlob DSAzDlgSnapshotBlob.pas …\data\cloud\
DSAzure DSAzure.pas …\data\cloud\
DSAzureBlob DSAzureBlob.pas …\data\cloud\
DSAzureMessageDialog DSAzureMessageDialog.pas …\data\cloud\
DSAzureQueue DSAzureQueue.pas …\data\cloud\
DSAzureQueueMetadataDialog DSAzureQueueMetadataDialog.pas …\data\cloud\
DSAzureTable DSAzureTable.pas …\data\cloud\
DSAzureTableDialog DSAzureTableDialog.pas …\data\cloud\
DSAzureTableRowDialog DSAzureTableRowDialog.pas …\data\cloud\
Data DbxDatasnap Data.DbxDatasnap.pas …\data\datasnap\
Data DBXMemoryRow Data.DBXMemoryRow.pas …\data\datasnap\
Data DBXMessageHandlerJSonServer Data.DBXMessageHandlerJSonServer.pas …\data\datasnap\
Data DBXMessageHandlerServer Data.DBXMessageHandlerServer.pas …\data\datasnap\
Datasnap DSAuth Datasnap.DSAuth.pas …\data\datasnap\
Datasnap DSClientMetadata Datasnap.DSClientMetadata.pas …\data\datasnap\
Datasnap DSClientResStrs Datasnap.DSClientResStrs.pas …\data\datasnap\
Datasnap DSClientRest Datasnap.DSClientRest.pas …\data\datasnap\
Datasnap DSCommonProxy Datasnap.DSCommonProxy.pas …\data\datasnap\
Datasnap DSCommonServer Datasnap.DSCommonServer.pas …\data\datasnap\
Datasnap DSCommonTable Datasnap.DSCommonTable.pas …\data\datasnap\
Datasnap DSConnect Datasnap.DSConnect.pas …\data\datasnap\
Datasnap DSHTTP Datasnap.DSHTTP.pas …\data\datasnap\
Datasnap DSHTTPCommon Datasnap.DSHTTPCommon.pas …\data\datasnap\
Datasnap DSHTTPLayer Datasnap.DSHTTPLayer.pas …\data\datasnap\
Datasnap DSHTTPWebBroker Datasnap.DSHTTPWebBroker.pas …\data\datasnap\
Datasnap DSLoginDlg Datasnap.DSLoginDlg.pas …\data\datasnap\
Datasnap DSNames Datasnap.DSNames.pas …\data\datasnap\
Datasnap DSPlatform Datasnap.DSPlatform.pas …\data\datasnap\
Datasnap DSProxy Datasnap.DSProxy.pas …\data\datasnap\
Datasnap DSProxyCpp Datasnap.DSProxyCpp.pas …\data\datasnap\
Datasnap DSProxyCppRest Datasnap.DSProxyCppRest.pas …\data\datasnap\
Datasnap DSProxyDelphi Datasnap.DSProxyDelphi.pas …\data\datasnap\
Datasnap DSProxyDelphiRest Datasnap.DSProxyDelphiRest.pas …\data\datasnap\
Datasnap DSProxyJavaScript Datasnap.DSProxyJavaScript.pas …\data\datasnap\
Datasnap DSProxyRest Datasnap.DSProxyRest.pas …\data\datasnap\
Datasnap DSProxyWriter Datasnap.DSProxyWriter.pas …\data\datasnap\
Datasnap DSReflect Datasnap.DSReflect.pas …\data\datasnap\
Datasnap DSServer Datasnap.DSServer.pas …\data\datasnap\
Datasnap DSServerResStrs Datasnap.DSServerResStrs.pas …\data\datasnap\
Datasnap DSService Datasnap.DSService.pas …\data\datasnap\
Datasnap DSTCPServerTransport Datasnap.DSTCPServerTransport.pas …\data\datasnap\
Datasnap DSTransport Datasnap.DSTransport.pas …\data\datasnap\
Datasnap DSCustomConnectorProxyWriter Datasnap.DSCustomConnectorProxyWriter.pas …\data\datasnap\connectors\
Datasnap DSHTTPServiceProxyDispatcher Datasnap.DSHTTPServiceProxyDispatcher.pas …\data\datasnap\connectors\
Datasnap DSProxyCsharpSilverlight Datasnap.DSProxyCsharpSilverlight.pas …\data\datasnap\connectors\
Datasnap DSProxyDispatcher Datasnap.DSProxyDispatcher.pas …\data\datasnap\connectors\
Datasnap DSProxyJavaAndroid Datasnap.DSProxyJavaAndroid.pas …\data\datasnap\connectors\
Datasnap DSProxyJavaBlackBerry Datasnap.DSProxyJavaBlackBerry.pas …\data\datasnap\connectors\
Datasnap DSProxyObjectiveCiOS Datasnap.DSProxyObjectiveCiOS.pas …\data\datasnap\connectors\
Datasnap DSProxyUtils Datasnap.DSProxyUtils.pas …\data\datasnap\connectors\
Datasnap DSProxyWriterRegistry Datasnap.DSProxyWriterRegistry.pas …\data\datasnap\proxygen\
Data DBConnAdmin Data.DBConnAdmin.pas …\data\dbx\
Data DBXClassRegistry Data.DBXClassRegistry.pas …\data\dbx\
Data DBXClient Data.DBXClient.pas …\data\dbx\
Data DBXClientResStrs Data.DBXClientResStrs.pas …\data\dbx\
Data DBXCommon Data.DBXCommon.pas …\data\dbx\
Data DBXCommonIndy Data.DBXCommonIndy.pas …\data\dbx\
Data DBXCommonResStrs Data.DBXCommonResStrs.pas …\data\dbx\
Data DBXCommonTable Data.DBXCommonTable.pas …\data\dbx\
Data DbxCompressionFilter Data.DbxCompressionFilter.pas …\data\dbx\
Data DBXDataExpressMetaDataProvider Data.DBXDataExpressMetaDataProvider.pas …\data\dbx\
Data DbxDb2 Data.DbxDb2.pas …\data\dbx\
Data DBXDb2MetaData Data.DBXDb2MetaData.pas …\data\dbx\
Data DBXDb2MetaDataReader Data.DBXDb2MetaDataReader.pas …\data\dbx\
Data DBXDb2MetaDataWriter Data.DBXDb2MetaDataWriter.pas …\data\dbx\
Data DBXDb2ReadOnlyMetaData Data.DBXDb2ReadOnlyMetaData.pas …\data\dbx\
Data DBXDBReaders Data.DBXDBReaders.pas …\data\dbx\
Data DBXDelegate Data.DBXDelegate.pas …\data\dbx\
Data DBXDynalink Data.DBXDynalink.pas …\data\dbx\
Data DBXDynalinkNative Data.DBXDynalinkNative.pas …\data\dbx\
Data DBXEncryption Data.DBXEncryption.pas …\data\dbx\
Data DbxFirebird Data.DbxFirebird.pas …\data\dbx\
Data DBXFirebirdMetaData Data.DBXFirebirdMetaData.pas …\data\dbx\
Data DBXFirebirdMetaDataReader Data.DBXFirebirdMetaDataReader.pas …\data\dbx\
Data DBXFirebirdMetaDataWriter Data.DBXFirebirdMetaDataWriter.pas …\data\dbx\
Data DBXFirebirdReadOnlyMetaData Data.DBXFirebirdReadOnlyMetaData.pas …\data\dbx\
Data DbxInformix Data.DbxInformix.pas …\data\dbx\
Data DBXInformixMetaData Data.DBXInformixMetaData.pas …\data\dbx\
Data DBXInformixMetaDataReader Data.DBXInformixMetaDataReader.pas …\data\dbx\
Data DBXInformixMetaDataWriter Data.DBXInformixMetaDataWriter.pas …\data\dbx\
Data DBXInformixReadOnlyMetaData Data.DBXInformixReadOnlyMetaData.pas …\data\dbx\
Data DBXInterbase Data.DBXInterbase.pas …\data\dbx\
Data DBXInterbaseMetaData Data.DBXInterbaseMetaData.pas …\data\dbx\
Data DBXInterbaseMetaDataReader Data.DBXInterbaseMetaDataReader.pas …\data\dbx\
Data DBXInterbaseMetaDataWriter Data.DBXInterbaseMetaDataWriter.pas …\data\dbx\
Data DBXInterbaseReadOnlyMetaData Data.DBXInterbaseReadOnlyMetaData.pas …\data\dbx\
Data DBXJSON Data.DBXJSON.pas …\data\dbx\
Data DBXJSONCommon Data.DBXJSONCommon.pas …\data\dbx\
Data DBXJSONReflect Data.DBXJSONReflect.pas …\data\dbx\
Data DBXMessageHandlerCommon Data.DBXMessageHandlerCommon.pas …\data\dbx\
Data DBXMessageHandlerJSonClient Data.DBXMessageHandlerJSonClient.pas …\data\dbx\
Data DBXMessageHandlerJSonCommon Data.DBXMessageHandlerJSonCommon.pas …\data\dbx\
Data DBXMetaDataCommand Data.DBXMetaDataCommand.pas …\data\dbx\
Data DBXMetaDataCommandFactory Data.DBXMetaDataCommandFactory.pas …\data\dbx\
Data DBXMetadataCommon Data.DBXMetadataCommon.pas …\data\dbx\
Data DBXMetaDataError Data.DBXMetaDataError.pas …\data\dbx\
Data DBXMetaDataNames Data.DBXMetaDataNames.pas …\data\dbx\
Data DBXMetaDataProvider Data.DBXMetaDataProvider.pas …\data\dbx\
Data DBXMetaDataReader Data.DBXMetaDataReader.pas …\data\dbx\
Data DBXMetaDataUtil Data.DBXMetaDataUtil.pas …\data\dbx\
Data DBXMetaDataWriter Data.DBXMetaDataWriter.pas …\data\dbx\
Data DBXMetaDataWriterFactory Data.DBXMetaDataWriterFactory.pas …\data\dbx\
Data DbxMSSQL Data.DbxMSSQL.pas …\data\dbx\
Data DBXMSSQLMetaData Data.DBXMSSQLMetaData.pas …\data\dbx\
Data DBXMSSQLMetaDataReader Data.DBXMSSQLMetaDataReader.pas …\data\dbx\
Data DBXMSSQLMetaDataWriter Data.DBXMSSQLMetaDataWriter.pas …\data\dbx\
Data DBXMSSQLReadOnlyMetaData Data.DBXMSSQLReadOnlyMetaData.pas …\data\dbx\
Data DbxMySql Data.DbxMySql.pas …\data\dbx\
Data DBXMySqlMetaData Data.DBXMySqlMetaData.pas …\data\dbx\
Data DBXMySqlMetaDataReader Data.DBXMySqlMetaDataReader.pas …\data\dbx\
Data DBXMySqlMetaDataWriter Data.DBXMySqlMetaDataWriter.pas …\data\dbx\
Data DBXMySqlReadOnlyMetaData Data.DBXMySqlReadOnlyMetaData.pas …\data\dbx\
Data DBXOdbc Data.DBXOdbc.pas …\data\dbx\
Data DBXOdbcMetaData Data.DBXOdbcMetaData.pas …\data\dbx\
Data DBXOdbcMetaDataReader Data.DBXOdbcMetaDataReader.pas …\data\dbx\
Data DBXOdbcMetaDataWriter Data.DBXOdbcMetaDataWriter.pas …\data\dbx\
Data DBXOdbcReadOnlyMetaData Data.DBXOdbcReadOnlyMetaData.pas …\data\dbx\
Data DBXOpenSSL Data.DBXOpenSSL.pas …\data\dbx\
Data DBXOpenSSLRes Data.DBXOpenSSLRes.pas …\data\dbx\
Data DbxOracle Data.DbxOracle.pas …\data\dbx\
Data DBXOracleMetaData Data.DBXOracleMetaData.pas …\data\dbx\
Data DBXOracleMetaDataReader Data.DBXOracleMetaDataReader.pas …\data\dbx\
Data DBXOracleMetaDataWriter Data.DBXOracleMetaDataWriter.pas …\data\dbx\
Data DBXOracleReadOnlyMetaData Data.DBXOracleReadOnlyMetaData.pas …\data\dbx\
Data DBXPlatform Data.DBXPlatform.pas …\data\dbx\
Data DBXPool Data.DBXPool.pas …\data\dbx\
Data DBXReaderTableStorage Data.DBXReaderTableStorage.pas …\data\dbx\
Data DBXRSAFilter Data.DBXRSAFilter.pas …\data\dbx\
Data DbxSocketChannelNative Data.DbxSocketChannelNative.pas …\data\dbx\
Data DBXSqlScanner Data.DBXSqlScanner.pas …\data\dbx\
Data DBXStream Data.DBXStream.pas …\data\dbx\
Data DBXStreamer Data.DBXStreamer.pas …\data\dbx\
Data DBXStreamPlatform Data.DBXStreamPlatform.pas …\data\dbx\
Data DbxSybaseASA Data.DbxSybaseASA.pas …\data\dbx\
Data DBXSybaseASAMetaData Data.DBXSybaseASAMetaData.pas …\data\dbx\
Data DBXSybaseASAMetaDataReader Data.DBXSybaseASAMetaDataReader.pas …\data\dbx\
Data DBXSybaseASAMetaDataWriter Data.DBXSybaseASAMetaDataWriter.pas …\data\dbx\
Data DBXSybaseASAReadOnlyMetaData Data.DBXSybaseASAReadOnlyMetaData.pas …\data\dbx\
Data DbxSybaseASE Data.DbxSybaseASE.pas …\data\dbx\
Data DBXSybaseASEMetaData Data.DBXSybaseASEMetaData.pas …\data\dbx\
Data DBXSybaseASEMetaDataReader Data.DBXSybaseASEMetaDataReader.pas …\data\dbx\
Data DBXSybaseASEMetaDataWriter Data.DBXSybaseASEMetaDataWriter.pas …\data\dbx\
Data DBXSybaseASEReadOnlyMetaData Data.DBXSybaseASEReadOnlyMetaData.pas …\data\dbx\
Data DBXTableFactory Data.DBXTableFactory.pas …\data\dbx\
Data DBXTrace Data.DBXTrace.pas …\data\dbx\
Data DBXTransport Data.DBXTransport.pas …\data\dbx\
Data DBXTransportFilter Data.DBXTransportFilter.pas …\data\dbx\
Data DBXTypedTableStorage Data.DBXTypedTableStorage.pas …\data\dbx\
Data DSUtil Data.DSUtil.pas …\data\dbx\
Data SqlConst Data.SqlConst.pas …\data\dbx\
Data SqlExpr Data.SqlExpr.pas …\data\dbx\
SimpleDS SimpleDS.pas …\data\dbx\
Datasnap DataBkr Datasnap.DataBkr.pas …\data\dsnap\
Datasnap DBClient Datasnap.DBClient.pas …\data\dsnap\
Datasnap DSIntf Datasnap.DSIntf.pas …\data\dsnap\
Datasnap Midas Datasnap.Midas.pas …\data\dsnap\
Datasnap MidConst Datasnap.MidConst.pas …\data\dsnap\
Datasnap Provider Datasnap.Provider.pas …\data\dsnap\
Datasnap.Win MConnect Datasnap.Win.MConnect.pas …\data\dsnap\
Datasnap.Win MidasCon Datasnap.Win.MidasCon.pas …\data\dsnap\
Datasnap.Win MtsRdm Datasnap.Win.MtsRdm.pas …\data\dsnap\
Datasnap.Win ObjBrkr Datasnap.Win.ObjBrkr.pas …\data\dsnap\
Datasnap.Win SConnect Datasnap.Win.SConnect.pas …\data\dsnap\
Datasnap.Win TConnect Datasnap.Win.TConnect.pas …\data\dsnap\
HTTPIntr HTTPIntr.pas …\data\dsnap\
MidasLib MidasLib.pas …\data\dsnap\
ScktCnst ScktCnst.pas …\data\dsnap\
ScktMain ScktMain.pas …\data\dsnap\
DBXCustomDataGenerator DBXCustomDataGenerator.pas …\data\Test\
DbxDataGenerator DbxDataGenerator.pas …\data\Test\
DBXDBMetaData DBXDBMetaData.pas …\data\Test\
DbxTest DbxTest.pas …\data\Test\
DBXTestResStrs DBXTestResStrs.pas …\data\Test\
TestFrameworkExtension TestFrameworkExtension.pas …\data\Test\
Vcl DBActns Vcl.DBActns.pas …\data\vclctrls\
Vcl DBCGrids Vcl.DBCGrids.pas …\data\vclctrls\
Vcl DBClientActns Vcl.DBClientActns.pas …\data\vclctrls\
Vcl DBCtrls Vcl.DBCtrls.pas …\data\vclctrls\
Vcl DBGrids Vcl.DBGrids.pas …\data\vclctrls\
Vcl DBLogDlg Vcl.DBLogDlg.pas …\data\vclctrls\
Vcl DBLookup Vcl.DBLookup.pas …\data\vclctrls\
Vcl DBOleCtl Vcl.DBOleCtl.pas …\data\vclctrls\
Vcl DBPWDlg Vcl.DBPWDlg.pas …\data\vclctrls\
Vcl recerror Vcl.recerror.pas …\data\vclctrls\
Vcl VDBConsts Vcl.VDBConsts.pas …\data\vclctrls\
Data.Bind Components Data.Bind.Components.pas …\databinding\components\
Data.Bind Consts Data.Bind.Consts.pas …\databinding\components\
Data.Bind DBLinks Data.Bind.DBLinks.pas …\databinding\components\
Data.Bind DBScope Data.Bind.DBScope.pas …\databinding\components\
Data.Bind Editors Data.Bind.Editors.pas …\databinding\components\
Data.Bind EngExt Data.Bind.EngExt.pas …\databinding\components\
Data.Bind ObserverLinks Data.Bind.ObserverLinks.pas …\databinding\components\
Fmx.Bind Consts Fmx.Bind.Consts.pas …\databinding\components\
Fmx.Bind DBEngExt Fmx.Bind.DBEngExt.pas …\databinding\components\
Fmx.Bind DBLinks Fmx.Bind.DBLinks.pas …\databinding\components\
Fmx.Bind Editors Fmx.Bind.Editors.pas …\databinding\components\
Fmx.Bind Navigator Fmx.Bind.Navigator.pas …\databinding\components\
Vcl.Bind Consts Vcl.Bind.Consts.pas …\databinding\components\
Vcl.Bind DBEngExt Vcl.Bind.DBEngExt.pas …\databinding\components\
Vcl.Bind Editors Vcl.Bind.Editors.pas …\databinding\components\
System.Bindings Consts System.Bindings.Consts.pas …\databinding\engine\
System.Bindings CustomScope System.Bindings.CustomScope.pas …\databinding\engine\
System.Bindings CustomWrapper System.Bindings.CustomWrapper.pas …\databinding\engine\
System.Bindings EvalProtocol System.Bindings.EvalProtocol.pas …\databinding\engine\
System.Bindings EvalSys System.Bindings.EvalSys.pas …\databinding\engine\
System.Bindings Evaluator System.Bindings.Evaluator.pas …\databinding\engine\
System.Bindings Expression System.Bindings.Expression.pas …\databinding\engine\
System.Bindings ExpressionDefaults System.Bindings.ExpressionDefaults.pas …\databinding\engine\
System.Bindings Factories System.Bindings.Factories.pas …\databinding\engine\
System.Bindings Graph System.Bindings.Graph.pas …\databinding\engine\
System.Bindings Helper System.Bindings.Helper.pas …\databinding\engine\
System.Bindings Manager System.Bindings.Manager.pas …\databinding\engine\
System.Bindings ManagerDefaults System.Bindings.ManagerDefaults.pas …\databinding\engine\
System.Bindings Methods System.Bindings.Methods.pas …\databinding\engine\
System.Bindings NotifierContracts System.Bindings.NotifierContracts.pas …\databinding\engine\
System.Bindings NotifierDefaults System.Bindings.NotifierDefaults.pas …\databinding\engine\
System.Bindings ObjEval System.Bindings.ObjEval.pas …\databinding\engine\
System.Bindings Outputs System.Bindings.Outputs.pas …\databinding\engine\
System.Bindings Search System.Bindings.Search.pas …\databinding\engine\
BindingGraphResStrs BindingGraphResStrs.pas …\databinding\graph\
BindingGraphViewNodes BindingGraphViewNodes.pas …\databinding\graph\
GraphView GraphView.pas …\databinding\graph\
SyncController SyncController.pas …\databinding\graph\
XPEvent XPEvent.pas …\DUnit\Contrib\DUnitWizard\Source\Common\
XPInterfacedObject XPInterfacedObject.pas …\DUnit\Contrib\DUnitWizard\Source\Common\
XPIterator XPIterator.pas …\DUnit\Contrib\DUnitWizard\Source\Common\
XPObserver XPObserver.pas …\DUnit\Contrib\DUnitWizard\Source\Common\
XPRestore XPRestore.pas …\DUnit\Contrib\DUnitWizard\Source\Common\
XPSingleton XPSingleton.pas …\DUnit\Contrib\DUnitWizard\Source\Common\
XPSingletonForm XPSingletonForm.pas …\DUnit\Contrib\DUnitWizard\Source\Common\
XPStrings XPStrings.pas …\DUnit\Contrib\DUnitWizard\Source\Common\
XPSyncRW XPSyncRW.pas …\DUnit\Contrib\DUnitWizard\Source\Common\
XPTransactIniFile XPTransactIniFile.pas …\DUnit\Contrib\DUnitWizard\Source\Common\
XPWinBase XPWinBase.pas …\DUnit\Contrib\DUnitWizard\Source\Common\
XPWinSync XPWinSync.pas …\DUnit\Contrib\DUnitWizard\Source\Common\
XPInterfacedObjectTests XPInterfacedObjectTests.pas …\DUnit\Contrib\DUnitWizard\Source\Common\dunit\
XPObserverTests XPObserverTests.pas …\DUnit\Contrib\DUnitWizard\Source\Common\dunit\
XPTempReleaseTests XPTempReleaseTests.pas …\DUnit\Contrib\DUnitWizard\Source\Common\dunit\
XPKeyWords XPKeyWords.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\Common\
XPPascalScanner XPPascalScanner.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\Common\
XPToken XPToken.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\Common\
XPTokenMulticaster XPTokenMulticaster.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\Common\
XP_OTACreators XP_OTACreators.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\Common\
XP_OTAEditorUtils XP_OTAEditorUtils.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\Common\
XP_OTAUtils XP_OTAUtils.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\Common\
XP_OTAWizards XP_OTAWizards.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\Common\
XPDUnitCommon XPDUnitCommon.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\
XPDUnitMacros XPDUnitMacros.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\
XPDUnitMenuWizard XPDUnitMenuWizard.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\
XPDUnitParameters XPDUnitParameters.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\
XPDUnitProject XPDUnitProject.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\
XPDUnitProjectWizard XPDUnitProjectWizard.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\
XPDUnitSetup XPDUnitSetup.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\
XPDUnitTestClass XPDUnitTestClass.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\
XPDUnitTestClassWizard XPDUnitTestClassWizard.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\
XPDUnitTestModule XPDUnitTestModule.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\
XPDUnitTestModuleWizard XPDUnitTestModuleWizard.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\
XPDUnitWizard XPDUnitWizard.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\
XPParserFilters XPParserFilters.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\
XPTemplateParser XPTemplateParser.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\
XPTestedUnitParser XPTestedUnitParser.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\
XPTestedUnitUtils XPTestedUnitUtils.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\
XPTextTemplates XPTextTemplates.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\
TestedUnitStream TestedUnitStream.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\dunit\
WizardFormsDemoMain WizardFormsDemoMain.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\dunit\
XPDUnitMacrosTests XPDUnitMacrosTests.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\dunit\
XPDUnitParametersTests XPDUnitParametersTests.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\dunit\
XPTemplateParserTests XPTemplateParserTests.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\dunit\
XPTestedUnitParserTests XPTestedUnitParserTests.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\dunit\
XPTestedUnitUtilsTests XPTestedUnitUtilsTests.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\dunit\
TestedUnitParserTest_1 TestedUnitParserTest_1.pas …\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\dunit\Examples\
XMLTestRunner XMLTestRunner.pas …\DUnit\Contrib\XMLReporting\
frmXPGenOpts frmXPGenOpts.pas …\DUnit\Contrib\XPGen\
listsupport listsupport.pas …\DUnit\Contrib\XPGen\
parsedef parsedef.pas …\DUnit\Contrib\XPGen\
suite_xpgen suite_xpgen.pas …\DUnit\Contrib\XPGen\
testunit testunit.pas …\DUnit\Contrib\XPGen\
test_xpLex test_xpLex.pas …\DUnit\Contrib\XPGen\
test_xpParse test_xpParse.pas …\DUnit\Contrib\XPGen\
WIZARDXPGEN WIZARDXPGEN.pas …\DUnit\Contrib\XPGen\
wizardXpGenOptions wizardXpGenOptions.pas …\DUnit\Contrib\XPGen\
xpCodeGen xpCodeGen.pas …\DUnit\Contrib\XPGen\
xpLex xpLex.pas …\DUnit\Contrib\XPGen\
xpmain xpmain.pas …\DUnit\Contrib\XPGen\
xpParse xpParse.pas …\DUnit\Contrib\XPGen\
TestFailChecklessTests TestFailChecklessTests.pas …\DUnit\examples\ChecklessTests\
Unit1 Unit1.pas …\DUnit\examples\cmdline\
Unit1Test Unit1Test.pas …\DUnit\examples\cmdline\
Unit2 Unit2.pas …\DUnit\examples\cmdline\
Unit2Test Unit2Test.pas …\DUnit\examples\cmdline\
EmbeddableGUITestRunner EmbeddableGUITestRunner.pas …\DUnit\examples\embeddable\
DemoHaltRepeatingOnError DemoHaltRepeatingOnError.pas …\DUnit\examples\HaltRepeating\
UnitTestLeak UnitTestLeak.pas …\DUnit\examples\MemLeakDetect\
UnitTestSetup UnitTestSetup.pas …\DUnit\examples\MemLeakDetect\
TestUnit1 TestUnit1.pas …\DUnit\examples\registration\
TestUnit2 TestUnit2.pas …\DUnit\examples\registration\
TestUnit3 TestUnit3.pas …\DUnit\examples\registration\
RegistryUnit RegistryUnit.pas …\DUnit\examples\registry\Step1\
RegistryUnitTest RegistryUnitTest.pas …\DUnit\examples\registry\Step1\
RegistryUnit RegistryUnit.pas …\DUnit\examples\registry\Step2\
RegistryUnitTest RegistryUnitTest.pas …\DUnit\examples\registry\Step2\
RegistryUnit RegistryUnit.pas …\DUnit\examples\registry\Step3\
RegistryUnitTest RegistryUnitTest.pas …\DUnit\examples\registry\Step3\
Unit1 Unit1.pas …\DUnit\examples\structure\diffunit\
Unit1Test Unit1Test.pas …\DUnit\examples\structure\diffunit\
Unit2 Unit2.pas …\DUnit\examples\structure\diffunit\
Unit2Test Unit2Test.pas …\DUnit\examples\structure\diffunit\
Unit1 Unit1.pas …\DUnit\examples\structure\sameunit\
Unit2 Unit2.pas …\DUnit\examples\structure\sameunit\
Unit1 Unit1.pas …\DUnit\examples\testexception\
Unit1Test Unit1Test.pas …\DUnit\examples\testexception\
Unit2 Unit2.pas …\DUnit\examples\testexception\
Unit2Test Unit2Test.pas …\DUnit\examples\testexception\
TListTestCase TListTestCase.pas …\DUnit\examples\TListTest\
DunitAbout DunitAbout.pas …\DUnit\src\
DUnitConsts DUnitConsts.pas …\DUnit\src\
DUnitMainForm DUnitMainForm.pas …\DUnit\src\
FastMMMemLeakMonitor FastMMMemLeakMonitor.pas …\DUnit\src\
GUITesting GUITesting.pas …\DUnit\src\
GUITestRunner GUITestRunner.pas …\DUnit\src\
HeidiTestRunner HeidiTestRunner.pas …\DUnit\src\
QGUITestRunner QGUITestRunner.pas …\DUnit\src\
TestExtensions TestExtensions.pas …\DUnit\src\
TestFramework TestFramework.pas …\DUnit\src\
TestModules TestModules.pas …\DUnit\src\
TextTestRunner TextTestRunner.pas …\DUnit\src\
FastMMMonitorTest FastMMMonitorTest.pas …\DUnit\tests\
UnitTestExtensions UnitTestExtensions.pas …\DUnit\tests\
UnitTestFramework UnitTestFramework.pas …\DUnit\tests\
UnitTestGUITesting UnitTestGUITesting.pas …\DUnit\tests\
UnitTestGUITestRunner UnitTestGUITestRunner.pas …\DUnit\tests\
DSCreators DSCreators.pas …\Experts\
DSMrWizardCommon DSMrWizardCommon.pas …\Experts\
DSPortFrame DSPortFrame.pas …\Experts\
DSPortsWizardPage DSPortsWizardPage.pas …\Experts\
DSProjectLocationWizardPage DSProjectLocationWizardPage.pas …\Experts\
DSRESTExpertsCreators DSRESTExpertsCreators.pas …\Experts\
DSRESTExpertsUI DSRESTExpertsUI.pas …\Experts\
DSServerClassWizardPage DSServerClassWizardPage.pas …\Experts\
DSServerDsnResStrs DSServerDsnResStrs.pas …\Experts\
DSServerExpertsCreators DSServerExpertsCreators.pas …\Experts\
DSServerExpertsTemplateProperties DSServerExpertsTemplateProperties.pas …\Experts\
DSServerExpertsUI DSServerExpertsUI.pas …\Experts\
DSServerFeatureManager DSServerFeatureManager.pas …\Experts\
DSServerFeatures DSServerFeatures.pas …\Experts\
DSServerMethodsExpertsCreators DSServerMethodsExpertsCreators.pas …\Experts\
DsServerReg DsServerReg.pas …\Experts\
DSServerScriptGen DSServerScriptGen.pas …\Experts\
DSServerWebBrokerExpertsCreators DSServerWebBrokerExpertsCreators.pas …\Experts\
DSServerWebBrokerExpertsUI DSServerWebBrokerExpertsUI.pas …\Experts\
DSSource DSSource.pas …\Experts\
DSStandAloneAppWizardPage DSStandAloneAppWizardPage.pas …\Experts\
DSStandAloneReg DSStandAloneReg.pas …\Experts\
DSWebBrokerReg DSWebBrokerReg.pas …\Experts\
ExpertsBaseCreators ExpertsBaseCreators.pas …\Experts\
ExpertsIntf ExpertsIntf.pas …\Experts\
ExpertsModuleCreators ExpertsModuleCreators.pas …\Experts\
ExpertsModules ExpertsModules.pas …\Experts\
ExpertsProject ExpertsProject.pas …\Experts\
ExpertsProjectCreators ExpertsProjectCreators.pas …\Experts\
ExpertsReg ExpertsReg.pas …\Experts\
ExpertsRepository ExpertsRepository.pas …\Experts\
ExpertsResStrs ExpertsResStrs.pas …\Experts\
ExpertsTemplates ExpertsTemplates.pas …\Experts\
ExpertsUIIniOptions ExpertsUIIniOptions.pas …\Experts\
ExpertsUIInternalWizard ExpertsUIInternalWizard.pas …\Experts\
ExpertsUIReg ExpertsUIReg.pas …\Experts\
ExpertsUIResStrs ExpertsUIResStrs.pas …\Experts\
ExpertsUIWizard ExpertsUIWizard.pas …\Experts\
InetAppTypeFrame InetAppTypeFrame.pas …\Experts\
InetCertFilesWizardPage InetCertFilesWizardPage.pas …\Experts\
InetDesignResStrs InetDesignResStrs.pas …\Experts\
InetExpertsCreators InetExpertsCreators.pas …\Experts\
InetExpertsTemplateProperties InetExpertsTemplateProperties.pas …\Experts\
InetExpertsUI InetExpertsUI.pas …\Experts\
InetHTTPPortWizardPage InetHTTPPortWizardPage.pas …\Experts\
InetWiz InetWiz.pas …\Experts\
WebServerWizardPage WebServerWizardPage.pas …\Experts\
FMX_Ani FMX_Ani.pas …\fmi\
FMX_ASE_Importer FMX_ASE_Importer.pas …\fmi\
FMX_ASE_Lexer FMX_ASE_Lexer.pas …\fmi\
FMX_ASE_Model FMX_ASE_Model.pas …\fmi\
FMX_Canvas_D2D FMX_Canvas_D2D.pas …\fmi\
FMX_Canvas_GDIP FMX_Canvas_GDIP.pas …\fmi\
FMX_Canvas_iOS FMX_Canvas_iOS.pas …\fmi\
FMX_Colors FMX_Colors.pas …\fmi\
FMX_Consts FMX_Consts.pas …\fmi\
FMX_Context_DX9 FMX_Context_DX9.pas …\fmi\
FMX_Context_GLES FMX_Context_GLES.pas …\fmi\
FMX_Controls FMX_Controls.pas …\fmi\
FMX_Dialogs FMX_Dialogs.pas …\fmi\
FMX_Edit FMX_Edit.pas …\fmi\
FMX_Effects FMX_Effects.pas …\fmi\
FMX_ExtCtrls FMX_ExtCtrls.pas …\fmi\
FMX_Filter FMX_Filter.pas …\fmi\
FMX_FilterCatBlur FMX_FilterCatBlur.pas …\fmi\
FMX_FilterCatColor FMX_FilterCatColor.pas …\fmi\
FMX_FilterCatColorAdjust FMX_FilterCatColorAdjust.pas …\fmi\
FMX_FilterCatComposite FMX_FilterCatComposite.pas …\fmi\
FMX_FilterCatDistortion FMX_FilterCatDistortion.pas …\fmi\
FMX_FilterCatGenerator FMX_FilterCatGenerator.pas …\fmi\
FMX_FilterCatGeometry FMX_FilterCatGeometry.pas …\fmi\
FMX_FilterCatStyle FMX_FilterCatStyle.pas …\fmi\
FMX_FilterCatTiles FMX_FilterCatTiles.pas …\fmi\
FMX_FilterCatTransition FMX_FilterCatTransition.pas …\fmi\
FMX_Filter_Effects FMX_Filter_Effects.pas …\fmi\
FMX_Forms FMX_Forms.pas …\fmi\
FMX_Grid FMX_Grid.pas …\fmi\
FMX_Import FMX_Import.pas …\fmi\
FMX_Layers3D FMX_Layers3D.pas …\fmi\
FMX_Layouts FMX_Layouts.pas …\fmi\
FMX_ListBox FMX_ListBox.pas …\fmi\
FMX_Memo FMX_Memo.pas …\fmi\
FMX_Menus FMX_Menus.pas …\fmi\
FMX_Objects FMX_Objects.pas …\fmi\
FMX_Objects3D FMX_Objects3D.pas …\fmi\
FMX_OBJ_Importer FMX_OBJ_Importer.pas …\fmi\
FMX_OBJ_Model FMX_OBJ_Model.pas …\fmi\
FMX_Platform FMX_Platform.pas …\fmi\
FMX_Platform_iOS FMX_Platform_iOS.pas …\fmi\
FMX_Platform_Win FMX_Platform_Win.pas …\fmi\
FMX_Printer FMX_Printer.pas …\fmi\
FMX_Printer_Win FMX_Printer_Win.pas …\fmi\
FMX_TabControl FMX_TabControl.pas …\fmi\
FMX_TreeView FMX_TreeView.pas …\fmi\
FMX_Types FMX_Types.pas …\fmi\
FMX_Types3D FMX_Types3D.pas …\fmi\
FMX_Video FMX_Video.pas …\fmi\
FMX_Video_iOS FMX_Video_iOS.pas …\fmi\
FMX_Video_Win FMX_Video_Win.pas …\fmi\
FMX Ani FMX.Ani.pas …\fmx\
FMX.ASE Importer FMX.ASE.Importer.pas …\fmx\
FMX.ASE Lexer FMX.ASE.Lexer.pas …\fmx\
FMX.ASE Model FMX.ASE.Model.pas …\fmx\
FMX.Canvas D2D FMX.Canvas.D2D.pas …\fmx\
FMX.Canvas GDIP FMX.Canvas.GDIP.pas …\fmx\
FMX.Canvas Mac FMX.Canvas.Mac.pas …\fmx\
FMX Colors FMX.Colors.pas …\fmx\
FMX Consts FMX.Consts.pas …\fmx\
FMX.Context DX9 FMX.Context.DX9.pas …\fmx\
FMX.Context Mac FMX.Context.Mac.pas …\fmx\
FMX Controls FMX.Controls.pas …\fmx\
FMX.DAE Importer FMX.DAE.Importer.pas …\fmx\
FMX.DAE Model FMX.DAE.Model.pas …\fmx\
FMX.DAE Schema FMX.DAE.Schema.pas …\fmx\
FMX Dialogs FMX.Dialogs.pas …\fmx\
FMX Edit FMX.Edit.pas …\fmx\
FMX Effects FMX.Effects.pas …\fmx\
FMX ExtCtrls FMX.ExtCtrls.pas …\fmx\
FMX.Filter Effects FMX.Filter.Effects.pas …\fmx\
FMX Filter FMX.Filter.pas …\fmx\
FMX FilterCatBlur FMX.FilterCatBlur.pas …\fmx\
FMX FilterCatColor FMX.FilterCatColor.pas …\fmx\
FMX FilterCatColorAdjust FMX.FilterCatColorAdjust.pas …\fmx\
FMX FilterCatComposite FMX.FilterCatComposite.pas …\fmx\
FMX FilterCatDistortion FMX.FilterCatDistortion.pas …\fmx\
FMX FilterCatGenerator FMX.FilterCatGenerator.pas …\fmx\
FMX FilterCatGeometry FMX.FilterCatGeometry.pas …\fmx\
FMX FilterCatStyle FMX.FilterCatStyle.pas …\fmx\
FMX FilterCatTiles FMX.FilterCatTiles.pas …\fmx\
FMX FilterCatTransition FMX.FilterCatTransition.pas …\fmx\
FMX Forms FMX.Forms.pas …\fmx\
FMX Grid FMX.Grid.pas …\fmx\
FMX Import FMX.Import.pas …\fmx\
FMX Layers3D FMX.Layers3D.pas …\fmx\
FMX Layouts FMX.Layouts.pas …\fmx\
FMX ListBox FMX.ListBox.pas …\fmx\
FMX Memo FMX.Memo.pas …\fmx\
FMX Menus FMX.Menus.pas …\fmx\
FMX.OBJ Importer FMX.OBJ.Importer.pas …\fmx\
FMX.OBJ Model FMX.OBJ.Model.pas …\fmx\
FMX Objects FMX.Objects.pas …\fmx\
FMX Objects3D FMX.Objects3D.pas …\fmx\
FMX.Platform Mac FMX.Platform.Mac.pas …\fmx\
FMX Platform FMX.Platform.pas …\fmx\
FMX.Platform Win FMX.Platform.Win.pas …\fmx\
FMX.Printer Mac FMX.Printer.Mac.pas …\fmx\
FMX Printer FMX.Printer.pas …\fmx\
FMX.Printer Win FMX.Printer.Win.pas …\fmx\
FMX TabControl FMX.TabControl.pas …\fmx\
FMX TreeView FMX.TreeView.pas …\fmx\
FMX Types FMX.Types.pas …\fmx\
FMX Types3D FMX.Types3D.pas …\fmx\
FMX.Video Mac FMX.Video.Mac.pas …\fmx\
FMX Video FMX.Video.pas …\fmx\
FMX.Video Win FMX.Video.Win.pas …\fmx\
IB IB.pas …\IBX\
IBBlob IBBlob.pas …\IBX\
IBConnectionBroker IBConnectionBroker.pas …\IBX\
IBCustomDataSet IBCustomDataSet.pas …\IBX\
IBDatabase IBDatabase.pas …\IBX\
IBDatabaseInfo IBDatabaseInfo.pas …\IBX\
IBDatabaseINI IBDatabaseINI.pas …\IBX\
IBErrorCodes IBErrorCodes.pas …\IBX\
IBEvents IBEvents.pas …\IBX\
IBExternals IBExternals.pas …\IBX\
IBExtract IBExtract.pas …\IBX\
IBFilterDialog IBFilterDialog.pas …\IBX\
IBFilterSummary IBFilterSummary.pas …\IBX\
IBHeader IBHeader.pas …\IBX\
IBInstall IBInstall.pas …\IBX\
IBInstallHeader IBInstallHeader.pas …\IBX\
IBIntf IBIntf.pas …\IBX\
IBQuery IBQuery.pas …\IBX\
IBScript IBScript.pas …\IBX\
IBServices IBServices.pas …\IBX\
IBSQL IBSQL.pas …\IBX\
IBSQLMonitor IBSQLMonitor.pas …\IBX\
IBStoredProc IBStoredProc.pas …\IBX\
IBTable IBTable.pas …\IBX\
IBUpdateSQL IBUpdateSQL.pas …\IBX\
IBUtils IBUtils.pas …\IBX\
IBVisualConst IBVisualConst.pas …\IBX\
IBXConst IBXConst.pas …\IBX\
IBXMLHeader IBXMLHeader.pas …\IBX\
IPPeerAPI IPPeerAPI.pas …\indy\abstraction\
IPPeerResStrs IPPeerResStrs.pas …\indy\abstraction\
IndyPeerImpl IndyPeerImpl.pas …\indy\implementation\
IdAssignedNumbers IdAssignedNumbers.pas …\Indy10\Core\
IdBuffer IdBuffer.pas …\Indy10\Core\
IdCmdTCPClient IdCmdTCPClient.pas …\Indy10\Core\
IdCmdTCPServer IdCmdTCPServer.pas …\Indy10\Core\
IdCommandHandlers IdCommandHandlers.pas …\Indy10\Core\
IdContext IdContext.pas …\Indy10\Core\
IdCustomTCPServer IdCustomTCPServer.pas …\Indy10\Core\
IdCustomTransparentProxy IdCustomTransparentProxy.pas …\Indy10\Core\
IdExceptionCore IdExceptionCore.pas …\Indy10\Core\
IdGlobalCore IdGlobalCore.pas …\Indy10\Core\
IdIcmpClient IdIcmpClient.pas …\Indy10\Core\
IdIntercept IdIntercept.pas …\Indy10\Core\
IdInterceptSimLog IdInterceptSimLog.pas …\Indy10\Core\
IdInterceptThrottler IdInterceptThrottler.pas …\Indy10\Core\
IdIOHandler IdIOHandler.pas …\Indy10\Core\
IdIOHandlerSocket IdIOHandlerSocket.pas …\Indy10\Core\
IdIOHandlerStack IdIOHandlerStack.pas …\Indy10\Core\
IdIOHandlerStream IdIOHandlerStream.pas …\Indy10\Core\
IdIPAddress IdIPAddress.pas …\Indy10\Core\
IdIPMCastBase IdIPMCastBase.pas …\Indy10\Core\
IdIPMCastClient IdIPMCastClient.pas …\Indy10\Core\
IdIPMCastServer IdIPMCastServer.pas …\Indy10\Core\
IdLogBase IdLogBase.pas …\Indy10\Core\
IdLogDebug IdLogDebug.pas …\Indy10\Core\
IdLogEvent IdLogEvent.pas …\Indy10\Core\
IdLogFile IdLogFile.pas …\Indy10\Core\
IdLogStream IdLogStream.pas …\Indy10\Core\
IdRawBase IdRawBase.pas …\Indy10\Core\
IdRawClient IdRawClient.pas …\Indy10\Core\
IdRawFunctions IdRawFunctions.pas …\Indy10\Core\
IdRawHeaders IdRawHeaders.pas …\Indy10\Core\
IdReply IdReply.pas …\Indy10\Core\
IdReplyRFC IdReplyRFC.pas …\Indy10\Core\
IdResourceStringsCore IdResourceStringsCore.pas …\Indy10\Core\
IdScheduler IdScheduler.pas …\Indy10\Core\
IdSchedulerOfThread IdSchedulerOfThread.pas …\Indy10\Core\
IdSchedulerOfThreadDefault IdSchedulerOfThreadDefault.pas …\Indy10\Core\
IdSchedulerOfThreadPool IdSchedulerOfThreadPool.pas …\Indy10\Core\
IdServerIOHandler IdServerIOHandler.pas …\Indy10\Core\
IdServerIOHandlerSocket IdServerIOHandlerSocket.pas …\Indy10\Core\
IdServerIOHandlerStack IdServerIOHandlerStack.pas …\Indy10\Core\
IdSimpleServer IdSimpleServer.pas …\Indy10\Core\
IdSocketHandle IdSocketHandle.pas …\Indy10\Core\
IdSocks IdSocks.pas …\Indy10\Core\
IdSync IdSync.pas …\Indy10\Core\
IdTask IdTask.pas …\Indy10\Core\
IdTCPClient IdTCPClient.pas …\Indy10\Core\
IdTCPConnection IdTCPConnection.pas …\Indy10\Core\
IdTCPServer IdTCPServer.pas …\Indy10\Core\
IdTCPStream IdTCPStream.pas …\Indy10\Core\
IdThread IdThread.pas …\Indy10\Core\
IdThreadComponent IdThreadComponent.pas …\Indy10\Core\
IdThreadSafe IdThreadSafe.pas …\Indy10\Core\
IdTraceRoute IdTraceRoute.pas …\Indy10\Core\
IdUDPBase IdUDPBase.pas …\Indy10\Core\
IdUDPClient IdUDPClient.pas …\Indy10\Core\
IdUDPServer IdUDPServer.pas …\Indy10\Core\
IdYarn IdYarn.pas …\Indy10\Core\
IdAllAuthentications IdAllAuthentications.pas …\Indy10\Protocols\
IdAllFTPListParsers IdAllFTPListParsers.pas …\Indy10\Protocols\
IdAllHeaderCoders IdAllHeaderCoders.pas …\Indy10\Protocols\
IdASN1Util IdASN1Util.pas …\Indy10\Protocols\
IdAttachment IdAttachment.pas …\Indy10\Protocols\
IdAttachmentFile IdAttachmentFile.pas …\Indy10\Protocols\
IdAttachmentMemory IdAttachmentMemory.pas …\Indy10\Protocols\
IdAuthentication IdAuthentication.pas …\Indy10\Protocols\
IdAuthenticationDigest IdAuthenticationDigest.pas …\Indy10\Protocols\
IdAuthenticationManager IdAuthenticationManager.pas …\Indy10\Protocols\
IdAuthenticationNTLM IdAuthenticationNTLM.pas …\Indy10\Protocols\
IdAuthenticationSSPI IdAuthenticationSSPI.pas …\Indy10\Protocols\
IdBlockCipherIntercept IdBlockCipherIntercept.pas …\Indy10\Protocols\
IdChargenServer IdChargenServer.pas …\Indy10\Protocols\
IdChargenUDPServer IdChargenUDPServer.pas …\Indy10\Protocols\
IdCharsets IdCharsets.pas …\Indy10\Protocols\
IdCoder IdCoder.pas …\Indy10\Protocols\
IdCoder00E IdCoder00E.pas …\Indy10\Protocols\
IdCoder3to4 IdCoder3to4.pas …\Indy10\Protocols\
IdCoderBinHex4 IdCoderBinHex4.pas …\Indy10\Protocols\
IdCoderHeader IdCoderHeader.pas …\Indy10\Protocols\
IdCoderMIME IdCoderMIME.pas …\Indy10\Protocols\
IdCoderQuotedPrintable IdCoderQuotedPrintable.pas …\Indy10\Protocols\
IdCoderUUE IdCoderUUE.pas …\Indy10\Protocols\
IdCoderXXE IdCoderXXE.pas …\Indy10\Protocols\
IdCompressionIntercept IdCompressionIntercept.pas …\Indy10\Protocols\
IdCompressorZLib IdCompressorZLib.pas …\Indy10\Protocols\
IdConnectThroughHttpProxy IdConnectThroughHttpProxy.pas …\Indy10\Protocols\
IdContainers IdContainers.pas …\Indy10\Protocols\
IdCookie IdCookie.pas …\Indy10\Protocols\
IdCookieManager IdCookieManager.pas …\Indy10\Protocols\
IdCustomHTTPServer IdCustomHTTPServer.pas …\Indy10\Protocols\
IdDateTimeStamp IdDateTimeStamp.pas …\Indy10\Protocols\
IdDayTime IdDayTime.pas …\Indy10\Protocols\
IdDayTimeServer IdDayTimeServer.pas …\Indy10\Protocols\
IdDayTimeUDP IdDayTimeUDP.pas …\Indy10\Protocols\
IdDayTimeUDPServer IdDayTimeUDPServer.pas …\Indy10\Protocols\
IdDICT IdDICT.pas …\Indy10\Protocols\
IdDICTCommon IdDICTCommon.pas …\Indy10\Protocols\
IdDICTServer IdDICTServer.pas …\Indy10\Protocols\
IdDiscardServer IdDiscardServer.pas …\Indy10\Protocols\
IdDiscardUDPServer IdDiscardUDPServer.pas …\Indy10\Protocols\
IdDNSCommon IdDNSCommon.pas …\Indy10\Protocols\
IdDNSResolver IdDNSResolver.pas …\Indy10\Protocols\
IdDNSServer IdDNSServer.pas …\Indy10\Protocols\
IdEcho IdEcho.pas …\Indy10\Protocols\
IdEchoServer IdEchoServer.pas …\Indy10\Protocols\
IdEchoUDP IdEchoUDP.pas …\Indy10\Protocols\
IdEchoUDPServer IdEchoUDPServer.pas …\Indy10\Protocols\
IdEMailAddress IdEMailAddress.pas …\Indy10\Protocols\
IdExplicitTLSClientServerBase IdExplicitTLSClientServerBase.pas …\Indy10\Protocols\
IdFinger IdFinger.pas …\Indy10\Protocols\
IdFingerServer IdFingerServer.pas …\Indy10\Protocols\
IdFIPS IdFIPS.pas …\Indy10\Protocols\
IdFSP IdFSP.pas …\Indy10\Protocols\
IdFTP IdFTP.pas …\Indy10\Protocols\
IdFTPBaseFileSystem IdFTPBaseFileSystem.pas …\Indy10\Protocols\
IdFTPCommon IdFTPCommon.pas …\Indy10\Protocols\
IdFTPList IdFTPList.pas …\Indy10\Protocols\
IdFTPListOutput IdFTPListOutput.pas …\Indy10\Protocols\
IdFTPListParseAS400 IdFTPListParseAS400.pas …\Indy10\Protocols\
IdFTPListParseBase IdFTPListParseBase.pas …\Indy10\Protocols\
IdFTPListParseBullGCOS7 IdFTPListParseBullGCOS7.pas …\Indy10\Protocols\
IdFTPListParseBullGCOS8 IdFTPListParseBullGCOS8.pas …\Indy10\Protocols\
IdFTPListParseChameleonNewt IdFTPListParseChameleonNewt.pas …\Indy10\Protocols\
IdFTPListParseCiscoIOS IdFTPListParseCiscoIOS.pas …\Indy10\Protocols\
IdFTPListParseDistinctTCPIP IdFTPListParseDistinctTCPIP.pas …\Indy10\Protocols\
IdFTPListParseEPLF IdFTPListParseEPLF.pas …\Indy10\Protocols\
IdFTPListParseHellSoft IdFTPListParseHellSoft.pas …\Indy10\Protocols\
IdFTPListParseIEFTPGateway IdFTPListParseIEFTPGateway.pas …\Indy10\Protocols\
IdFTPListParseKA9Q IdFTPListParseKA9Q.pas …\Indy10\Protocols\
IdFTPListParseMicrowareOS9 IdFTPListParseMicrowareOS9.pas …\Indy10\Protocols\
IdFTPListParseMPEiX IdFTPListParseMPEiX.pas …\Indy10\Protocols\
IdFTPListParseMusic IdFTPListParseMusic.pas …\Indy10\Protocols\
IdFTPListParseMVS IdFTPListParseMVS.pas …\Indy10\Protocols\
IdFTPListParseNCSAForDOS IdFTPListParseNCSAForDOS.pas …\Indy10\Protocols\
IdFTPListParseNCSAForMACOS IdFTPListParseNCSAForMACOS.pas …\Indy10\Protocols\
IdFTPListParseNovellNetware IdFTPListParseNovellNetware.pas …\Indy10\Protocols\
IdFTPListParseNovellNetwarePSU IdFTPListParseNovellNetwarePSU.pas …\Indy10\Protocols\
IdFTPListParseOS2 IdFTPListParseOS2.pas …\Indy10\Protocols\
IdFTPListParsePCNFSD IdFTPListParsePCNFSD.pas …\Indy10\Protocols\
IdFTPListParsePCTCP IdFTPListParsePCTCP.pas …\Indy10\Protocols\
IdFTPListParseStercomOS390Exp IdFTPListParseStercomOS390Exp.pas …\Indy10\Protocols\
IdFTPListParseStercomUnixEnt IdFTPListParseStercomUnixEnt.pas …\Indy10\Protocols\
IdFTPListParseStratusVOS IdFTPListParseStratusVOS.pas …\Indy10\Protocols\
IdFTPListParseSuperTCP IdFTPListParseSuperTCP.pas …\Indy10\Protocols\
IdFTPListParseTandemGuardian IdFTPListParseTandemGuardian.pas …\Indy10\Protocols\
IdFTPListParseTOPS20 IdFTPListParseTOPS20.pas …\Indy10\Protocols\
IdFTPListParseTSXPlus IdFTPListParseTSXPlus.pas …\Indy10\Protocols\
IdFTPListParseUnisysClearPath IdFTPListParseUnisysClearPath.pas …\Indy10\Protocols\
IdFTPListParseUnix IdFTPListParseUnix.pas …\Indy10\Protocols\
IdFTPListParseVM IdFTPListParseVM.pas …\Indy10\Protocols\
IdFTPListParseVMS IdFTPListParseVMS.pas …\Indy10\Protocols\
IdFTPListParseVSE IdFTPListParseVSE.pas …\Indy10\Protocols\
IdFTPListParseVxWorks IdFTPListParseVxWorks.pas …\Indy10\Protocols\
IdFTPListParseWfFTP IdFTPListParseWfFTP.pas …\Indy10\Protocols\
IdFTPListParseWindowsNT IdFTPListParseWindowsNT.pas …\Indy10\Protocols\
IdFTPListParseWinQVTNET IdFTPListParseWinQVTNET.pas …\Indy10\Protocols\
IdFTPListParseXecomMicroRTOS IdFTPListParseXecomMicroRTOS.pas …\Indy10\Protocols\
IdFTPListTypes IdFTPListTypes.pas …\Indy10\Protocols\
IdFTPServer IdFTPServer.pas …\Indy10\Protocols\
IdFTPServerContextBase IdFTPServerContextBase.pas …\Indy10\Protocols\
IdGlobalProtocols IdGlobalProtocols.pas …\Indy10\Protocols\
IdGopher IdGopher.pas …\Indy10\Protocols\
IdGopherConsts IdGopherConsts.pas …\Indy10\Protocols\
IdGopherServer IdGopherServer.pas …\Indy10\Protocols\
IdHash IdHash.pas …\Indy10\Protocols\
IdHashCRC IdHashCRC.pas …\Indy10\Protocols\
IdHashElf IdHashElf.pas …\Indy10\Protocols\
IdHashMessageDigest IdHashMessageDigest.pas …\Indy10\Protocols\
IdHashSHA IdHashSHA.pas …\Indy10\Protocols\
IdHeaderCoder2022JP IdHeaderCoder2022JP.pas …\Indy10\Protocols\
IdHeaderCoderBase IdHeaderCoderBase.pas …\Indy10\Protocols\
IdHeaderCoderIndy IdHeaderCoderIndy.pas …\Indy10\Protocols\
IdHeaderCoderPlain IdHeaderCoderPlain.pas …\Indy10\Protocols\
IdHeaderCoderUTF IdHeaderCoderUTF.pas …\Indy10\Protocols\
IdHeaderList IdHeaderList.pas …\Indy10\Protocols\
IdHMAC IdHMAC.pas …\Indy10\Protocols\
IdHMACMD5 IdHMACMD5.pas …\Indy10\Protocols\
IdHMACSHA1 IdHMACSHA1.pas …\Indy10\Protocols\
IdHTTP IdHTTP.pas …\Indy10\Protocols\
IdHTTPHeaderInfo IdHTTPHeaderInfo.pas …\Indy10\Protocols\
IdHTTPProxyServer IdHTTPProxyServer.pas …\Indy10\Protocols\
IdHTTPServer IdHTTPServer.pas …\Indy10\Protocols\
IdHTTPWebBrokerBridge IdHTTPWebBrokerBridge.pas …\Indy10\Protocols\
IdIdent IdIdent.pas …\Indy10\Protocols\
IdIdentServer IdIdentServer.pas …\Indy10\Protocols\
IdIMAP4 IdIMAP4.pas …\Indy10\Protocols\
IdIMAP4Server IdIMAP4Server.pas …\Indy10\Protocols\
IdIPAddrMon IdIPAddrMon.pas …\Indy10\Protocols\
IdIPWatch IdIPWatch.pas …\Indy10\Protocols\
IdIRC IdIRC.pas …\Indy10\Protocols\
IdIrcServer IdIrcServer.pas …\Indy10\Protocols\
IdLPR IdLPR.pas …\Indy10\Protocols\
IdMailBox IdMailBox.pas …\Indy10\Protocols\
IdMappedFTP IdMappedFTP.pas …\Indy10\Protocols\
IdMappedPOP3 IdMappedPOP3.pas …\Indy10\Protocols\
IdMappedPortTCP IdMappedPortTCP.pas …\Indy10\Protocols\
IdMappedPortUDP IdMappedPortUDP.pas …\Indy10\Protocols\
IdMappedTelnet IdMappedTelnet.pas …\Indy10\Protocols\
IdMessage IdMessage.pas …\Indy10\Protocols\
IdMessageBuilder IdMessageBuilder.pas …\Indy10\Protocols\
IdMessageClient IdMessageClient.pas …\Indy10\Protocols\
IdMessageCoder IdMessageCoder.pas …\Indy10\Protocols\
IdMessageCoderBinHex4 IdMessageCoderBinHex4.pas …\Indy10\Protocols\
IdMessageCoderMIME IdMessageCoderMIME.pas …\Indy10\Protocols\
IdMessageCoderQuotedPrintable IdMessageCoderQuotedPrintable.pas …\Indy10\Protocols\
IdMessageCoderUUE IdMessageCoderUUE.pas …\Indy10\Protocols\
IdMessageCoderXXE IdMessageCoderXXE.pas …\Indy10\Protocols\
IdMessageCoderYenc IdMessageCoderYenc.pas …\Indy10\Protocols\
IdMessageCollection IdMessageCollection.pas …\Indy10\Protocols\
IdMessageParts IdMessageParts.pas …\Indy10\Protocols\
IdMultipartFormData IdMultipartFormData.pas …\Indy10\Protocols\
IdNetworkCalculator IdNetworkCalculator.pas …\Indy10\Protocols\
IdNNTP IdNNTP.pas …\Indy10\Protocols\
IdNNTPServer IdNNTPServer.pas …\Indy10\Protocols\
IdNTLM IdNTLM.pas …\Indy10\Protocols\
IdOSFileName IdOSFileName.pas …\Indy10\Protocols\
IdOTPCalculator IdOTPCalculator.pas …\Indy10\Protocols\
IdPOP3 IdPOP3.pas …\Indy10\Protocols\
IdPOP3Server IdPOP3Server.pas …\Indy10\Protocols\
IdQotd IdQotd.pas …\Indy10\Protocols\
IdQotdServer IdQotdServer.pas …\Indy10\Protocols\
IdQOTDUDP IdQOTDUDP.pas …\Indy10\Protocols\
IdQOTDUDPServer IdQOTDUDPServer.pas …\Indy10\Protocols\
IdRemoteCMDClient IdRemoteCMDClient.pas …\Indy10\Protocols\
IdRemoteCMDServer IdRemoteCMDServer.pas …\Indy10\Protocols\
IdReplyFTP IdReplyFTP.pas …\Indy10\Protocols\
IdReplyIMAP4 IdReplyIMAP4.pas …\Indy10\Protocols\
IdReplyPOP3 IdReplyPOP3.pas …\Indy10\Protocols\
IdReplySMTP IdReplySMTP.pas …\Indy10\Protocols\
IdResourceStringsProtocols IdResourceStringsProtocols.pas …\Indy10\Protocols\
IdRexec IdRexec.pas …\Indy10\Protocols\
IdRexecServer IdRexecServer.pas …\Indy10\Protocols\
IdRSH IdRSH.pas …\Indy10\Protocols\
IdRSHServer IdRSHServer.pas …\Indy10\Protocols\
IdSASL IdSASL.pas …\Indy10\Protocols\
IdSASLAnonymous IdSASLAnonymous.pas …\Indy10\Protocols\
IdSASLCollection IdSASLCollection.pas …\Indy10\Protocols\
IdSASLDigest IdSASLDigest.pas …\Indy10\Protocols\
IdSASLExternal IdSASLExternal.pas …\Indy10\Protocols\
IdSASLLogin IdSASLLogin.pas …\Indy10\Protocols\
IdSASLOTP IdSASLOTP.pas …\Indy10\Protocols\
IdSASLPlain IdSASLPlain.pas …\Indy10\Protocols\
IdSASLSKey IdSASLSKey.pas …\Indy10\Protocols\
IdSASLUserPass IdSASLUserPass.pas …\Indy10\Protocols\
IdSASL_CRAMBase IdSASL_CRAMBase.pas …\Indy10\Protocols\
IdSASL_CRAM_MD5 IdSASL_CRAM_MD5.pas …\Indy10\Protocols\
IdSASL_CRAM_SHA1 IdSASL_CRAM_SHA1.pas …\Indy10\Protocols\
IdServerInterceptLogBase IdServerInterceptLogBase.pas …\Indy10\Protocols\
IdServerInterceptLogEvent IdServerInterceptLogEvent.pas …\Indy10\Protocols\
IdServerInterceptLogFile IdServerInterceptLogFile.pas …\Indy10\Protocols\
IdSMTP IdSMTP.pas …\Indy10\Protocols\
IdSMTPBase IdSMTPBase.pas …\Indy10\Protocols\
IdSMTPRelay IdSMTPRelay.pas …\Indy10\Protocols\
IdSMTPServer IdSMTPServer.pas …\Indy10\Protocols\
IdSNMP IdSNMP.pas …\Indy10\Protocols\
IdSNPP IdSNPP.pas …\Indy10\Protocols\
IdSNTP IdSNTP.pas …\Indy10\Protocols\
IdSocksServer IdSocksServer.pas …\Indy10\Protocols\
IdSSL IdSSL.pas …\Indy10\Protocols\
IdSSLOpenSSL IdSSLOpenSSL.pas …\Indy10\Protocols\
IdSSLOpenSSLHeaders IdSSLOpenSSLHeaders.pas …\Indy10\Protocols\
IdSSLOpenSSLUtils IdSSLOpenSSLUtils.pas …\Indy10\Protocols\
IdSSPI IdSSPI.pas …\Indy10\Protocols\
IdStrings IdStrings.pas …\Indy10\Protocols\
IdSysLog IdSysLog.pas …\Indy10\Protocols\
IdSysLogMessage IdSysLogMessage.pas …\Indy10\Protocols\
IdSysLogServer IdSysLogServer.pas …\Indy10\Protocols\
IdSystat IdSystat.pas …\Indy10\Protocols\
IdSystatServer IdSystatServer.pas …\Indy10\Protocols\
IdSystatUDP IdSystatUDP.pas …\Indy10\Protocols\
IdSystatUDPServer IdSystatUDPServer.pas …\Indy10\Protocols\
IdTelnet IdTelnet.pas …\Indy10\Protocols\
IdTelnetServer IdTelnetServer.pas …\Indy10\Protocols\
IdText IdText.pas …\Indy10\Protocols\
IdTime IdTime.pas …\Indy10\Protocols\
IdTimeServer IdTimeServer.pas …\Indy10\Protocols\
IdTimeUDP IdTimeUDP.pas …\Indy10\Protocols\
IdTimeUDPServer IdTimeUDPServer.pas …\Indy10\Protocols\
IdTrivialFTP IdTrivialFTP.pas …\Indy10\Protocols\
IdTrivialFTPBase IdTrivialFTPBase.pas …\Indy10\Protocols\
IdTrivialFTPServer IdTrivialFTPServer.pas …\Indy10\Protocols\
IdUnixTime IdUnixTime.pas …\Indy10\Protocols\
IdUnixTimeServer IdUnixTimeServer.pas …\Indy10\Protocols\
IdUnixTimeUDP IdUnixTimeUDP.pas …\Indy10\Protocols\
IdUnixTimeUDPServer IdUnixTimeUDPServer.pas …\Indy10\Protocols\
IdURI IdURI.pas …\Indy10\Protocols\
IdUriUtils IdUriUtils.pas …\Indy10\Protocols\
IdUserAccounts IdUserAccounts.pas …\Indy10\Protocols\
IdUserPassProvider IdUserPassProvider.pas …\Indy10\Protocols\
IdVCard IdVCard.pas …\Indy10\Protocols\
IdWebDAV IdWebDAV.pas …\Indy10\Protocols\
IdWhois IdWhois.pas …\Indy10\Protocols\
IdWhoIsServer IdWhoIsServer.pas …\Indy10\Protocols\
IdZLib IdZLib.pas …\Indy10\Protocols\
IdZLibCompressorBase IdZLibCompressorBase.pas …\Indy10\Protocols\
IdZLibConst IdZLibConst.pas …\Indy10\Protocols\
IdZLibHeaders IdZLibHeaders.pas …\Indy10\Protocols\
IdAntiFreezeBase IdAntiFreezeBase.pas …\Indy10\System\
IdBaseComponent IdBaseComponent.pas …\Indy10\System\
IdComponent IdComponent.pas …\Indy10\System\
IdCTypes IdCTypes.pas …\Indy10\System\
IdException IdException.pas …\Indy10\System\
IdGlobal IdGlobal.pas …\Indy10\System\
IdResourceStrings IdResourceStrings.pas …\Indy10\System\
IdStack IdStack.pas …\Indy10\System\
IdStackBSDBase IdStackBSDBase.pas …\Indy10\System\
IdStackConsts IdStackConsts.pas …\Indy10\System\
IdStackVCLPosix IdStackVCLPosix.pas …\Indy10\System\
IdStackWindows IdStackWindows.pas …\Indy10\System\
IdStream IdStream.pas …\Indy10\System\
IdStreamVCL IdStreamVCL.pas …\Indy10\System\
IdStruct IdStruct.pas …\Indy10\System\
IdVCLPosixSupplemental IdVCLPosixSupplemental.pas …\Indy10\System\
IdWinsock2 IdWinsock2.pas …\Indy10\System\
IdWship6 IdWship6.pas …\Indy10\System\
AdaptReq AdaptReq.pas …\internet\
AddActn AddActn.pas …\internet\
AscrLib AscrLib.pas …\internet\
ASPBehavior ASPBehavior.pas …\internet\
AutoAdap AutoAdap.pas …\internet\
AutoAdapAS AutoAdapAS.pas …\internet\
Bde DBBdeWeb Bde.DBBdeWeb.pas …\internet\
ComApp ComApp.pas …\internet\
CompProd CompProd.pas …\internet\
DBAdapt DBAdapt.pas …\internet\
DBAdaptImg DBAdaptImg.pas …\internet\
ExDispID ExDispID.pas …\internet\
HTTPParse HTTPParse.pas …\internet\
idispids idispids.pas …\internet\
idoc idoc.pas …\internet\
IEActions IEActions.pas …\internet\
IEConst IEConst.pas …\internet\
IndySockTransport IndySockTransport.pas …\internet\
MidComp MidComp.pas …\internet\
MidItems MidItems.pas …\internet\
MidProd MidProd.pas …\internet\
mshtmcid mshtmcid.pas …\internet\
Mshtmdid Mshtmdid.pas …\internet\
MSHTML MSHTML.pas …\internet\
PagItems PagItems.pas …\internet\
ReqFiles ReqFiles.pas …\internet\
ReqMulti ReqMulti.pas …\internet\
ScrptMgr ScrptMgr.pas …\internet\
SessColn SessColn.pas …\internet\
SHDocVw SHDocVw.pas …\internet\
SiteComp SiteComp.pas …\internet\
SiteConst SiteConst.pas …\internet\
SiteProd SiteProd.pas …\internet\
SockApp SockApp.pas …\internet\
SockAppHlpr SockAppHlpr.pas …\internet\
SockAppNotify SockAppNotify.pas …\internet\
SockAppReg SockAppReg.pas …\internet\
SockConst SockConst.pas …\internet\
SockHTTP SockHTTP.pas …\internet\
SockRequestInterpreter SockRequestInterpreter.pas …\internet\
SockTransport SockTransport.pas …\internet\
SvrConst SvrConst.pas …\internet\
svrhttpindy svrhttpindy.pas …\internet\
SvrInfoConsole SvrInfoConsole.pas …\internet\
SvrInfoConst SvrInfoConst.pas …\internet\
SvrInfoModule SvrInfoModule.pas …\internet\
SvrLog SvrLog.pas …\internet\
SvrLogColSettingsFrame SvrLogColSettingsFrame.pas …\internet\
SvrLogDetailDlg SvrLogDetailDlg.pas …\internet\
SvrLogDetailFrame SvrLogDetailFrame.pas …\internet\
SvrLogFrame SvrLogFrame.pas …\internet\
SvrMainForm SvrMainForm.pas …\internet\
SvrPropDlg SvrPropDlg.pas …\internet\
SvrSockRequest SvrSockRequest.pas …\internet\
SvrStatsFrame SvrStatsFrame.pas …\internet\
UrlHist UrlHist.pas …\internet\
UTF8ContentParser UTF8ContentParser.pas …\internet\
WBComp WBComp.pas …\internet\
WbmConst WbmConst.pas …\internet\
Web AutoDisp Web.AutoDisp.pas …\internet\
Web BrkrConst Web.BrkrConst.pas …\internet\
Web CGIApp Web.CGIApp.pas …\internet\
Web CGIHTTP Web.CGIHTTP.pas …\internet\
Web CopyPrsr Web.CopyPrsr.pas …\internet\
Web DBWeb Web.DBWeb.pas …\internet\
Web DBXpressWeb Web.DBXpressWeb.pas …\internet\
Web DSProd Web.DSProd.pas …\internet\
Web HTTPApp Web.HTTPApp.pas …\internet\
Web HTTPProd Web.HTTPProd.pas …\internet\
Web WebBroker Web.WebBroker.pas …\internet\
Web WebCntxt Web.WebCntxt.pas …\internet\
Web WebConst Web.WebConst.pas …\internet\
Web WebFileDispatcher Web.WebFileDispatcher.pas …\internet\
Web WebReq Web.WebReq.pas …\internet\
Web.Win AdsConst Web.Win.AdsConst.pas …\internet\
Web.Win AdsTypes Web.Win.AdsTypes.pas …\internet\
Web.Win ISAPIApp Web.Win.ISAPIApp.pas …\internet\
Web.Win IsapiHTTP Web.Win.IsapiHTTP.pas …\internet\
Web.Win ISAPIThreadPool Web.Win.ISAPIThreadPool.pas …\internet\
Web.Win Sockets Web.Win.Sockets.pas …\internet\
WebAdapt WebAdapt.pas …\internet\
WebAppDbgAbout WebAppDbgAbout.pas …\internet\
WebAuto WebAuto.pas …\internet\
WebBrowserEx WebBrowserEx.pas …\internet\
WebCat WebCat.pas …\internet\
WebComp WebComp.pas …\internet\
WebContnrs WebContnrs.pas …\internet\
WebDisp WebDisp.pas …\internet\
WebFact WebFact.pas …\internet\
WebForm WebForm.pas …\internet\
WebModu WebModu.pas …\internet\
WebScript WebScript.pas …\internet\
WebScriptAS WebScriptAS.pas …\internet\
WebSess WebSess.pas …\internet\
WebSnapObjs WebSnapObjs.pas …\internet\
WebUsers WebUsers.pas …\internet\
XMLBrokr XMLBrokr.pas …\internet\
xmlutil xmlutil.pas …\internet\
Xmlxform Xmlxform.pas …\internet\
XSLProd XSLProd.pas …\internet\
ActnRes ActnRes.pas …\Property Editors\
ADOReg ADOReg.pas …\Property Editors\
BindCompBasePropEditor BindCompBasePropEditor.pas …\Property Editors\
BindCompDBReg BindCompDBReg.pas …\Property Editors\
BindCompDesign BindCompDesign.pas …\Property Editors\
BindCompDesigners BindCompDesigners.pas …\Property Editors\
BindCompDrag BindCompDrag.pas …\Property Editors\
BindCompDsnResStrs BindCompDsnResStrs.pas …\Property Editors\
BindCompEdit BindCompEdit.pas …\Property Editors\
BindCompExprEdit BindCompExprEdit.pas …\Property Editors\
BindCompFMXReg BindCompFMXReg.pas …\Property Editors\
BindCompNewStd BindCompNewStd.pas …\Property Editors\
BindCompProperties BindCompProperties.pas …\Property Editors\
BindCompReg BindCompReg.pas …\Property Editors\
BindCompVCLReg BindCompVCLReg.pas …\Property Editors\
BindMethodsFormU BindMethodsFormU.pas …\Property Editors\
BindOutputConvertersFormU BindOutputConvertersFormU.pas …\Property Editors\
BindVisualizers BindVisualizers.pas …\Property Editors\
CDSEdit CDSEdit.pas …\Property Editors\
ColEdit ColEdit.pas …\Property Editors\
ColnEdit ColnEdit.pas …\Property Editors\
DbActRes DbActRes.pas …\Property Editors\
DBClientActnRes DBClientActnRes.pas …\Property Editors\
DBColnEd DBColnEd.pas …\Property Editors\
DBOleEdt DBOleEdt.pas …\Property Editors\
DBReg DBReg.pas …\Property Editors\
DSAdd DSAdd.pas …\Property Editors\
DSDefine DSDefine.pas …\Property Editors\
DSDesign DSDesign.pas …\Property Editors\
FiltEdit FiltEdit.pas …\Property Editors\
FldLinks FldLinks.pas …\Property Editors\
HCtlEdit HCtlEdit.pas …\Property Editors\
IBConst IBConst.pas …\Property Editors\
IBCtrls IBCtrls.pas …\Property Editors\
IBDemoReg IBDemoReg.pas …\Property Editors\
IBEvnts IBEvnts.pas …\Property Editors\
IBProc32 IBProc32.pas …\Property Editors\
ImgEdit ImgEdit.pas …\Property Editors\
ItemEdit ItemEdit.pas …\Property Editors\
LMidReg LMidReg.pas …\Property Editors\
MaskProp MaskProp.pas …\Property Editors\
MaskText MaskText.pas …\Property Editors\
MidReg MidReg.pas …\Property Editors\
NewStdAc NewStdAc.pas …\Property Editors\
NodeEdit NodeEdit.pas …\Property Editors\
OCXReg OCXReg.pas …\Property Editors\
PicEdit PicEdit.pas …\Property Editors\
SBarEdit SBarEdit.pas …\Property Editors\
SqlEdit SqlEdit.pas …\Property Editors\
StFilSys StFilSys.pas …\Property Editors\
StrEdit StrEdit.pas …\Property Editors\
StringsEdit StringsEdit.pas …\Property Editors\
ValueEdit ValueEdit.pas …\Property Editors\
VclDBReg VclDBReg.pas …\Property Editors\
WideSQLEdit WideSQLEdit.pas …\Property Editors\
IdAboutVCL IdAboutVCL.pas …\Property Editors\Indy10\
IdAntiFreeze IdAntiFreeze.pas …\Property Editors\Indy10\
IdCoreDsnRegister IdCoreDsnRegister.pas …\Property Editors\Indy10\
IdCoreSelectionEditors IdCoreSelectionEditors.pas …\Property Editors\Indy10\
IdDsnCoreResourceStrings IdDsnCoreResourceStrings.pas …\Property Editors\Indy10\
IdDsnPropEdBindingVCL IdDsnPropEdBindingVCL.pas …\Property Editors\Indy10\
IdDsnRegister IdDsnRegister.pas …\Property Editors\Indy10\
IdDsnResourceStrings IdDsnResourceStrings.pas …\Property Editors\Indy10\
IdDsnSASLListEditorFormVCL IdDsnSASLListEditorFormVCL.pas …\Property Editors\Indy10\
IdRegister IdRegister.pas …\Property Editors\Indy10\
IdRegisterCore IdRegisterCore.pas …\Property Editors\Indy10\
System AnsiStrings System.AnsiStrings.pas …\rtl\common\
System Character System.Character.pas …\rtl\common\
System Classes System.Classes.pas …\rtl\common\
System Contnrs System.Contnrs.pas …\rtl\common\
System ConvUtils System.ConvUtils.pas …\rtl\common\
System DateUtils System.DateUtils.pas …\rtl\common\
System DebugUtils System.DebugUtils.pas …\rtl\common\
System Diagnostics System.Diagnostics.pas …\rtl\common\
System.Generics Collections System.Generics.Collections.pas …\rtl\common\
System.Generics Defaults System.Generics.Defaults.pas …\rtl\common\
System HelpIntfs System.HelpIntfs.pas …\rtl\common\
System IniFiles System.IniFiles.pas …\rtl\common\
System IOUtils System.IOUtils.pas …\rtl\common\
System Masks System.Masks.pas …\rtl\common\
System MaskUtils System.MaskUtils.pas …\rtl\common\
System Math System.Math.pas …\rtl\common\
System ObjAuto System.ObjAuto.pas …\rtl\common\
System Odbc System.Odbc.pas …\rtl\common\
System RegularExpressions System.RegularExpressions.pas …\rtl\common\
System RegularExpressionsAPI System.RegularExpressionsAPI.pas …\rtl\common\
System RegularExpressionsConsts System.RegularExpressionsConsts.pas …\rtl\common\
System RegularExpressionsCore System.RegularExpressionsCore.pas …\rtl\common\
System RTLConsts System.RTLConsts.pas …\rtl\common\
System Rtti System.Rtti.pas …\rtl\common\
System StdConvs System.StdConvs.pas …\rtl\common\
System StrUtils System.StrUtils.pas …\rtl\common\
System SyncObjs System.SyncObjs.pas …\rtl\common\
System TimeSpan System.TimeSpan.pas …\rtl\common\
System TypInfo System.TypInfo.pas …\rtl\common\
System UIConsts System.UIConsts.pas …\rtl\common\
System UITypes System.UITypes.pas …\rtl\common\
System VarCmplx System.VarCmplx.pas …\rtl\common\
System VarConv System.VarConv.pas …\rtl\common\
System WideStrings System.WideStrings.pas …\rtl\common\
System WideStrUtils System.WideStrUtils.pas …\rtl\common\
System.Win ComConst System.Win.ComConst.pas …\rtl\common\
System.Win ComObj System.Win.ComObj.pas …\rtl\common\
System.Win ComObjWrapper System.Win.ComObjWrapper.pas …\rtl\common\
System.Win ComServ System.Win.ComServ.pas …\rtl\common\
System.Win Crtl System.Win.Crtl.pas …\rtl\common\
System.Win Mtsobj System.Win.Mtsobj.pas …\rtl\common\
System.Win ObjComAuto System.Win.ObjComAuto.pas …\rtl\common\
System.Win Registry System.Win.Registry.pas …\rtl\common\
System.Win ScktComp System.Win.ScktComp.pas …\rtl\common\
System.Win StdVCL System.Win.StdVCL.pas …\rtl\common\
System.Win VCLCom System.Win.VCLCom.pas …\rtl\common\
System Zip System.Zip.pas …\rtl\common\
System ZLib System.ZLib.pas …\rtl\common\
System ZLibConst System.ZLibConst.pas …\rtl\common\
Macapi AppKit Macapi.AppKit.pas …\rtl\osx\
Macapi CocoaTypes Macapi.CocoaTypes.pas …\rtl\osx\
Macapi Consts Macapi.Consts.pas …\rtl\osx\
Macapi CoreFoundation Macapi.CoreFoundation.pas …\rtl\osx\
Macapi CoreGraphics Macapi.CoreGraphics.pas …\rtl\osx\
Macapi CoreServices Macapi.CoreServices.pas …\rtl\osx\
Macapi CoreText Macapi.CoreText.pas …\rtl\osx\
Macapi Foundation Macapi.Foundation.pas …\rtl\osx\
Macapi ImageIO Macapi.ImageIO.pas …\rtl\osx\
Macapi Mach Macapi.Mach.pas …\rtl\osx\
Macapi ObjCRuntime Macapi.ObjCRuntime.pas …\rtl\osx\
Macapi ObjectiveC Macapi.ObjectiveC.pas …\rtl\osx\
Macapi OCMarshal Macapi.OCMarshal.pas …\rtl\osx\
Macapi OpenGL Macapi.OpenGL.pas …\rtl\osx\
Macapi QuartzCore Macapi.QuartzCore.pas …\rtl\osx\
Macapi Security Macapi.Security.pas …\rtl\osx\
Macapi SystemConfiguration Macapi.SystemConfiguration.pas …\rtl\osx\
System.Mac CFUtils System.Mac.CFUtils.pas …\rtl\osx\
Posix ArpaInet Posix.ArpaInet.pas …\rtl\posix\
Posix Base Posix.Base.pas …\rtl\posix\
Posix Dirent Posix.Dirent.pas …\rtl\posix\
Posix Dlfcn Posix.Dlfcn.pas …\rtl\posix\
Posix Errno Posix.Errno.pas …\rtl\posix\
Posix Fcntl Posix.Fcntl.pas …\rtl\posix\
Posix Fnmatch Posix.Fnmatch.pas …\rtl\posix\
Posix Grp Posix.Grp.pas …\rtl\posix\
Posix Iconv Posix.Iconv.pas …\rtl\posix\
Posix Langinfo Posix.Langinfo.pas …\rtl\posix\
Posix Limits Posix.Limits.pas …\rtl\posix\
Posix Locale Posix.Locale.pas …\rtl\posix\
Posix NetDB Posix.NetDB.pas …\rtl\posix\
Posix NetIf Posix.NetIf.pas …\rtl\posix\
Posix NetinetIcmp6 Posix.NetinetIcmp6.pas …\rtl\posix\
Posix NetinetIn Posix.NetinetIn.pas …\rtl\posix\
Posix NetinetIp6 Posix.NetinetIp6.pas …\rtl\posix\
Posix NetinetTCP Posix.NetinetTCP.pas …\rtl\posix\
Posix Pthread Posix.Pthread.pas …\rtl\posix\
Posix Pwd Posix.Pwd.pas …\rtl\posix\
Posix Sched Posix.Sched.pas …\rtl\posix\
Posix Semaphore Posix.Semaphore.pas …\rtl\posix\
Posix Signal Posix.Signal.pas …\rtl\posix\
Posix StdDef Posix.StdDef.pas …\rtl\posix\
Posix Stdio Posix.Stdio.pas …\rtl\posix\
Posix Stdlib Posix.Stdlib.pas …\rtl\posix\
Posix String_ Posix.String_.pas …\rtl\posix\
Posix StrOpts Posix.StrOpts.pas …\rtl\posix\
Posix SysMman Posix.SysMman.pas …\rtl\posix\
Posix SysSelect Posix.SysSelect.pas …\rtl\posix\
Posix SysSocket Posix.SysSocket.pas …\rtl\posix\
Posix SysStat Posix.SysStat.pas …\rtl\posix\
Posix SysStatvfs Posix.SysStatvfs.pas …\rtl\posix\
Posix SysSysctl Posix.SysSysctl.pas …\rtl\posix\
Posix SysTime Posix.SysTime.pas …\rtl\posix\
Posix SysTimes Posix.SysTimes.pas …\rtl\posix\
Posix SysTypes Posix.SysTypes.pas …\rtl\posix\
Posix SysUio Posix.SysUio.pas …\rtl\posix\
Posix SysUn Posix.SysUn.pas …\rtl\posix\
Posix SysWait Posix.SysWait.pas …\rtl\posix\
Posix Termios Posix.Termios.pas …\rtl\posix\
Posix Time Posix.Time.pas …\rtl\posix\
Posix Unistd Posix.Unistd.pas …\rtl\posix\
Posix Utime Posix.Utime.pas …\rtl\posix\
Posix Wchar Posix.Wchar.pas …\rtl\posix\
Posix Wctype Posix.Wctype.pas …\rtl\posix\
Posix Wordexp Posix.Wordexp.pas …\rtl\posix\
SysInit SysInit.pas …\rtl\sys\
System.Internal ExcUtils System.Internal.ExcUtils.pas …\rtl\sys\
System.Internal MachExceptions System.Internal.MachExceptions.pas …\rtl\sys\
System.Internal StrHlpr System.Internal.StrHlpr.pas …\rtl\sys\
System.Internal Unwind System.Internal.Unwind.pas …\rtl\sys\
System.Internal Unwinder System.Internal.Unwinder.pas …\rtl\sys\
System.Internal VarHlpr System.Internal.VarHlpr.pas …\rtl\sys\
System System.pas …\rtl\sys\
System Sharemem System.Sharemem.pas …\rtl\sys\
System SimpleShareMem System.SimpleShareMem.pas …\rtl\sys\
System SysConst System.SysConst.pas …\rtl\sys\
System SysUtils System.SysUtils.pas …\rtl\sys\
System Types System.Types.pas …\rtl\sys\
System Variants System.Variants.pas …\rtl\sys\
System VarUtils System.VarUtils.pas …\rtl\sys\
Winapi AccCtrl Winapi.AccCtrl.pas …\rtl\win\
Winapi AclAPI Winapi.AclAPI.pas …\rtl\win\
Winapi ActiveX Winapi.ActiveX.pas …\rtl\win\
Winapi ADOInt Winapi.ADOInt.pas …\rtl\win\
Winapi AspTlb Winapi.AspTlb.pas …\rtl\win\
Winapi COMAdmin Winapi.COMAdmin.pas …\rtl\win\
Winapi CommCtrl Winapi.CommCtrl.pas …\rtl\win\
Winapi CommDlg Winapi.CommDlg.pas …\rtl\win\
Winapi ComSvcs Winapi.ComSvcs.pas …\rtl\win\
Winapi Cor Winapi.Cor.pas …\rtl\win\
Winapi CorError Winapi.CorError.pas …\rtl\win\
Winapi CorHdr Winapi.CorHdr.pas …\rtl\win\
Winapi Cpl Winapi.Cpl.pas …\rtl\win\
Winapi D2D1 Winapi.D2D1.pas …\rtl\win\
Winapi D3D10 Winapi.D3D10.pas …\rtl\win\
Winapi D3DX10 Winapi.D3DX10.pas …\rtl\win\
Winapi D3DX8 Winapi.D3DX8.pas …\rtl\win\
Winapi D3DX9 Winapi.D3DX9.pas …\rtl\win\
Winapi DDEml Winapi.DDEml.pas …\rtl\win\
Winapi Direct3D Winapi.Direct3D.pas …\rtl\win\
Winapi Direct3D8 Winapi.Direct3D8.pas …\rtl\win\
Winapi Direct3D9 Winapi.Direct3D9.pas …\rtl\win\
Winapi DirectDraw Winapi.DirectDraw.pas …\rtl\win\
Winapi DirectInput Winapi.DirectInput.pas …\rtl\win\
Winapi DirectMusic Winapi.DirectMusic.pas …\rtl\win\
Winapi DirectPlay8 Winapi.DirectPlay8.pas …\rtl\win\
Winapi DirectShow9 Winapi.DirectShow9.pas …\rtl\win\
Winapi DirectSound Winapi.DirectSound.pas …\rtl\win\
Winapi Dlgs Winapi.Dlgs.pas …\rtl\win\
Winapi DwmApi Winapi.DwmApi.pas …\rtl\win\
Winapi DX7toDX8 Winapi.DX7toDX8.pas …\rtl\win\
Winapi DxDiag Winapi.DxDiag.pas …\rtl\win\
Winapi DXFile Winapi.DXFile.pas …\rtl\win\
Winapi DXGI Winapi.DXGI.pas …\rtl\win\
Winapi DxgiFormat Winapi.DxgiFormat.pas …\rtl\win\
Winapi DxgiType Winapi.DxgiType.pas …\rtl\win\
Winapi DXTypes Winapi.DXTypes.pas …\rtl\win\
Winapi FlatSB Winapi.FlatSB.pas …\rtl\win\
Winapi GDIPAPI Winapi.GDIPAPI.pas …\rtl\win\
Winapi GDIPOBJ Winapi.GDIPOBJ.pas …\rtl\win\
Winapi GDIPUTIL Winapi.GDIPUTIL.pas …\rtl\win\
Winapi ImageHlp Winapi.ImageHlp.pas …\rtl\win\
Winapi Imm Winapi.Imm.pas …\rtl\win\
Winapi IpExport Winapi.IpExport.pas …\rtl\win\
Winapi IpHlpApi Winapi.IpHlpApi.pas …\rtl\win\
Winapi IpRtrMib Winapi.IpRtrMib.pas …\rtl\win\
Winapi IpTypes Winapi.IpTypes.pas …\rtl\win\
Winapi Isapi Winapi.Isapi.pas …\rtl\win\
Winapi Isapi2 Winapi.Isapi2.pas …\rtl\win\
Winapi KnownFolders Winapi.KnownFolders.pas …\rtl\win\
Winapi LZExpand Winapi.LZExpand.pas …\rtl\win\
Winapi Manipulations Winapi.Manipulations.pas …\rtl\win\
Winapi Mapi Winapi.Mapi.pas …\rtl\win\
Winapi Messages Winapi.Messages.pas …\rtl\win\
Winapi MMSystem Winapi.MMSystem.pas …\rtl\win\
Winapi MsInkAut Winapi.MsInkAut.pas …\rtl\win\
Winapi MsInkAut15 Winapi.MsInkAut15.pas …\rtl\win\
Winapi msxml Winapi.msxml.pas …\rtl\win\
Winapi Mtx Winapi.Mtx.pas …\rtl\win\
Winapi MultiMon Winapi.MultiMon.pas …\rtl\win\
Winapi Nb30 Winapi.Nb30.pas …\rtl\win\
Winapi ObjectArray Winapi.ObjectArray.pas …\rtl\win\
Winapi Ole2 Winapi.Ole2.pas …\rtl\win\
Winapi oleacc Winapi.oleacc.pas …\rtl\win\
Winapi OleCtl Winapi.OleCtl.pas …\rtl\win\
Winapi OleDB Winapi.OleDB.pas …\rtl\win\
Winapi OleDlg Winapi.OleDlg.pas …\rtl\win\
Winapi OpenGL Winapi.OpenGL.pas …\rtl\win\
Winapi Penwin Winapi.Penwin.pas …\rtl\win\
Winapi PropKey Winapi.PropKey.pas …\rtl\win\
Winapi PropSys Winapi.PropSys.pas …\rtl\win\
Winapi PsAPI Winapi.PsAPI.pas …\rtl\win\
Winapi Qos Winapi.Qos.pas …\rtl\win\
Winapi RegStr Winapi.RegStr.pas …\rtl\win\
Winapi RichEdit Winapi.RichEdit.pas …\rtl\win\
Winapi RtsCom Winapi.RtsCom.pas …\rtl\win\
Winapi ShellAPI Winapi.ShellAPI.pas …\rtl\win\
Winapi SHFolder Winapi.SHFolder.pas …\rtl\win\
Winapi ShlObj Winapi.ShlObj.pas …\rtl\win\
Winapi ShLwApi Winapi.ShLwApi.pas …\rtl\win\
Winapi StructuredQuery Winapi.StructuredQuery.pas …\rtl\win\
Winapi StructuredQueryCondition Winapi.StructuredQueryCondition.pas …\rtl\win\
Winapi TlHelp32 Winapi.TlHelp32.pas …\rtl\win\
Winapi TpcShrd Winapi.TpcShrd.pas …\rtl\win\
Winapi UrlMon Winapi.UrlMon.pas …\rtl\win\
Winapi UxTheme Winapi.UxTheme.pas …\rtl\win\
Winapi Wincodec Winapi.Wincodec.pas …\rtl\win\
Winapi Windows Winapi.Windows.pas …\rtl\win\
Winapi WinInet Winapi.WinInet.pas …\rtl\win\
Winapi Winsafer Winapi.Winsafer.pas …\rtl\win\
Winapi WinSock Winapi.WinSock.pas …\rtl\win\
Winapi Winsock2 Winapi.Winsock2.pas …\rtl\win\
Winapi WinSpool Winapi.WinSpool.pas …\rtl\win\
Winapi WinSvc Winapi.WinSvc.pas …\rtl\win\
Winapi WMF9 Winapi.WMF9.pas …\rtl\win\
Soap EncdDecd Soap.EncdDecd.pas …\soap\
Soap HTTPSOAPToPasBind Soap.HTTPSOAPToPasBind.pas …\soap\
Soap HTTPUtil Soap.HTTPUtil.pas …\soap\
Soap inquire_v1 Soap.inquire_v1.pas …\soap\
Soap IntfInfo Soap.IntfInfo.pas …\soap\
Soap InvConst Soap.InvConst.pas …\soap\
Soap Invoker Soap.Invoker.pas …\soap\
Soap InvokeRegistry Soap.InvokeRegistry.pas …\soap\
Soap OPConvert Soap.OPConvert.pas …\soap\
Soap OpConvertOptions Soap.OpConvertOptions.pas …\soap\
Soap OPToSOAPDomConv Soap.OPToSOAPDomConv.pas …\soap\
Soap OPToSOAPDomCustom Soap.OPToSOAPDomCustom.pas …\soap\
Soap Rio Soap.Rio.pas …\soap\
Soap SOAPAttach Soap.SOAPAttach.pas …\soap\
Soap SOAPAttachIntf Soap.SOAPAttachIntf.pas …\soap\
Soap SOAPConn Soap.SOAPConn.pas …\soap\
Soap SOAPConst Soap.SOAPConst.pas …\soap\
Soap SOAPDm Soap.SOAPDm.pas …\soap\
Soap SOAPDomConv Soap.SOAPDomConv.pas …\soap\
Soap SOAPEnv Soap.SOAPEnv.pas …\soap\
Soap SOAPHTTPClient Soap.SOAPHTTPClient.pas …\soap\
Soap SOAPHTTPDisp Soap.SOAPHTTPDisp.pas …\soap\
Soap SOAPHTTPPasInv Soap.SOAPHTTPPasInv.pas …\soap\
Soap SOAPHTTPTrans Soap.SOAPHTTPTrans.pas …\soap\
Soap SOAPLinked Soap.SOAPLinked.pas …\soap\
Soap SOAPMidas Soap.SOAPMidas.pas …\soap\
Soap SOAPPasInv Soap.SOAPPasInv.pas …\soap\
Soap TypeTrans Soap.TypeTrans.pas …\soap\
Soap UDDIHelper Soap.UDDIHelper.pas …\soap\
Soap WebBrokerSOAP Soap.WebBrokerSOAP.pas …\soap\
Soap WebNode Soap.WebNode.pas …\soap\
Soap WebServExp Soap.WebServExp.pas …\soap\
Soap.Win CertHelper Soap.Win.CertHelper.pas …\soap\
Soap WSDLBind Soap.WSDLBind.pas …\soap\
Soap WSDLIntf Soap.WSDLIntf.pas …\soap\
Soap WSDLItems Soap.WSDLItems.pas …\soap\
Soap WSDLLookup Soap.WSDLLookup.pas …\soap\
Soap WSDLNode Soap.WSDLNode.pas …\soap\
Soap WSDLPub Soap.WSDLPub.pas …\soap\
Soap WSDLSOAP Soap.WSDLSOAP.pas …\soap\
Soap WSILIntf Soap.WSILIntf.pas …\soap\
Soap XSBuiltIns Soap.XSBuiltIns.pas …\soap\
MessageDigest_5 MessageDigest_5.pas …\soap\wsdlimporter\
UDDIHlprDesign UDDIHlprDesign.pas …\soap\wsdlimporter\
WSDLCppWriter WSDLCppWriter.pas …\soap\wsdlimporter\
WSDLImpConst WSDLImpConst.pas …\soap\wsdlimporter\
WSDLImpWriter WSDLImpWriter.pas …\soap\wsdlimporter\
WSDLModelIntf WSDLModelIntf.pas …\soap\wsdlimporter\
WSDLPasWriter WSDLPasWriter.pas …\soap\wsdlimporter\
XMLSchemaHelper XMLSchemaHelper.pas …\soap\wsdlimporter\
BCCStrs BCCStrs.pas …\ToolsAPI\
BRCCStrs BRCCStrs.pas …\ToolsAPI\
CodeTemplateAPI CodeTemplateAPI.pas …\ToolsAPI\
CommonOptionStrs CommonOptionStrs.pas …\ToolsAPI\
CPPCOMMONStrs CPPCOMMONStrs.pas …\ToolsAPI\
DCCStrs DCCStrs.pas …\ToolsAPI\
DeploymentAPI DeploymentAPI.pas …\ToolsAPI\
DesignConst DesignConst.pas …\ToolsAPI\
DesignEditors DesignEditors.pas …\ToolsAPI\
DesignerTypes DesignerTypes.pas …\ToolsAPI\
DesignIntf DesignIntf.pas …\ToolsAPI\
DesignMenus DesignMenus.pas …\ToolsAPI\
DesignWindows DesignWindows.pas …\ToolsAPI\
EditIntf EditIntf.pas …\ToolsAPI\
ExptIntf ExptIntf.pas …\ToolsAPI\
FileHistoryAPI FileHistoryAPI.pas …\ToolsAPI\
FileIntf FileIntf.pas …\ToolsAPI\
ILinkStrs ILinkStrs.pas …\ToolsAPI\
IStreams IStreams.pas …\ToolsAPI\
PaletteAPI PaletteAPI.pas …\ToolsAPI\
PlatformAPI PlatformAPI.pas …\ToolsAPI\
PropertyCategories PropertyCategories.pas …\ToolsAPI\
PropInspAPI PropInspAPI.pas …\ToolsAPI\
StructureViewAPI StructureViewAPI.pas …\ToolsAPI\
TasmStrs TasmStrs.pas …\ToolsAPI\
TlibStrs TlibStrs.pas …\ToolsAPI\
ToolIntf ToolIntf.pas …\ToolsAPI\
ToolsAPI ToolsAPI.pas …\ToolsAPI\
ToolWnds ToolWnds.pas …\ToolsAPI\
TreeIntf TreeIntf.pas …\ToolsAPI\
VCLEditors VCLEditors.pas …\ToolsAPI\
VCLSprigs VCLSprigs.pas …\ToolsAPI\
VirtIntf VirtIntf.pas …\ToolsAPI\
colorpp colorpp.pas …\vcl\
CtlConsts CtlConsts.pas …\vcl\
CtlPanel CtlPanel.pas …\vcl\
fontpp fontpp.pas …\vcl\
picpp picpp.pas …\vcl\
StdMain StdMain.pas …\vcl\
stringpp stringpp.pas …\vcl\
Vcl ABAccessibility Vcl.ABAccessibility.pas …\vcl\
Vcl ActnColorMaps Vcl.ActnColorMaps.pas …\vcl\
Vcl ActnCtrls Vcl.ActnCtrls.pas …\vcl\
Vcl ActnList Vcl.ActnList.pas …\vcl\
Vcl ActnMan Vcl.ActnMan.pas …\vcl\
Vcl ActnMenus Vcl.ActnMenus.pas …\vcl\
Vcl ActnPopup Vcl.ActnPopup.pas …\vcl\
Vcl AppEvnts Vcl.AppEvnts.pas …\vcl\
Vcl AxCtrls Vcl.AxCtrls.pas …\vcl\
Vcl BandActn Vcl.BandActn.pas …\vcl\
Vcl ButtonGroup Vcl.ButtonGroup.pas …\vcl\
Vcl Buttons Vcl.Buttons.pas …\vcl\
Vcl CaptionedDockTree Vcl.CaptionedDockTree.pas …\vcl\
Vcl CategoryButtons Vcl.CategoryButtons.pas …\vcl\
Vcl CheckLst Vcl.CheckLst.pas …\vcl\
Vcl Clipbrd Vcl.Clipbrd.pas …\vcl\
Vcl CmAdmCtl Vcl.CmAdmCtl.pas …\vcl\
Vcl ColorGrd Vcl.ColorGrd.pas …\vcl\
Vcl ComCtrls Vcl.ComCtrls.pas …\vcl\
Vcl ComStrs Vcl.ComStrs.pas …\vcl\
Vcl Consts Vcl.Consts.pas …\vcl\
Vcl Controls Vcl.Controls.pas …\vcl\
Vcl CustomizeDlg Vcl.CustomizeDlg.pas …\vcl\
Vcl DdeMan Vcl.DdeMan.pas …\vcl\
Vcl Dialogs Vcl.Dialogs.pas …\vcl\
Vcl Direct2D Vcl.Direct2D.pas …\vcl\
Vcl DockTabSet Vcl.DockTabSet.pas …\vcl\
Vcl ExtActns Vcl.ExtActns.pas …\vcl\
Vcl ExtCtrls Vcl.ExtCtrls.pas …\vcl\
Vcl ExtDlgs Vcl.ExtDlgs.pas …\vcl\
Vcl FileCtrl Vcl.FileCtrl.pas …\vcl\
Vcl Forms Vcl.Forms.pas …\vcl\
Vcl Graphics Vcl.Graphics.pas …\vcl\
Vcl GraphUtil Vcl.GraphUtil.pas …\vcl\
Vcl Grids Vcl.Grids.pas …\vcl\
Vcl HtmlHelpViewer Vcl.HtmlHelpViewer.pas …\vcl\
Vcl.Imaging GIFConsts Vcl.Imaging.GIFConsts.pas …\vcl\
Vcl.Imaging GIFImg Vcl.Imaging.GIFImg.pas …\vcl\
Vcl.Imaging JConsts Vcl.Imaging.JConsts.pas …\vcl\
Vcl.Imaging jpeg Vcl.Imaging.jpeg.pas …\vcl\
Vcl.Imaging pngimage Vcl.Imaging.pngimage.pas …\vcl\
Vcl.Imaging pnglang Vcl.Imaging.pnglang.pas …\vcl\
Vcl ImgList Vcl.ImgList.pas …\vcl\
Vcl IMouse Vcl.IMouse.pas …\vcl\
Vcl ListActns Vcl.ListActns.pas …\vcl\
Vcl Mask Vcl.Mask.pas …\vcl\
Vcl Menus Vcl.Menus.pas …\vcl\
Vcl MPlayer Vcl.MPlayer.pas …\vcl\
Vcl OleConst Vcl.OleConst.pas …\vcl\
Vcl OleCtnrs Vcl.OleCtnrs.pas …\vcl\
Vcl OleCtrls Vcl.OleCtrls.pas …\vcl\
Vcl OleServer Vcl.OleServer.pas …\vcl\
Vcl Outline Vcl.Outline.pas …\vcl\
Vcl PlatformDefaultStyleActnCtrls Vcl.PlatformDefaultStyleActnCtrls.pas …\vcl\
Vcl Printers Vcl.Printers.pas …\vcl\
Vcl Ribbon Vcl.Ribbon.pas …\vcl\
Vcl RibbonActnCtrls Vcl.RibbonActnCtrls.pas …\vcl\
Vcl RibbonActnMenus Vcl.RibbonActnMenus.pas …\vcl\
Vcl RibbonConsts Vcl.RibbonConsts.pas …\vcl\
Vcl RibbonGalleryBar Vcl.RibbonGalleryBar.pas …\vcl\
Vcl RibbonLunaStyleActnCtrls Vcl.RibbonLunaStyleActnCtrls.pas …\vcl\
Vcl RibbonObsidianStyleActnCtrls Vcl.RibbonObsidianStyleActnCtrls.pas …\vcl\
Vcl RibbonSilverStyleActnCtrls Vcl.RibbonSilverStyleActnCtrls.pas …\vcl\
Vcl RibbonStyleActnCtrls Vcl.RibbonStyleActnCtrls.pas …\vcl\
Vcl.Samples Calendar Vcl.Samples.Calendar.pas …\vcl\
Vcl.Samples DirOutln Vcl.Samples.DirOutln.pas …\vcl\
Vcl.Samples Gauges Vcl.Samples.Gauges.pas …\vcl\
Vcl.Samples Spin Vcl.Samples.Spin.pas …\vcl\
Vcl ScreenTips Vcl.ScreenTips.pas …\vcl\
Vcl ShadowWnd Vcl.ShadowWnd.pas …\vcl\
Vcl.Shell ShellConsts Vcl.Shell.ShellConsts.pas …\vcl\
Vcl.Shell ShellCtrls Vcl.Shell.ShellCtrls.pas …\vcl\
Vcl ShellAnimations Vcl.ShellAnimations.pas …\vcl\
Vcl StdActnMenus Vcl.StdActnMenus.pas …\vcl\
Vcl StdActns Vcl.StdActns.pas …\vcl\
Vcl StdCtrls Vcl.StdCtrls.pas …\vcl\
Vcl StdStyleActnCtrls Vcl.StdStyleActnCtrls.pas …\vcl\
Vcl Styles Vcl.Styles.pas …\vcl\
Vcl SvcMgr Vcl.SvcMgr.pas …\vcl\
Vcl TabNotBk Vcl.TabNotBk.pas …\vcl\
Vcl Tabs Vcl.Tabs.pas …\vcl\
Vcl ThemedActnCtrls Vcl.ThemedActnCtrls.pas …\vcl\
Vcl Themes Vcl.Themes.pas …\vcl\
Vcl ToolWin Vcl.ToolWin.pas …\vcl\
Vcl.Touch GestureConsts Vcl.Touch.GestureConsts.pas …\vcl\
Vcl.Touch GestureCtrls Vcl.Touch.GestureCtrls.pas …\vcl\
Vcl.Touch GestureMgr Vcl.Touch.GestureMgr.pas …\vcl\
Vcl.Touch Gestures Vcl.Touch.Gestures.pas …\vcl\
Vcl.Touch Keyboard Vcl.Touch.Keyboard.pas …\vcl\
Vcl.Touch KeyboardTypes Vcl.Touch.KeyboardTypes.pas …\vcl\
Vcl ValEdit Vcl.ValEdit.pas …\vcl\
Vcl WinHelpViewer Vcl.WinHelpViewer.pas …\vcl\
Vcl XPActnCtrls Vcl.XPActnCtrls.pas …\vcl\
Vcl XPMan Vcl.XPMan.pas …\vcl\
Vcl XPStyleActnCtrls Vcl.XPStyleActnCtrls.pas …\vcl\
vclhlpr vclhlpr.pas …\vcl\
DateTimeVisualizer DateTimeVisualizer.pas …\Visualizers\
StdStringVisualizer StdStringVisualizer.pas …\Visualizers\
StringListVisualizer StringListVisualizer.pas …\Visualizers\
Xml adomxmldom Xml.adomxmldom.pas …\xml\
Xml DTDSchema Xml.DTDSchema.pas …\xml\
Xml.Internal AbnfUtils Xml.Internal.AbnfUtils.pas …\xml\
Xml.Internal AdomCore_4_3 Xml.Internal.AdomCore_4_3.pas …\xml\
Xml.Internal CodecUtilsWin32 Xml.Internal.CodecUtilsWin32.pas …\xml\
Xml.Internal EncodingUtils Xml.Internal.EncodingUtils.pas …\xml\
Xml.Internal LangUtils Xml.Internal.LangUtils.pas …\xml\
Xml.Internal ParserUtilsWin32 Xml.Internal.ParserUtilsWin32.pas …\xml\
Xml.Internal TreeUtils Xml.Internal.TreeUtils.pas …\xml\
Xml.Internal UriUtils Xml.Internal.UriUtils.pas …\xml\
Xml.Internal WideStringUtils Xml.Internal.WideStringUtils.pas …\xml\
Xml.Internal XmlRulesUtils Xml.Internal.XmlRulesUtils.pas …\xml\
Xml.Win msxmldom Xml.Win.msxmldom.pas …\xml\
Xml XDRSchema Xml.XDRSchema.pas …\xml\
Xml XMLConst Xml.XMLConst.pas …\xml\
Xml XMLDataToSchema Xml.XMLDataToSchema.pas …\xml\
Xml XMLDoc Xml.XMLDoc.pas …\xml\
Xml xmldom Xml.xmldom.pas …\xml\
Xml XMLIniFile Xml.XMLIniFile.pas …\xml\
Xml XMLIntf Xml.XMLIntf.pas …\xml\
Xml XMLSchema Xml.XMLSchema.pas …\xml\
Xml XMLSchema99 Xml.XMLSchema99.pas …\xml\
Xml XMLSchemaTags Xml.XMLSchemaTags.pas …\xml\
Mxarrays Mxarrays.pas …\xtab\
MXBUTTON MXBUTTON.pas …\xtab\
MXCOMMON MXCOMMON.pas …\xtab\
Mxconsts Mxconsts.pas …\xtab\
MXDB MXDB.pas …\xtab\
MXDCONST MXDCONST.pas …\xtab\
MXDCUBE MXDCUBE.pas …\xtab\
MXDIMEDT MXDIMEDT.pas …\xtab\
MXDSQL MXDSQL.pas …\xtab\
MXDSSQRY MXDSSQRY.pas …\xtab\
MXGRAPH MXGRAPH.pas …\xtab\
MXGRID MXGRID.pas …\xtab\
MXPBAR MXPBAR.pas …\xtab\
MXPIVSRC MXPIVSRC.pas …\xtab\
MXQEDCOM MXQEDCOM.pas …\xtab\
MXQPARSE MXQPARSE.pas …\xtab\
MXREG MXREG.pas …\xtab\
Mxstore Mxstore.pas …\xtab\
MXTABLES MXTABLES.pas …\xtab\

Posted in Delphi, Development | 1 Comment »

Deep Object Comparison Delphi – Stack Overflow

Posted by jpluimers on 2011/11/10

Last week there was an interesting question on Deep Object Comparison Delphi at Stack Overflow.

Two nice answers:

  1. Recursive new style RTTI based solution (comparing all data)
  2. Streaming using OmniXML and comparing the output (comparing only the relevant data)

–jeroen

Posted in Delphi, Development, Software Development | Leave a Comment »

Allocating 4Gb+ of memory in x64 using Delphi XE2 Update 2: Unofficial fix for QC#100726 …

Posted by jpluimers on 2011/11/09

If you are creating x64 applications using Delphi XE2, have Update 2 installed, and are (potentially) allocating more than 4Gb of memory (QC report 100726), then you need the Unofficial fix for QC#100726, or use the latest version of FastMM (see below).

If you use Delphi XE2 (original release) or Update 1, then you don’t have problems in this scenario.

Thanks to FastMM author Pierre le Riche for providing this fix so quickly.

Note that the latest 4.x release of FastMM is now FastMM 4.99 and contains the same fix.

–jeroen

Via: Embarcadero Discussion Forums: Unofficial fix for QC#100726 ….

Posted in Delphi, Development, Mobile Development, Software Development | 4 Comments »

EKON15 download materials on-line at bo.codeplex.com

Posted by jpluimers on 2011/11/03

I uploaded the EKON15 conference download materials to http://bo.codeplex.com.

The changeset you are after is http://bo.codeplex.com/SourceControl/changeset/changes/70872

 

It contains most of the materials for the Delphi Tage and the Delphi Live conferences too, though I will upload the missing pieces soon.

–jeroen

Posted in Conferences, Delphi, Development, EKON, Event | Leave a Comment »

You need at least 5Gb free space for Update 2 for #Delphi XE2, C++Builder XE2 and RAD Studio XE2

Posted by jpluimers on 2011/11/02

Yesterday, Update 2 for Delphi XE2 / C++ Builder XE2 / RAD Studio XE2 became available for download.

A few notes from my experience upgrading from a full RAD Studio XE2 Update 1 install (from ISO):

  • You need at least 5 Gb free disk space to install Update 2.
    The installer won’t warn you in advance: it will indicate it needs more disk space when it cannot update the first file that does not fit.
    In my case (VMware image of 40 Gb with 4 Gb free), that was not enough.
  • It will leave a 300 Mb directory at %temp%\radstudio_xe2_update2_download
  • Downloads are available from the altd http and ftpd ftp servers for registrered users at about 300 kilobyte per second each.
    Expect a total download time of at least:

    1. 15 minutes for the 300 Mb XE2 Update 2,
    2. 90 minutes for the complete 2.5 Gb XE2 install ISO that includes Update 2,
    3. 40 minutes for the 800 Mb XE2 Help Update 1,
    4. 20 minutes for the 350 Mb RADPHP XE2 Update 2.
  • The Update 2 install will wait a very long time in the “Validating” phase. Just be patient, it will get there in the end.
  • Though the  Help Update 1 is a lot bigger download, you usually only install one language and then it needs around half a gigabyte.

There are a ton of changes (154 changes files in the C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\source directory tree alone) including some of the things I came across that now have been fixed:

  1. warnings about duplicate resources when including MidasLib
  2. refreshing of BindingList
  3. when the FireMonkey designer is visible, Alt-key combinations now work again

–jeroen

Via: Update 2 for Delphi XE2, C++Builder XE2 and RAD Studio XE2 now available – DelphiFeeds.com.

Posted in Delphi, Delphi XE2, Development, Software Development | 8 Comments »

Delphi: solution for “How can I find all the units in my Delphi app?” (via Stack Overflow)

Posted by jpluimers on 2011/11/01

Delphi Tricks (from Chris Hesik, see link below) to show which units are compiled into an app:

  • Use the modules view, this will show you what units (and source files!) the debugger knows of for your modules.
  • Use the –depends switch on the commandline: this will output a .d file listing all the .dcus and .dcps for your modules.

–jeroen

Via: debugging – How can I find all the units in my Delphi app? – Stack Overflow.

Posted in Delphi, Development, Software Development | Leave a Comment »

 
Follow

Get every new post delivered to your Inbox.

Join 430 other followers