-
Content Count
2542 -
Joined
-
Last visited
-
Days Won
147
Posts posted by Uwe Raabe
-
-
Form Creation
in VCL
A modal Splash form would probably block the startup sequence.
-
Form Creation
in VCL
Looks like a splash or login form.
-
Can you break it down to a minimal code sample?
-
The xmldoc says:
QuoteThis is a candidate to be removed or left to store the Locale that created the FormatSettings.
-
It is my understanding that Free = $0, so basically you simply sell it for $0 until your revenue reaches $5,000. Note that this includes any donations, even if the app is free. Also any paid support or training you are giving around your apps is probably counted for that limit.
As the FAQ is not a legal document I add the respective chapter from the license here:
QuoteADDITIONAL LICENSE TERMS APPLICABLE TO THE COMMUNITY EDITION
In the event Licensee has obtained a Delphi Community Edition or a C++Builder Community Edition license (collectively, the "Community Edition") the following terms apply in addition to the General Terms described in Section 2 above. Please note that RAD Studio is not offered and may not be licensed as a Community Edition. The Community Edition license applies solely if Licensee cumulative annual revenue (of the for-profit organization, the government entity or the individual developer) or any donations (of the non-profit organization) does not exceed USD $5,000.00 (or the equivalent in other currencies) (the "Threshold"). If Licensee is an individual developer, the revenue of all contract work performed by developer in one calendar year may not exceed the Threshold (whether or not the Community Edition is used for all projects). For example, a developer who receives payment of $5,000.00 for a single project (or more than $5,000.00 for multiple projects) even if such engagements do not anticipate the use of the Community Edition, is not allowed to use the Community Edition. In addition, a developer building solely an app store application would not be allowed to use the Community Edition once the app store revenue reaches a revenue of $5,000.00 or more in a year. If Licensee is a company that has a cumulative annual revenue which exceeds the Threshold, then Licensee is not allowed to use the Community Edition, regardless of whether the Community Edition is used solely to write applications for the business' internal use or is seen by third parties outside the company or has a direct revenue associated with it. If Licensee does not qualify to use the Community Edition or otherwise satisfy the additional terms and restrictions applicable to the Community Edition described in this Section, Licensee's may not download or use of the Community Edition and any such use is unauthorized, constitutes a violation of this Agreement and may constitute a misappropriation of Licensor's intellectual property rights.
Licensee may use a Community Edition license to develop software (X) for which Licensee does not charge directly or indirectly a fee or receive other consideration including but not limited to a license fee, a service fee, a development fee, a consulting fee, a subscription fee, a support fee, a hosting fee, or receive an income, or the like ("License Fees") or (Z) to the extent Licensee charges License Fees, Licensee cumulative annual revenue shall not exceed USD $5,000.00 (or the equivalent in other currencies). The Community Edition Licensees are prohibited from moving the command line compiler to a different machine; therefore, the rights granted to Licensee in Section 2.4 do not apply to the Community Edition licenses.
In the event Licensee elects to license the Community Edition (for profit or non-profit) then (i) the total number of the Community Edition licenses deployed may not exceed five (5) individual users; and (ii) Licensees are only allowed to read the VCL, FireMonkey and other source code provided with the Community Edition.
The term of the Community Edition license is for one year from your first download or unsealing of Licensor's Products ("Community Edition Term") and will automatically expire upon the end of the Community Edition Term - the Community Edition license will not auto-renew. To the extent you want to continue using the Community Edition after the expiration or termination of your Community Edition Term, you must re-install the latest version of the Community Edition and agree with the terms and conditions of the Agreement in force at that time. For example, if Licensee installed the Community Edition v1.0 and upon expiration of the Community Edition Term intends to continue using the Community Edition then, subject to Licensee's continued compliance with the additional license terms and restrictions of the Community Edition, Licensee must re-install the then current version of the Community Edition license. Upon expiration of the Community Edition Term, all software developed using the Community Edition license may continue to be distributed by Licensee subject to the terms and restrictions of this Agreement. All restrictions and conditions relating to the Community Edition license shall survive the termination or expiration of your Community Edition Term. The Community Edition license granted under this Section will automatically terminate upon Licensee's breach of the terms specified in this Section. The support described in Section 6.2 below does not apply to the Community Edition Licensees. None of the indemnification rights set forth in this Agreement apply to the Community Edition Licensees.
Embarcadero will collect information about your use of the Community Edition for auditing purposes and improve our products and services. For more information about our collection, use and disclosure of personal data, please review Embarcadero's Privacy Statement at <https://www.embarcadero.com/privacy-statement>.
Anyway, if you want to make sure, you should better ask Embarcadero directly.
- 1
-
The hack with the @ operator works only in Win32, but Win64 has different calling conventions. Use a global function for the Sort method (matching the signature) instead of a local one (which does not).
- 3
-
Cannot try in the moment, but perhaps MultiPaste can act as a workaround.
Nevertheless, it would make for a good feature request.
-
You should always be able to install versions you have licenses for and thus installing the previous version should pick up the valid license on your system.
If you think you are entitled for that update, because your subscription was still active when it was released, please contact Embarcadero to get that straight.
-
52 minutes ago, shineworld said:Does it mean that regardless of the expired subscription program I can still upgrade the system from 10.4.1 to 10.4.2 ?
As long as you were under active subscription when the update was released.
-
Even StackOverflow has solutions for that:
-
5 minutes ago, Larry2023 said:to move that function to a thread in a console app
So you should check this hint in the docs:
QuoteIn a non-GUI application, you must call CheckSynchronize if you use the Synchronize method of TThread.
In case you didn't change The SynchronizedEvents property of the TRESTRequest, it internally calls Synchronize, which forces you to obey the above.
-
You cannot use the built-in function Power, when there is a local variable with the same name. Note, that Delphi/Pascal is case insensitive.
- 1
-
Could it be that the function is called in the debugger evaluator? If so, it should work as expected in the release version.
-
18 minutes ago, Stefan Glienke said:You could (ab)use the objects part of the first stringlist entries as index of the entry in the second stringlist
I'm glad that nobody suggested a solution involving an SQL server, yet.
-
What you describe just screams for a TDictionary. Is there anything hindering you to use the built-in implementation?
-
Well, using Find on a TStringList with duplicates to get an index into a corresponding TStringList seems like a less optimal approach.
-
10 minutes ago, georges pletinckx said:I have not Nevrona and I would like not to buy it.
May be I got it wrong, but that sounds a bit like a request for pirating.
- 1
-
I wonder why still no one suggested using a TDictionary<string,string> instead.
var dict: TDictionary<string,string>.Create; dict.Add('C', 'Pear'); dict.Add('A', 'Apple'); dict.Add('B', 'Banana'); // lookup shortname (A, B or C) var fullName := dict[shortname];
-
Actually there were rumors that CrossVCL were to be bought by Embarcadero and included in Delphi. There was a time range where you could not buy new licenses. Now you can...
As said above, you can get FmxLinux for free with an active Enterprise/Architect subscription. (Not sure about Pro, but it wouldn't make sense without the ability to target Linux)
-
One should mention that Delphi or C++ Builder for Linux are not able to create GUI applications for Linux. For that a 3rd party library like FmxLinux or CrossVcl is needed and both are not free either. (FmxLinux is free with the Enterprise version, though.)
-
To get any DFM containing the old TPNGObject loaded you need to install TPngComponents. Make sure that RegisterOldPngFormat is in the Defines (it should be by default).
-
Make it TComponent:
function SetDBSessionNames(AContainer: TComponent; const sSessionName: string): boolean; begin // for var i := 0 to AContainer.ComponentCount - 1 do begin // var cmp := AContainer.Components[i]; if cmp is TEDBSession then TEDBSession(cmp).SessionName := sSessionName; ...
-
A couple of years ago I worked with a team moving from SVN to Git. They followed my advice to use Fork right from the beginning. We had two courses based on Fork to get some guide through the workflow. Both, the money spent for Fork as well as the courses was worth it. Since then SVN is history.
Fun fact: The trainer giving the courses switched his own team to Fork as well after that.
- 1
-
9 hours ago, Uwe Raabe said:More recent Delphi versions have TThread.ForceQueue
It seems it was introduced in 10.2 Tokyo.
Why does TRegistry.GetKeyInfo double the returned values of MaxSubKeyLen/MaxValueLen for far eastern locales?
in RTL and Delphi Object Pascal
Posted
@Attila Kovacs
All Windows versions from Windows NT up to the current have Win32Platform = VER_PLATFORM_WIN32_NT. Other possible values are Win32s and Windows 95.