Where is the Component Toolbar configuration data stored in Delphi XE4? - delphi

I'm trying to customize the appearance of the Component Toolbar pages within Delphi XE4. I clicked on Tools > Options > Component Toolbar
I highlighted Data Access and moved it up underneath Standard and clicked OK. However it still shows up in the IDE Tool Palette in the original location underneath Samples.
Ray Konopka distributes a utility that moves all the Raize components to the top of the list in the Tool Palette so there's got to be a config file somewhere that I can tweek so the pages and components are in the order I'd like them to be.
Where can I find this file?

Looking at Delphi XE, it is stored in the key HKEY_CURRENT_USER\Software\Embarcadero\BDS\8.0\ToolForm\Mapping(Default), so I guess that for Delphi XE4, it will be HKEY_CURRENT_USER\Software\Embarcadero\BDS\11.0\ToolForm\Mapping(Default). To read this key, this answer should help : How to read Default Value of Registry Key

Related

Delphi 11 theme export

I have recently installed RAD Studio 11 on a new VM. I have a huge active project in Delphi 10.2 in a different VM, that among other things uses themes. Migrating the D10.2 project to D11 is not an option right now. But I'd like to export the Windows 11 themes from the D11 IDE to use in the D10.2 project if that's possible. So far I haven't found a way to do the export. Am I missing something in the IDE, or is a 3rd-party tool available to do this? Or are the theme definitions in files stuck off in a folder somewhere that I'm not finding? Thanks.
OK, the downloaded .zip files containing the styles for D11 are stored in C:\Users\<user>\Documents\Embarcadero\Studio\22.0\CatalogRepository\<style name>, and the .vsf files from them are copied to the C:\Users\<user>\Documents\Embarcadero\Studio\19.0\Styles folder for D10.2. Restart the IDE and they show up in the list of available styles.
However, as David and Uwe noted, they don't work 100% as-is. They almost do - everything appears to work fine except forms with borderstyles that include a non-client title bar. On those forms, there's a large "X" in the middle of the title bar and a off-color square box on the left of that title bar underneath the form's icon (or underneath the title text for toolwindows without an icon.) Also, a few 3rd-party controls aren't quite right (TMS TAdvSpinEdits paint their up/down arrows wrong, etc.) These may be fixable with one of the style editors out there, or at least give a basis from which to create a new style .vsf that's D10.2 compatible. Or I can spend the money to get the D10.2 W11 styles pre-done from one of the styles vendors.

Can we use Popupmenu in FMX?

I am developing a mobile app in FMX where i need Popupmenu but it is showing disable in Tool Palette i cant use it but in VCL its enabled in Tool Palette and can use it. I just want to know if Firemonkey supports Popupmenu or my installation is having problems or we have to use other tools instead of Popupmenu in FMX? or what else can I do?
and actually i opened one VCL project and copied popupmenu from there to FMX and wrote code on one button and that code is
procedure TFRM_Party.BTN_Party_OptionClick(Sender: TObject);
begin
PopupMenu1.Popup(10,10);
PopupMenu1.Parent := Self;
end;
this code is not showing any error and also not performing also.
what to do? anybody having idea?
The short answer to your question is "Yes", you ought to be able to use the FMX version of TPopupMenu in a project created from File | New |Multi-Device Application in the IDE. If you can't find the FMX TPopupMenu on the Component Palette, something must be wrong with your Delphi install. I'm not quite sure what you mean when you say that it's "disabled" - components are usually either on the Component Palette or not, I don't recall seeing one looking disabled there.
You don't say in your question which version of Delphi you are using, but if it has FireMonkey at all, AFAIK it definitely ought to have the FMX version of TPopupMenu.
In Delphi 10.2 Seattle, for example, the FMX TPopupMenu appears on the "Standard" tab of the component palette, and is contained in the source unit FMX.Menus along with TMenuBar and TMainMenu, amongst others.
If you go to Component | Install packages in the IDE, the pop-up should show Embarcadero FMX Standard Components in the list, which is the file dclfmxstd250.bpl in the bin folder of your Delphi install. If that package isn't listed, that explains why you can't find the FMX TPopupMenu, but if that's the case for you, your Delphi ought to be lacking a lot more FMC components besides TPopupMenu. However, it should be easily solved by installing the .bpl file (or equivalent in your Delphi version). If the package is there, clicking the Components button to the bottom right of the pop-up should bring up the entire list of FXM standard components (which in my case does include TPopupMenu).
If your Delphi does include the Embarcadero FMX Standard Components but is still lacking TPopupMenu, you might try creating a new Package, adding FMX.Menus.pas to it and compiling and installing it in the IDE.
BTW, although it is possible to set up a combined FMX + VCL project (Google for how), just because you might be able to put a VCL TPopupMenu on an FMX Form doesn't mean that it's going to work.
Components are Grayed if you can't use its on current OS(your current choice in top combobox)

