Converting dxGrid to cxGrid - delphi

I'm converting existing database driven application from D7 to D2009, therefore I won't be able to use dxGrids anymore. Is there any automatic way to convert dxGrid components to cxGrids? If not, what would you suggest me in order to gain time converting them manually?

Here is a issue on the Dev Express site that address this issue
www.devexpress.com/issue=CQ59375
Excerpt:
In brief, you should perform the
following steps to convert your
current project:
1) Install both versions of the
ExpressQuantumGrid (v3 and v6) for
Delphi6; 2) Convert your old grid's
layout to the latest product version
(please refer to the "Converting to
ExpressQuantumGrid" topic in the
ExpressQuantumGrid's documentation to
find more information on this
subject); 3) Adjust your code to use
the latest product version; 4) Install
the latest version of the
ExpressQuantumGrid (v6) for Delphi
2007; 5) Use the converted project in
Delphi 2007.
From the help file that they refer to:
ExpressQuantumGrid provides an Import
dialog at design time for importing
settings from third-party grid
controls and converting them to the
native properties of the
ExpressQuantumGrid. Three types of
grid components can be imported to
ExpressQuantumGrid:
· ExpressQuantumGrid3 (TdxDBGrid) and
ExpressQuantumGrid3 Layout
(TdxDBGridLayout)
· standard TDBGrid
· W2W InfoPowerGrid 3000 (TwwDBGrid)

ExpressQuantumGrid by VCL may have the migration support you need.

Related

How to push the contents of a datatable to a powerpoint slide using C# 2.0

I have a powerpoint template where the slide should get populated with the contents of a C# datatable. Is there a way to achieve this?
I'm writing here to confirm that Microsoft.Office.Interop library can be used to perform operations read/write operations on Powerpoint and Excel using C# and it is supported on 2.0 framework and higher versions whereas OpenXML package can be used only with versions 3.5 and higher.
Another Third part package Aspose is also an additional option.
Please make use of this one if helpful.
Thanks.

How to use ant-design-pro components in ant-design react app?

