Leaderboard
Popular Content
Showing content with the highest reputation on 06/03/24 in all areas
-
IMHO GetIt is the right choice to destroy any library. I see no benefit from it, just limits the choice for no benefit.
-
Delphi 12.1 Amnesty price isn’t what I thought it was…
bazzer747 replied to Al T's topic in Delphi IDE and APIs
Granted, but having used Delphi for probably over 20 years now, there is no 'upgrade' price that acknowledges the amount of money spent on versions over the years. It seems you are treated as a 'new' customer regardless of your 'loyalty' to the product. With other products, existing users normally get upgrade prices that are significantly better than a new customer would pay. Also, when I buy a product I would expect to get any bug fixes for that product free with an apology, rather than having to pay for it. Embarcadero seem to be like the Carpet shops, there's always a 'sale' on. I can't believe anyone, company or individual, ever pays the advertised price. Why don't they have some integrity and show a normal price! Whatever 'special deal' is running the actual amount they want is always around the same (which in my opinion is way too much). -
At least not if they promote that developer to PM
-
Builtin Refactoring in Delphi is bad. I think we all agree that MMX Explorer works better. Have there ever been any talk with Embarcadero about use MMX Explorer instead? There is a link https://www.facebook.com/groups/137012246341854/permalink/7883294345046900/ that discuss replace builtin refactoring. Any license problems?
-
Delphi 12.1 Amnesty price isn’t what I thought it was…
Al T replied to Al T's topic in Delphi IDE and APIs
Yes, that's correct. Instead of allowing me to have all the bugs fixed for version 11, they want me to buy version 11.1, 11.2, 11.3, etc, for the bug fixes. They are surely getting away with it because people are paying them. If those whom used thier service stopped paying them, they might change the way they do business. I was hoping to see a shining light at the end of the tunnel when I read the Amnesty deal, but it was a SCAM to get me to email them for a quote that I could get at any time of the year! They are clearly not sorry for thier business practices. -
Truncating precision of type double for GUI variables.
oliwe replied to BruceV's topic in General Help
You could use: Label1->Caption = oss.str().c_str();- 4 replies
-
- c++ builder
- wide string
-
(and 1 more)
Tagged with:
-
So they seem not to be able to manage it even when they hire the developer. Obviously that is more wishful thinking than perception of reality. I simply cannot see anything like that going to happen in the foreseeable future. BTW, I still even refuse to provide MMX via GetIt for several reasons.
-
Delphi 12.1 Amnesty price isn’t what I thought it was…
Lajos Juhász replied to Al T's topic in Delphi IDE and APIs
Embarcadero made a bad decision to support more and more platforms without proper preparation. Now we have to pay the price that they have to replace everything as it is impossible to support those changing platforms. Combine that with the fact that the 32 bit compiler has also an ancient architecture that should be replaced. -
@Chris Pim has. See this.
-
How to debug a Not Responding program element
Anders Melander replied to Willicious's topic in Delphi IDE and APIs
Let me look it up in the help for you... -
Converting images to JSON and Send to Server
Keesver replied to JIMSMITH's topic in Network, Cloud and Web
You can encode the image using Base64 encoding. ChatGPT came up with this sample code. Calling TNetEncoding.Base64.EncodeBytesToString(Bytes) will do the actual conversion: uses System.JSON, System.SysUtils, System.Classes, System.NetEncoding; function ImageToBase64(const FilePath: string): string; var FileStream: TFileStream; Bytes: TBytes; begin FileStream := TFileStream.Create(FilePath, fmOpenRead); try SetLength(Bytes, FileStream.Size); FileStream.ReadBuffer(Pointer(Bytes)^, FileStream.Size); Result := TNetEncoding.Base64.EncodeBytesToString(Bytes); finally FileStream.Free; end; end; procedure SaveImageBase64ToJson; var JSONObject: TJSONObject; Base64String: string; JSONString: string; JSONFile: TStringList; begin Base64String := ImageToBase64('path/to/image.jpg'); JSONObject := TJSONObject.Create; try JSONObject.AddPair('name', 'Example Image'); JSONObject.AddPair('image_data', 'data:image/jpeg;base64,' + Base64String); JSONString := JSONObject.ToString; JSONFile := TStringList.Create; try JSONFile.Text := JSONString; JSONFile.SaveToFile('image_base64.json'); finally JSONFile.Free; end; finally JSONObject.Free; end; end; -
Try add GlobalUseMetal := True; on your dpr. iOSSim has one know issue related to OpenGL.
-
Switching GetIt to Online mode for an alternate Delphi configuration
dummzeuch posted a topic in Tips / Blogs / Tutorials / Videos
GetIt is the package manager built into the Delphi IDE. It can be used in Online and Offline mode. If you installed Delphi from an ISO, GetIt was left in Offline mode. That has some drawbacks: GetIt cannot notify you about new updates or patches as they become available. The “Manage Features” functionality of the IDE won’t work. Unfortunately there is no way to switch GetIt to Online mode in the configuration.The usual way is to run the GetItCmd tool with the switch -c (read on in the blog post) -
How to debug a Not Responding program element
msohn replied to Willicious's topic in Delphi IDE and APIs
Absolutely correct. To see where the time is spent, look at the VTune screenshot I posted here a few day ago: You have to read it from the bottom up. The x axis is time spent and it's only showing the time spent in ...BaseMenuScreen.DoLevelSelect, i.e. clicking the button to show the dialog. There's basically 3 main "pillars". The right-most shows all the way from TCustomForm.Show, via your TFLevelSelect.FormShow event handler calling SetInfo. The LoadNodeLabels part is what I was referring to in my last post where only visible, uninitialised nodes are updated. That is something that I would recommend joining with .InitializeTreeView - but do it for all nodes - and show a progress while you do it. The caching happens in LemLevelNeoPack, for example in TNeoLevelEntry.GetTitle. All these property getters call LoadLevelFileData, which checks LoadState telling it what was already loaded and then only load the missing parts or do nothing. Finally, to be clear: someone (you?) already put quite some effort into optimising the LevelSelect dialog, i.e. to only spend as little time as possible with filling the GUI initially (think InitializeTreeView) and then load all other parts upon user-interaction (SetInfo calls). It just turned out to be too slow (maybe too many levels/groups/packs now) and a mess (calling SetInfo at too many places). Now the task is to undo all of that, do the slower loading of everything while showing a progress and giving your applications window message pump more time to "breathe" and fix the freezing. The result hopefully is a better, more responsive compromise: opening the dialog the first time will take a lot longer than now - the progress will move slowly - but subsequently, a lot quicker. -
Delphi 12.1 Amnesty price isn’t what I thought it was…
bazzer747 replied to Al T's topic in Delphi IDE and APIs
These 'offers' are nothing like helpful. Why they 'force' a years maintenance into the price makes me wonder - I've used Delphi (now on 10.4) since Delphi 4 - and never required a maintenance contract. Never had to call Emarcardo to help fix a problem. Why would I nee6d one now! My biggest gripe, though, is that whilst I have Enterprise (that was a 'con' years ago getting a decent price for an upgrade) when I only needed Professional), now I'm stuck with Enterprise because I can't get Firedac with Professional. -
REST Client: HTTP/1.1 503 Service Unavailable
Uwe Raabe replied to Joe Sansalone's topic in Network, Cloud and Web
Have a look into the except block of TCustomRESTRequest.Execute and you can see that it catches any EHTTPProtocolException and raises a simple ERESTException for errors >= 500 when this is enabled (it is by default). So you either catch ERESTException or (what I suggest) disable RaiseExceptionOn500 in the TRESTClient and wire OnHTTPProtocolError instead. -
Good quality Random number generator implementation
mikerabat replied to Tommi Prami's topic in Algorithms, Data Structures and Class Design
You can check out: https://github.com/mikerabat/mrmath It provides a set of different random number generators: * Standard delphi ( linear congruential ) * Mersenne Twister * BCrypt (or actually os dependent) * If the cpu supports it: the x86 RDRAND instruction -
Delphi 12.1 Amnesty price isn’t what I thought it was…
Al T replied to Al T's topic in Delphi IDE and APIs
I bought Enterprise to access the Linux stuff. I really don't need to stay Enterprise, but they kind of force you to stay Enterprise. If you buy the next version as professional, it'll turn all your Enterprise versions into professional! They forcibly keep you at the version that makes them more money. -
I can bet that Embarcadero would not support older versions of the Delphi. You would have to use the latest version of the IDE to have the latest version of MMX. The only thing that could be better in theory is integration. They would see what could be improved to make it work better. On the other hand, it does not work for the Bookmarks or the Parallel debugger or even for the KSVC.
-
At least back then they had no interest. Current state: it is actively maintained it is available for a couple of recent Delphi versions it is free for all Delphi SKUs Would you bet on all that not going to change?