Where should I store IDE component editor user preferences?

I'm writing a component editor for the Delphi 10 Seattle IDE which has some form layout customization, such as re-sizing the form, positioning it, splitters to re-side panels, etc. I would like to save these settings so that each time the user opens this editor, it opens in the same layout they last left it.
I'm assuming the location to save such settings should reside somewhere within the HKCU section of the registry, along-side the specific Delphi IDE version settings.
Where in the registry should I save such settings?
After digging further into the registry, I'm pretty sure I found it.
HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\17.0\Property Editors\
It appears that other property and component editors keep their properties here, for example the TActionList. There are traces of editors storing their dimensions in this node.

Move selected text to right/left

How to move selected source text to left or right in Delphi 2007 code editor? I need short key command. Is it possible at all in Delphi 2007? How about other versions? Is it possible to manage this with any additional tools?
You can indent/outdent (unindent) selected text in the Code Editor with the default keymapping using Ctrl+Shift+I (Indent) and Ctrl+Shift+U (Unindent).
(Recent versions of the IDE use Tab and Shift+Tab to do this as well.)
If you're using another key mapping (such as Brief or Visual Studio), you can find a list of the key mappings in the help file under Key Mappings; the individual key assignments are listed there.

Best Way to Replace a Visual Component in Delphi

In a Delphi Form, I would like to replace one visual component with another. Example: I want to replace a Panel component with an ElPanel from a 3rd party package.
I would like all identical properties and events of the first component to be transferred to the new one, and all the components that belong to the first component (e.g. Toolbars, memos,status bars, etc.) to end up placed on the new component exactly where they were on the first one.
Is there a best/easiest way to do this other than adding the new component to the form and meticulously transferring every property, event and component to it one-by-one?
I do it as following:
Right click on the form and choose (View as Text).
Press Ctrl + F to search for the Component class name like TPanel and replace it with TElPanel
Switch back to back to the form (View as form)
In the interface section replace the TPanel with TElPanel.
if you have many components using GExperts will be more feasible solutions.
You can use GExperts or you can do it by hand.
To do it by hand, open the .dfm in notepad and replace all the class names. (Replace TPanel with TElPanel for example). When you've made all your changes, open the .pas file with Notepad, and do the same thing.
Make sure you add the required units to your uses clause.
Then open the form in the IDE and clean up any mismatched events or unknown property problems.
If I recall the excellent free GExperts plugin does this. Right click your form and select "Replace Components". http://www.gexperts.org
IMHO, the big drawback of the Replace component GExpert is that it changes the order of the components in the source code. That is not very VCS friendly. :-)
If you have other components inside a container doing this replacement with GExperts will cause some ugly exceptions and possibly unexpected behaviour in the IDE.
So, the best solution is to edit the .dfm file where you want (inside or outside the IDE) and replace manually the types of the components that you want to change. Maybe it will cause some exceptions too, but the IDE will managed them.
If you do it inside the IDE, after switching to design view if you save the .dfm inmediately the IDE will ask you to change the type of the variables related to the components you touched, liberating you to do it.
To convert between text and binary dfm formats, use the convert.exe tool in the Delphi bin\ directory. – Tim Knipe (Oct 28 at 4:15)
You can also use the context menu of the form designer - at least with BDS 2006. It's the last menu item ("Text-DFM" in a German IDE).
In my project I had to convert few doezens forms from one set of components to another.
I have created small perl script to convert components and its properties and do all neccesary mapings.
The script is quick&dirty solution but it is highly configurable. It scanns all dfm and pas files in project direcotory and convert dfm components definitions according to rules that you should provide in ObjectBeginFound, PropertyFound, ObjectEndFound procedures/events.
DFM files should be in text mode. Tested on Delphi 5 files. I don't know if it will be compatible with newer versions. Please send posts if you find it out.
USAGE:
perl.exe cxdfm.pl > logfile.txt
DOWNLOAD LINK
http://dl.dropbox.com/u/15887789/cxdfm.pl

Resources