-
Content Count
2490 -
Joined
-
Last visited
-
Days Won
143
Everything posted by Uwe Raabe
-
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.
-
Correct! That is the setting that allows to set the custom manifest for all configurations.
-
The Delphi Certified Developer // To prepare for the exam
Uwe Raabe replied to skyzoframe[hun]'s topic in Tips / Blogs / Tutorials / Videos
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. -
The Delphi Certified Developer // To prepare for the exam
Uwe Raabe replied to skyzoframe[hun]'s topic in Tips / Blogs / Tutorials / Videos
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. -
The Delphi Certified Developer // To prepare for the exam
Uwe Raabe replied to skyzoframe[hun]'s topic in Tips / Blogs / Tutorials / Videos
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. -
System.Generics.Collections.TList.BinarySearch if there are duplicates
Uwe Raabe replied to dummzeuch's topic in RTL and Delphi Object Pascal
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. -
Nasty Parallel Programming Library bug - please vote
Uwe Raabe replied to eivindbakkestuen's topic in RTL and Delphi Object Pascal
Perhaps a bit difficult for a race condition. -
System.Generics.Collections.TList.BinarySearch if there are duplicates
Uwe Raabe replied to dummzeuch's topic in RTL and Delphi Object Pascal
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. -
System.Generics.Collections.TList.BinarySearch if there are duplicates
Uwe Raabe replied to dummzeuch's topic in RTL and Delphi Object Pascal
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. -
System.Generics.Collections.TList.BinarySearch if there are duplicates
Uwe Raabe replied to dummzeuch's topic in RTL and Delphi Object Pascal
Here is the QP entry: https://quality.embarcadero.com/browse/RSP-40174 -
System.Generics.Collections.TList.BinarySearch if there are duplicates
Uwe Raabe replied to dummzeuch's topic in RTL and Delphi Object Pascal
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? -
System.Generics.Collections.TList.BinarySearch if there are duplicates
Uwe Raabe replied to dummzeuch's topic in RTL and Delphi Object Pascal
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. -
System.Generics.Collections.TList.BinarySearch if there are duplicates
Uwe Raabe replied to dummzeuch's topic in RTL and Delphi Object Pascal
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. -
System.Generics.Collections.TList.BinarySearch if there are duplicates
Uwe Raabe replied to dummzeuch's topic in RTL and Delphi Object Pascal
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. -
System.Generics.Collections.TList.BinarySearch if there are duplicates
Uwe Raabe replied to dummzeuch's topic in RTL and Delphi Object Pascal
Which was undefined before (to be fair). -
System.Generics.Collections.TList.BinarySearch if there are duplicates
Uwe Raabe replied to dummzeuch's topic in RTL and Delphi Object Pascal
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. -
Created with SnagIt.
-
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
-
Component names cleared in design package
Uwe Raabe replied to brk303's topic in Delphi IDE and APIs
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 -
View program flow and calls to help understand code?
Uwe Raabe replied to SteveHatcher's topic in General Help
There is also Undertand from SciTools, although a bit pricy. -
[Warning]: Include file not found: OBSIDIUM_ENC_START in line
Uwe Raabe replied to Stano's topic in MMX Code Explorer
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). -
[Warning]: Include file not found: OBSIDIUM_ENC_START in line
Uwe Raabe replied to Stano's topic in MMX Code Explorer
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. -
[Warning]: Include file not found: OBSIDIUM_ENC_START in line
Uwe Raabe replied to Stano's topic in MMX Code Explorer
Are both include files existent with an .INC extension? In that case MMX just misses to use this as default extension. -
[Warning]: Include file not found: OBSIDIUM_ENC_START in line
Uwe Raabe replied to Stano's topic in MMX Code Explorer
Can you show the corresponding source lines? -
Memory leak on TBlobField(FieldByname(field_name)).SavetoStream(Stream);
Uwe Raabe replied to alogrep's topic in VCL
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.