-
Content Count
2739 -
Joined
-
Last visited
-
Days Won
162
Everything posted by Uwe Raabe
-
Circular references with API design
Uwe Raabe replied to Darian Miller's topic in Algorithms, Data Structures and Class Design
The TRecordA/TRecordB relation leads to a structure of infinite size. I would question the design choice, but having no knowledge of the underlying API that is not more than just a gut feeling. IMHO, you should use the approach that fits best. There is no general rule for all cases. -
Delphi 11.3 vs. Delphi 12.1 : 'View/Tool Windows/Palette' and 'View/Toolbars/Component'
Uwe Raabe replied to Ruud's topic in Delphi IDE and APIs
The RSP issues are from the Old Quality Portal (now read-only). Although they are not visible in the New Quality Portal, they still exist in the internal tracking system. -
Source Indexer no longer auto rebuilds at startup
Uwe Raabe replied to havrlisan's topic in MMX Code Explorer
There was a change in V15.1.10 that prohibits the Auto-Scan until the search window is visible. I had a couple of reports about errors regarding hidden windows in this area. Seems I have to think about a more sophisticated fix for that. Perhaps prohibiting the display instead of the search would be more suitable. -
While TApplication checks IsShortCut for the main form only, each form also checks IsShortCut for all its child components (direct and indirect). Your options to get the TActionList on the datamodule executed is either make the datamodule owned by the mainform or wire the OnShortCut event handler of TApplication and call the actionlist IsShortCut manually.
-
Delphi 11.3 vs. Delphi 12.1 : 'View/Tool Windows/Palette' and 'View/Toolbars/Component'
Uwe Raabe replied to Ruud's topic in Delphi IDE and APIs
Could it be related to this one: RSP-18189 - Duplicate items in component palette -
General question for "Edit.Text's": Why is WordWrap not active bydefault?
Uwe Raabe replied to Rollo62's topic in Delphi IDE and APIs
With WordWrap = True, the AutoSize property of a Vcl TLabel doesn't work the same as without. BTW, almost the same holds true for FMX. -
Not sure what happened in your case, but for me it was just executing the setup, confirm any questions and re-compile one package to get it working again.
-
May depend on the current filter and search criteria you use: https://embt.atlassian.net/servicedesk/customer/portal/1/RSS-1944
-
$FFFF can both be const and not ?
Uwe Raabe replied to dormky's topic in RTL and Delphi Object Pascal
Despite its name the TTARRAY declaration is a set and not an array, but sets are limited to elements with ordinal 0..255. -
I'm working with 12.2 Patch 1 on my productive system now for five days and I also don't see any problems debugging. The only problem appeared directly after the update, caused by an internal package compiled without the patch and resolved by recompiling. The build system was updated before to allow for testing the compatibility of packages compiled with Patch 1 on a system without.
-
Probably because at that time pointers were still 32 bit only.
-
Feature enhancement request - Filter DFM properties
Uwe Raabe replied to pyscripter's topic in GExperts
And Embarcadero still refuses to implement this feature request (despite its 188 votes): RSP-35301 - Option to design in Screen PPI but save in 96 PPI For me and quite a couple of other users that is mandatory for using the IDE in High-DPI.- 11 replies
-
@PeterBelow It is even possible to inject new properties to the Object Inspector. In Cmon.DataSense.Design.pas I use this technique to add a DataSource and DataField property to supported controls. The additional data is stored in a special component (TDataSense) using a dictionary internally:
-
That sounds more like Quantum Mechanics than Mathematics.
-
Suggestions for improving the display of tabs in the SourceCode editor
Uwe Raabe replied to PeterPanettone's topic in Delphi IDE and APIs
AFAIK, italic is already used for Files implicitly opened while debugging. These files are automatically closed when the debugging ends as long as the corresponding option is set (see Debugger Options -> Auto close views after debugging), but the state can be changed in the context menu. So, I'd also opt for something configurable instead of hardcoding. -
MMX makes use of the IDE internal bookmark system, but it doesn't provide any further functionality. It only sets some bookmarks for special editing positions. These can be configured as well as disabled.
-
Could it be related to the VCL style the IDE is using? BTW, you can change the color used for the item background in the BeforeItemErase event.
-
Frame being converted to Form when using a subclass of TFrame
Uwe Raabe replied to ryan_o's topic in VCL
The problem is that TBlahFrame is only a declaration of a TFrame descendant and not a designable TFrame. This way the IDE cannot detect that TFrame1 has to be treated as TFrame by the designer. You either need to make TBlahFrame a proper TFrame with a dfm and the corresponding entries in the dpr and dproj, or you declare an alias for TBlahFrame with the name TFrame and use that as the parent class for TFrame1. TBlahFrame = class(TFrame, IBlah) procedure Foo; virtual; abstract; end; TBlahFrameClass = class of TBlahFrame; type TFrame = TBlahFrame; uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, intf; type TFrame1 = class(TFrame) private -
Frame being converted to Form when using a subclass of TFrame
Uwe Raabe replied to ryan_o's topic in VCL
Can you check the dproj file for the <DCCReference entry for the frame file? It should have a DesignClass sub node with TFrame content like this: <DCCReference Include="Common\RCustomPalette.pas"> <Form>FrCustomPalette</Form> <FormType>dfm</FormType> <DesignClass>TFrame</DesignClass> </DCCReference> Also in the dpr file, the uses reference should also have a TFrame signature like this: RCustomPalette in 'Common\RCustomPalette.pas' {FrCustomPalette: TFrame}, If it has not, you should fix that manually and save the project. -
aDialog created inside a Try/Finally, bad practise?
Uwe Raabe replied to Skrim's topic in General Help
Because aDialog is not assigned when an exception is raised inside TMyDialog.Create. That causes Free called for an uninitialized variable inside the finally block. A workaround would be to set aDialog to nil before the try, but the cleaner way is to move the Create outside the try-finally. -
TMS usually compiles its packages during installation. If that happened after the update to 12.2, these packages are incompatible with 12.2 Patch 1. In case these packages were installed (and compiled) with 12.1 or 12.0 they should work with 12.2 Patch 1, too.
-
You can test this by doing a fresh install in a vanilla VM. Nevertheless that is an interesting question. Usually patches seemed to be free for existing installations, but as this is an inline release you might be right.
-
MMX V15.1.11 works in all Delphi 12 versions, but V15.1.12 was compiled with Delphi 12.2 (without Patch 1) and thus suffers from this problem.
-
A suitable version for MMX is available now.
-
A suitable version for MMX is available now.