I have created react app with create-react-app and used ant-design components, as the project becomes bigger, I need to use some awesome components from ant-design-pro.
Is there any way to integrate ant-design-pro components in existing ant-design project?
I have tried to import and use #ant-design/pro-layout but didn't work for me.
For V4 refer to Upgrade to V4, check Replace BasicLayout if you use #ant-design/pro-layout.
For single components use npm install ant-design-pro#2.3.2 and import components for your needs:
import Ellipsis from 'ant-design-pro/lib/Ellipsis';
Demo:
Welcome to Stack Overflow!
It seems that the ant-design team chose to integrate ant-design-pro components directly into antd.
The version 2.3.0 of ant-design-pro was the latest version of the library that you could use as a component library. (source: their changelog).
You can probably still install that version (here's the documentation to do so).
They recently released the v4 of ant-design-pro and I'm not entirely sure whether you can install the components stand-alone or not.
However, a lot of components from ant-design-pro are now maintained directly inside ant design, as you can see here:
In the next version of Pro, we will gradually remove all the components that will be added to the Ant Design, which are under development:
...
These components will be more fully supported and maintained in Ant Design, and Pro will focus on Layout and scaffolding.

enterprise architect bad characters encoding

I am using EA 12.0 Corporate edition Built 1215 - Unicode with database version 4.01 and I have the following problem.
When I type one of theses characters: "ě č ř" and then save and reopen diagram the characters are replaced by e c r. Same thing happens if I just copy element with these characters (shown on example image bellow).
Here are more information:
Doesn't matter where are the characters typed. It could be at notes, properties, model, package, diagram, element... just anywhere
It happens when diagram is reopened or the element is just copied.
Doesn't matter if it is new project or existing
I tried different versions of EA (11, 12.1, 13) and it also has no effect
Doesn't matter if using "JET 4.0" (Options > general > "Use JET 4.0 - requires restart")
I have to use EA, so workaround using different program will not help.
Thank you for any information, any help is appreciated.
example image
I think you not only have to turn the flag Use Jet 4.0 on, but you also need a 4.0 startermodel.
Now you are probably using the right driver on the wrong (v3.5) database.
IIRC you can download one from the Sparx website.
I had the same problem and all you have to do is to change your non-Unicode language Windows preference to your local.

How to handle project specific components in Delphi?

Let's say we have a team that works on many different projects. Each team member uses different set of visual/non-visual controls/components during it's development cycle. Since Delphi requires each component to be compiled and installed globally in the IDE, how to manage this situation while working with project which was started by the other team member?
It would be great if I could checkout the sources of a project from the version control and have the ability to compile it immediately. I don't care or sometimes don't know what visual or non-visual components are required for this project, I guess they all should be included in the project sources.
Maybe there are some tools which could read main project file or directory and compile/install all the needed components on project loading (and uninstall them when project is closed)?
How do you handle this issue in Delphi?
In our company, we have the same problem.
We solve this by forcing everyone to have all necessary library paths added to their delphi ide.
We are using an additional sdk/framwork repository which containins all components/sdks/frameworks of everyone .
We keep a single text file, listing all libs with its version, install infos, etc.
Everyone checks their wanted libraries, so we do not have double libraries or different versions.
Since we all work under Windows and since Delphi keeps its paths and (afaik) installed-components informations in the registry, we extracted these informations.
We store for each used delphi version a .reg file within the sdk repository trunk.
So, if someone changes a framework, he updates the informations for everyone in the .reg files and commits it.
now, if someone wants to setup their dev-machine, they check-out the sdk, adds the e.g. xe2.reg informations to their registry, then check out the project and ... tada. compiling.
We have not tried to extract the "installed components" packages. thats on our to-do list.
An alternative would be to keep a batch file for building and installing all sdk packages at once. But i do not know if installing components via commandline is possible in delphi.
Something like the JEDI installer would be nice. The installer detects installed Delphi versions and builds & installs everything nicely.
A freely configurable version would be nice, so add all sdks -> install on each version.. perfect.
Anyone who wants to compile a given project must first install any components that project is using. There is no getting around that, unless the project directly includes the components source code and instantiates the components in code instead of using a DFM. AFAIK, there is no IDE tool that will automated component (un)installation on a per-project basis for you.
It's very wise to constraint which components and libraries that will be used by your team. If each member decide which component they will use, your final executable or packages will grow a lot and you can have some incompatibilities between libraries.
Besides, you can have extra costs buying and updating libraries that are very similar. Remember that each time Delphi is updated, you should buy new licences from most of that libraries.
So the best approach is:
ask which libraries each developer are using and discuss with them the real need of each one;
catalog those library required and install them on the machine that you will compile your final code;

How to use project version information inside a Delphi application?

I use Project Options / Version to manage the version info (N.N.N.N format).
Anyway inside my project I duplicate those info.
So if in project options I am working on release 2.4.3.178
inside my application I have 4 integer variables that hold the 4 numbers.
I manually set them
Major := 2;
Minor := 4;
Release := 3;
Build := 178;
The reason of this is simple: I have licensing based on version number. So if the user buys release "2.4" it is not allowed to upgrade to version "3.0".
But if I rely on project version info the user can (with Resource Hacker tools) change the version info and therefore "activate" the product.
The user cannot change the 4 variables in the same way (not as easily at least).
This works but forces me duplicate the info.
Could you suggest a better approach?
Otherwise said: is there a way to write the version info using the data I write in those 4 variables. Something like in Post Build Events, but how do I pass data to post build events?
You'd need a pre-build event rather than a post-build event since you'd want to get the .res file built before linking.
I do something very similar with a simple Perl script that reads an include file (.inc) containing constant declarations of the version numbers. I read them in using a regex and then create my .rc file which I pass to brcc32. It's all invoked as a pre-build action.
Since you're on Delphi-XE and have Final Builder, why don't you put it to good use and make your "final" build from it? It can give a very nice solution to the version number problem, and can do a lot more.
Here's how I'd do it.
Set up a small INI file that holds the relevant parts of the version information.
Optionally make a small Delphi forms application that reads the version number from the INI files and gives you a chance to change it. When changes are saved to the INI file, the delphi application should automatically generate a small Delphi PAS file that defines the constants!
Create a FinalBuilder project that does the following:
Calls your Delphi exe to set up version number. You'll be in charge of changing whatever needs changing, and this is probably appropriate since your licensing scheme depends on version information.
Set up a few project variables to hold the version information numbers
Add "Read INI file" actions to read the version information from the ini files into your project variables.
(optional) Build the unit test project, if you have one.
(optional) Call the unit test project.
Add a "build Delphi project" action, set it up to build your project using whatever options you need. Add a small "Before" script to set up the version information numbers to what you've got in the project variables you just read from the INI file.
(optional) create setup packages using whatever tool you use.
(optional) upload those setup packages to a website.
In other words, take the opportunity to start using Final Builder.
Moving your version numbers into code is also easy to get around.
One way to pass the information is to generate a version.rc file programmatically (you write a tiny build tool yourself using delphi or a scripting language of your choice), and link the resources to the program, instead of using the built in version-info feature.
Your question seems to be fundamentally a matter of preventing the user from modifying (easily) the version number once you have determined it.
So my suggestion is that you encrypt the version number and you use the encrypted version, instead of the version in the VersionInfo structure.
I have used DCPCRYPT for things like this. But if you hope to be hacker-proof let me just say this; Anything you can do, hackers can undo. If you want to be more secure, you will also need to tamper proof your whole application. There are commercial tamper proofing solutions but none work fabulously out of the box with Delphi.

Resources