-
Content Count
2556 -
Joined
-
Last visited
-
Days Won
150
Everything posted by Uwe Raabe
-
The option is called Tooltip expression evaluation.
-
I tried to reproduce it here, but unfortunately without success. BTW, how did you manage to create the mainform twice in the DPR?
-
You attached the screenshots, but I was referring to the small project.
-
Can you attach that here?
-
Is the unit in question explicitly mentioned in the project or is it a unit that is only used indirectly?
-
To be fair, you actually posted two questions. Where the first one has that simple answer, the second one is somewhat difficult to target for us.
-
Probably it is not so simple: So depending on whether the optimization is part of the Compiler Speed Pack it might as well be incorporated into a Delphi compiled EXE.
-
Hands-On Design Patterns with Delphi
Uwe Raabe replied to Primož Gabrijelčič's topic in Tips / Blogs / Tutorials / Videos
ditto -
There still is CodeSite Studio: https://raize.com/codesite/ Definitely worth it!
-
Blogged : Delphi Package Manager RFC
Uwe Raabe replied to Vincent Parrett's topic in Tips / Blogs / Tutorials / Videos
Perhaps I am a bit too optimistic, but I do have hope that some library providers will adhere to a reasonable standard whenever it will be established. If this Package Manager forces some requirements on any package/library to be supported, that might help to canalize the chaos diversity currently out there. -
Delphi pitfalls: Enumerated types and for loops
Uwe Raabe replied to Lars Fosdal's topic in RTL and Delphi Object Pascal
Only virtually 🚯- 39 replies
-
- pitfall
- enumerated type
-
(and 1 more)
Tagged with:
-
operator overloding Equal vs Multiply
Uwe Raabe replied to Eugine Savin's topic in RTL and Delphi Object Pascal
I am inclined to see this as the compiler barfing at the language designer who came up with this ambiguous set/array thing in the first place. -
Good reading on this subject: Are there any downsides to using UPX to compress a Windows executable?
-
Any reservations on using const array[type] of?
Uwe Raabe replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
type TInfoType = (itProject, itContacts, itWorker, itWorkers); const cInfoTypeNodeNames: array[TInfoType] of string = ('project', 'contacts_info', 'WRK', 'WRKS'); begin Writeln(cInfoTypeNodeNames[1]); // will not compile Writeln(cInfoTypeNodeNames[itContacts]); // will compile end. -
Any reservations on using const array[type] of?
Uwe Raabe replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
Not quite. You cannot use an integer index for such an array, only the declared index type. -
How do I find out in which Delphi version a certain RTL/VCL change was implemented?
Uwe Raabe replied to A.M. Hoornweg's topic in RTL and Delphi Object Pascal
Not in the Action dialog itself, but in the script. The iterator sets a variable CompilerVersion in OnBeforeEachIteration: CompilerVersion = Delphi10Seattle + Iteration - 1; and the compiler action sets the Action property in the OnBeforeAction script: Action.CompilerVersion = CompilerVersion; -
Any reservations on using const array[type] of?
Uwe Raabe replied to Mike Torrettinni's topic in Algorithms, Data Structures and Class Design
The docs say about static arrays: So any ordinal type (which includes enumerations) are valid as array index. That has been this way since the invention of Pascal. -
How do I find out in which Delphi version a certain RTL/VCL change was implemented?
Uwe Raabe replied to A.M. Hoornweg's topic in RTL and Delphi Object Pascal
Not for a build server running a FinalBuilder project with an iterator over the required compiler versions. Compiling in own VMs for each compiler version would be a nightmare. Let alone having to run all those VMs synchronously during the build process. F.i. building MMX Code Explorer for the current 4 compilers, creating the setup, signing and upload is done in about 45 seconds. I doubt that would be possible if I would compile on 4 different VMs. Looking at ProjectMagician, which targets XE3 and up (10 compilers involved) currently needs about 30 seconds to build. Hard to achieve that with 10 separate VMs without significantly extending the build server hardware. To be fair, all these IDE installations are only for building, not for working interactively. and currently I have no mobile projects to be build on that system. Aren't the paths to those libraries and frameworks set individually for each IDE Version? In that case FinalBuilder takes care to adjust the environment accordingly when executing the compile action. What are your specific problems with those? -
10.3 How to hide Procedure List ToolBar in Editor
Uwe Raabe replied to ŁukaszDe's topic in Delphi IDE and APIs
In Editor Options - Display disable Show Navigation Toolbar -
How to extract all resourcestrings from 3rd party components
Uwe Raabe replied to Tom Mueller's topic in General Help
In the comments Marco suggested to use multiple packages. -
Delphi pitfalls: Enumerated types and for loops
Uwe Raabe replied to Lars Fosdal's topic in RTL and Delphi Object Pascal
Well, that is what giving number in the enum declaration is, too, The ADD example was just a little joke, because the numbers given nicely add up by coincidence.- 39 replies
-
- pitfall
- enumerated type
-
(and 1 more)
Tagged with:
-
Yes, definitely! It is just quite some work to do.
-
How do I find out in which Delphi version a certain RTL/VCL change was implemented?
Uwe Raabe replied to A.M. Hoornweg's topic in RTL and Delphi Object Pascal
Exactly! Anyway, looking into the source is more reliable and usually also faster. -
Delphi pitfalls: Enumerated types and for loops
Uwe Raabe replied to Lars Fosdal's topic in RTL and Delphi Object Pascal
Lately I often use helpers to map those enumerations to their ordinal values. type TEnum = (plough, foo, bar, wtf); TEnumHelper = record helper for TEnum private const FMap: array[TEnum] of Integer = (5, 9, 14, 1000); function GetAsInteger: Integer; procedure SetAsInteger(const Value: Integer); public property AsInteger: Integer read GetAsInteger write SetAsInteger; end; function TEnumHelper.GetAsInteger: Integer; begin Result := FMap[Self]; end; procedure TEnumHelper.SetAsInteger(const Value: Integer); var idx: TEnum; begin for idx := Low(FMap) to High(FMap) do begin if FMap[idx] = Value then begin Self := idx; Exit; end; end; raise ERangeError.CreateFmt('invalid integer for TEnum: %d', [Value]); end; This is pretty simple to use: var enum: TEnum; begin enum.AsInteger := plough.AsInteger + foo.AsInteger; if enum = bar then begin ShowMessage('Hooray!'); end else begin ShowMessage(wtf.AsInteger.ToString); end; end;- 39 replies
-
- pitfall
- enumerated type
-
(and 1 more)
Tagged with:
-
How do I find out in which Delphi version a certain RTL/VCL change was implemented?
Uwe Raabe replied to A.M. Hoornweg's topic in RTL and Delphi Object Pascal
As my build machine contains all Delphi versions since XE, I make a simple search for the affected source file and text. I have created a specific search configuration in Total Commander with all the sources folders of the different Delphi installations. That way I only need to specify the file name/pattern and the search text and the time for the search is negligible. This way I can usually figure out which version introduced the change in less than a few seconds. In case the change happened before XE I would have to fire up the old build VM that goes back to Delphi 5, but I rarely have a need for that.