Leaderboard
Popular Content
Showing content with the highest reputation on 05/22/19 in Posts
-
How do you deal with git conflict annotations added to DFM files
Rollo62 replied to David Schwartz's topic in General Help
Its easy to build an automated "training device" with this Bluetooth stuff, RadServer for IoT, GIT and a CI-Server. https://www.amazon.com/PetSafe-Smart-Bluetooth-Training-Collar/dp/B01K73MUTI (If you google somewhat deeper you will find versions with high voltage electroshock too ). (I like to get one for myself sometimes, to get a shock whenever I did something wrong). -
Increasing registration count not possible without active maintenance support
Uwe Raabe replied to Leif Uneus's topic in Delphi IDE and APIs
I am not sure they would get away with that - at least here in Germany. As long as the customer actually paid for the perpetual license (this excludes the CE), the ability to use it legally cannot be prohibited just because there is no current support contract. At least a reasonable fee for the registration bump would perhaps be acceptable, but definitely not denying it completely. -
Blocking the Windows Screen Saver in Delphi
dummzeuch posted a topic in Tips / Blogs / Tutorials / Videos
Sometimes your program needs to block the screen saver from automatically kicking in. My use case was that the program was recording data and whenever the screen saver was active, the data was lost (No idea why, it probably had something to do with the way HID is implemented in Windows.) So I was looking for a way to fix that without forcing the user to turn off the screen saver. The methods that used to work under Windows XP no longer work in Windows 7 and later (I don’t care about Vista), so I googled and found this question on StackOverflow. The Windows API functions PowerCreateRequest + PowerSetRequest mentioned in the highest voted answer looked promising. Unfortunately they don’t seem bo be available in Delphi read on in my blog post -
Well, I'm just coming backup to report that, for my tasks GitExtensions works better than TortoiseGIT, thanks for this discussion :)
-
Increasing registration count not possible without active maintenance support
Uwe Raabe replied to Leif Uneus's topic in Delphi IDE and APIs
I checked the German license and there is no such thing that would a) mention any registration limit in the first place or b) state that increasing that limit is actually part of the support. -
Increasing registration count not possible without active maintenance support
WillH replied to Leif Uneus's topic in Delphi IDE and APIs
As an aside to this. What happens if Emba goes bust? are we all just locked out of the software? I have an active subscription but I'm of the opinion that this change makes using Delphi a very risky choice as Emba seem prepared to cut us off from using the software we own. Why can't we just move an activation from one machine to another without needing to go through the process of phoning in to ask permission? -
If HUAWEI is going to (forced to) replace Microsoft Windows OS and Apple OS on their devices with HUAWEI OS then I want Delphi for HUAWEI OS!
-
Increasing registration count not possible without active maintenance support
Bill Meyer replied to Leif Uneus's topic in Delphi IDE and APIs
The history of stupid licensing conditions in the USA is as old as shrink-wrapped EULAs. The one ray of hope was the original Borland "just like a book" policy. -
Peer pressure FTW!
-
How do you deal with git conflict annotations added to DFM files
dummzeuch replied to David Schwartz's topic in General Help
It's not only git which uses this kind of annotations. svn and probably many other SCMs do too. So how can it be that somebody commits stuff like this? One option for dealing with this kind of stupidity is setting up a continous build server and slapping everybody who commits stuff that does not compile. But this requires somebody with authority to do the initial slapping. -
Increasing registration count not possible without active maintenance support
Fritzew replied to Leif Uneus's topic in Delphi IDE and APIs
If this is true, then Embarcadero is not anymore a Partner you can trust. -
Increasing registration count not possible without active maintenance support
WillH replied to Leif Uneus's topic in Delphi IDE and APIs
That is outrageous. Especially for older versions which were sold as a perpetual license. Now it seems that customers cannot legitimately continue to use software they own and have paid for. Is Delphi ransomware now? -
Problem with TComponent (and subsequently its descendants) is that it implements interfaces but has reference counting disabled in _AddRef and _Release methods so it can be used like regular class. However, people often forget that in such cases _AddRef and _Release calls even though they don't do any counting will still be inserted by compiler and called for any interface reference to such object instance. So if there is alive interface reference to the object after calling Free that interface reference will contain dangling pointer and when such interface goes out of scope _Release will be called on already nuked object. While you may get away with such call without FastMM debugging mode, if it is turned on it will correctly identify the problem. Simple test case that will blow with FastMM in debug mode procedure TestComponent; var Comp: TComponent; Intf: IInterface; begin Comp := TComponent.Create(nil); Intf := Comp; Comp.Free; end;
-
RTTI usage and edge cases :) Can't use GetType on T
Remy Lebeau replied to Andrea Raimondi's topic in RTL and Delphi Object Pascal
In addition, in XE7+ the compiler has an (undocumented) GetTypeKind() intrinsic function: function GetTypeKind(T: TypeIdentifier): TTypeKind; So you can do this instead: procedure TCSVSchemaBuilder.BuldSchema<T>(SchemaTemplate: T); begin FSchemaItems.Clear; FNumRequired := 0; case GetTypeKind(T) of tkClass: BuildSchemaFromClass(...); tkRecord: BuildSchemaFromRecord(...); tkInterface: BuildSchemaFromInterface(...); else raise EImportSchema.Create('Cannot create schema by type'); end; if FSchemaItems.Count = 0 then raise EImportSchema.Create('Schema is missing critical information. Cannot proceed'); end; Prior to XE7, you can replace GetTypeKind() with this instead: case PTypeInfo(TypeInfo(T)).Kind of Either way, the advantage is that T's Kind is known at compile time, which allows this code to optimize out unused code branches at compile-time, whereas the original code does not allow that since the Kind is being queried dynamically at runtime. -
Increasing registration count not possible without active maintenance support
Leif Uneus posted a topic in Delphi IDE and APIs
See this answer from Embarcadero to a customer who wants to increase the registration count: Reinstalling Windows without re-registering Delphi Update : The linked message was deleted by a moderator. Only visitors with enough reputation can view the original message. -
How do you deal with git conflict annotations added to DFM files
FredS replied to David Schwartz's topic in General Help
I often wonder how many issues in a mature product are actually the misuse of Version Control..