Jump to content

Uwe Raabe

Members
  • Content Count

    2490
  • Joined

  • Last visited

  • Days Won

    143

Everything posted by Uwe Raabe

  1. Uwe Raabe

    Project Magician blues

    Which platforms are in that project? Background: There already is some special handling with Version Info on Windows-only and mixed platform projects. Perhaps that needs to be done for some application settings, too.
  2. Uwe Raabe

    Project Magician blues

    Correct! That is the setting that allows to set the custom manifest for all configurations.
  3. Why is it unfair? It is a certificate given by Embarcadero. It is expected to be about their own tools and not about any thrid-party ones. After all, everyone is free to take that exam or leave it if feeling uncomfortable with it.
  4. The idea behind probably is that a Delphi Master Developer should to be proficient in these, too. After all, they are part of Delphi Enterprise. Perhaps that is exactly what makes the difference: Being experienced in all or at least most parts of Delphi, not only some core parts. Of course, I don't know the actual reasons.
  5. It has been quite some time when I made this certificate. Actually, I was one of the first people doing it. The questions were quite challenging, especially because they required deep knowledge of most of the Enterprise features of Delphi. In the past years there were many additions to these (e.g. FireDAC, REST, Mobile etc.) and I doubt that the questions kept the same over the time. I cannot say anything about the current state and level of difficulty of the exam.
  6. As we now found out: it doesn't. While the implementation changed in Delphi 11 it always made a lower bound binary search even in Delphi versions below 11.
  7. Perhaps a bit difficult for a race condition.
  8. Seems you are right. The implementation up to 10.4 looks like it is already satisfying the requirement. In that case the change made in 11 may as well be reverted. I will ask for the reason of that change.
  9. Because it didn't return the first matching element but an arbitrary one. I was pretty sure someone requested it, but I cannot find any QP entry for that. It is also possible that it was initiated internally.
  10. Here is the QP entry: https://quality.embarcadero.com/browse/RSP-40174
  11. Neither did I say so, nor is the code broken. It may have a bad performance in some cases, but if I can rule out these cases, why should I dismiss that code?
  12. Currently I cannot find one. Seems like @dummzeuch is the right person. If he refuses I will be happy to step in. The reference to the TStringList.Find implementation should definitely be mentioned. I also suggest a separate QP entry for updating the documentation.
  13. I admit the wording was chosen as a counterpart to Davids claim and should not be taken literally. In addition I also mentioned that I would vote for a better implementation. It is just my personal opinion that if everybody is going to avoid the standard routines in favor of writing its own, we may never see any improvement in that area.
  14. Nobody should create such a worst case list in the first place. Honestly, I don't understand such a statement targeting an extreme corner case. Although I would vote for a better implementation, my lists are usually without any duplicates and therefore don't care about that, but perhaps I am special.
  15. Reading the current code of Delphi 11.2 I assume the documentation is wrong. TList<T.BinarySearch just calls TArray.BinarySearch, which implements the search loop like this: while L <= H do begin mid := L + (H - L) shr 1; cmp := Comparer.Compare(Values[mid], Item); if cmp < 0 then L := mid + 1 else if cmp > 0 then H := mid - 1 else begin repeat Dec(mid); until (mid < Index) or (Comparer.Compare(Values[mid], Item) <> 0); FoundIndex := mid + 1; Exit(True); end; end; The repeat inside the equals case searches for the lowest matching index before returning it and exit. AFAIK, this was introduced with 11.0 and nobody thought of updating the docs for both methods.
  16. Uwe Raabe

    Tab key in the IDE

    Created with SnagIt.
  17. Uwe Raabe

    Tab key in the IDE

    I can verify the expected behavior from previous versions with the following settings in Editor options - Language (Delphi): Disabling Smart tab results in the annoying behavior you describe. Embarcadero® Delphi 11 Version 28.0.46481.1287
  18. Uwe Raabe

    Component names cleared in design package

    Do you make sure that the datamodule is created before the form is loaded? In similar cases I usually create the datamodule with the form as parent in the form Create (i.e. before the form is loaded). That guarantees that the references to the datamodule can be resolved. If you are interested there are some explanations about DFM loading in this article: Tweaking DFM Loading
  19. Uwe Raabe

    View program flow and calls to help understand code?

    There is also Undertand from SciTools, although a bit pricy.
  20. It is only since V15.1 that MMX tries to resolve include files. Before that any $I directive was just ignored (as was almost any other directive).
  21. The problem is that MMX doesn't search for the INC files, because it misses to add the default extension. I will fix this in a future release. As a workaround you can try to add the .INC extension in the source - or wait for an MMX update.
  22. Are both include files existent with an .INC extension? In that case MMX just misses to use this as default extension.
  23. Can you show the corresponding source lines?
  24. How do you guarantee that memfloorobjects.CreateBlobStream actually returns a TnxBlobStream? What is a TnxBlobStream? How is BlobStream declared? What is memfloorobjects? Why do you list memfloorobjects in the with and still reference it in the code so no one can see at a glance where it is used? Why do you use with at all as it only obfuscates the code here? What is GraphicClass and where it is used? Why is the try not directly after TBitmap.Create? Why do you cast to TnxBlobStream when Free is already declared in TObject? What object is created in that line? Neither b nor BlobStream are created in that line and those are the only objects you free.
×