Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 10/09/24 in Posts

  1. Lol, we had to do the same migration at our company, complained to Atlassian that cloud Jira is super slow compared to old hosted one, their response - our code is very big and complex you should get a faster computer. And our company is much bigger than Embarcadero. Jira is dominating the market and there is no easy migration to something else, there is no reason for them to do anything right now.
  2. They probably thought that 2047 was "enough for everybody" and didn't think of it as a limit, so they didn't impose a limit on WriteString either. But we can only guess. OTOH nobody(*1) uses TIniFile any more but TMemIniFile because it overcomes all the limitations of Get/SetPrivateProfileString so that's a moot point. (*1 for suitable definitions of nobody )
  3. I’m working on a project using Material 3 Design in Delphi FireMonkey for Athens 12.2. With Skia now integrated in Athens 12.2, we have a similar graphics foundation to Flutter, but we still need a powerful UI component suite to fully unlock Delphi’s design potential. I’ve been using Alcinoe to customize components like Text, Buttons, Switches, TrackBars, etc., into Material 3 Design or even Cupertino style—whatever fits the design. You can easily manage different states like hover, pressed, or disabled directly through the object inspector, which makes it super easy to work with in Athens 12.2. For more info on Alcinoe and Material 3 controls for Delphi, you can check it out here: Material 3 Controls for Delphi – A Modern UI Approach 3. I’ve put together a demo app specifically for Athens 12.2, and I’d really appreciate it if you could test it and give me your feedback. Here’s the link to the demo: https://play.google.com/apps/internaltest/4701314002613599109 To get the app on Google Play, I need around 20 testers. If you’re interested, please send me your Android Gmail address, and I’ll invite you to give it a try. Thanks a lot for your help!
  4. All Almediadev and DelphiStyles products are tested and ready to use with RAD Studio Athens 12.2! https://www.almdev.com https://www.delphistyles.com Also you still can order products with discount!
  5. corneliusdavid

    Does the main form's OnShow event only ever fire once?

    Yes, you're right. Good point.
  6. I wonder why TIniFile.ReadString sets the maximum value size to 2047 without checking the actual value in the file and without limiting the value size in TIniFile.WriteString. Stackoverflow accepted the maximum allowed value to be 65,535 https://stackoverflow.com/questions/10507927/getprivateprofilestring-buffer-length https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-getprivateprofilestringw DWORD GetPrivateProfileStringW( [in] LPCWSTR lpAppName, [in] LPCWSTR lpKeyName, [in] LPCWSTR lpDefault, [out] LPWSTR lpReturnedString, [in] DWORD nSize, [in] LPCWSTR lpFileName ) ... If neither lpAppName nor lpKeyName is NULL and the supplied destination buffer is too small to hold the requested string, the string is truncated and followed by a null character, and the return value is equal to nSize minus one. But if the developers of System.IniFiles.TIniFile implemented a limit of 2047, then why did they do it only for TIniFile.ReadString (without throwing an exception when exceeded), but not for TIniFile.WriteString. unit System.IniFiles ... function TIniFile.ReadString(const Section, Ident, Default: string): string; var Buffer: array[0..2047] of Char; begin SetString(Result, Buffer, GetPrivateProfileString(MarshaledString(Section), MarshaledString(Ident), MarshaledString(Default), Buffer, Length(Buffer), MarshaledString(FFileName))); end; procedure TIniFile.WriteString(const Section, Ident, Value: string); begin if not WritePrivateProfileString(MarshaledString(Section), MarshaledString(Ident), MarshaledString(Value), MarshaledString(FFileName)) then raise EIniFileException.CreateResFmt(@SIniFileWriteError, [FileName]); end;
  7. You would have to draw cell content yourself (OnDrawCell event) to achieve that, but in my opinion such behaviour is a horrible idea in the first place. It would give a very uneven grid appearance and you will also have the problem that larger font sizes than the grid default will also require a bigger row hight to avoid text cut off at the bottom. Either adjust the column width or (more difficult) implement word wrap for cells with longer text. That also requires drawing the cell yourself and adjusting the row hight, which is tricky since it will trigger a redraw of the row and thus fire OnDrawCell again. An alternative is to use the grid with reasonable default font size and column autofit and place a panel or frame with individual edit and memo fields below it. Clicking on a grid row shows the content of the row in the individual controls of the panel, the content of which the user can scroll if required.
  8. corneliusdavid

    10.4 installation issues

    You won't find anything about dark mode when managing platforms, you control Dark Mode under Tools > Options > User Interface > Theme Manager. But if you have a corrupted .ISO, perhaps download it again to see if you can get a better copy; also compare the MD5 hash to make sure it's not corrupted once it's downloaded. Or, just use the web installer instead (if that's practical for your case).
  9. It is a long standing bug, see https://quality.embarcadero.com/browse/RSP-25799 https://quality.embarcadero.com/browse/RSP-31289, probably won't be fixed anytime soon.
  10. I have created that request: https://embt.atlassian.net/servicedesk/customer/portal/1/RSS-1439 They closed it as "Won't do" 😞
×