Jump to content

Uwe Raabe

Members
  • Content Count

    2556
  • Joined

  • Last visited

  • Days Won

    150

Everything posted by Uwe Raabe

  1. Uwe Raabe

    10.1 Berlin - no mouse hover inspect

    The option is called Tooltip expression evaluation.
  2. Uwe Raabe

    10.3.1 has been released

    I tried to reproduce it here, but unfortunately without success. BTW, how did you manage to create the mainform twice in the DPR?
  3. Uwe Raabe

    10.3.1 has been released

    You attached the screenshots, but I was referring to the small project.
  4. Uwe Raabe

    10.3.1 has been released

    Can you attach that here?
  5. Uwe Raabe

    10.3.1 has been released

    Is the unit in question explicitly mentioned in the project or is it a unit that is only used indirectly?
  6. Uwe Raabe

    IDE Fix pack for Rio

    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.
  7. Uwe Raabe

    IDE Fix pack for Rio

    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.
  8. Uwe Raabe

    TurboPack OnGuard for Rio 10.3.1?

    There still is CodeSite Studio: https://raize.com/codesite/ Definitely worth it!
  9. Uwe Raabe

    Blogged : Delphi Package Manager RFC

    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.
  10. Uwe Raabe

    operator overloding Equal vs Multiply

    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.
  11. Uwe Raabe

    Pack exe using UPX

    Good reading on this subject: Are there any downsides to using UPX to compress a Windows executable?
  12. 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.
  13. Not quite. You cannot use an integer index for such an array, only the declared index type.
  14. 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;
  15. 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.
  16. 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?
  17. In Editor Options - Display disable Show Navigation Toolbar
  18. In the comments Marco suggested to use multiple packages.
  19. 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.
  20. Uwe Raabe

    10.3.1 Rio (26.0.332194899) crash

    Yes, definitely! It is just quite some work to do.
  21. Exactly! Anyway, looking into the source is more reliable and usually also faster.
  22. 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;
  23. 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.
×