Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 01/16/25 in Posts

  1. https://curiouscoding.nl/posts/static-search-tree/ I have no clue does the claim of 40x speed hold up, but if it is 40% speed up, that would be very nice 🙂 -Tee-
  2. Uwe Raabe

    Continually Losing Frames

    Project Magician has an option for that:
  3. From today, TMS Academic products are available for Delphi & C++Builder 12 Community Edition, and they're 100% free and fully functional for students and teachers working on non-commercial projects. If you're passionate about programming and want to excel in your education, join the TMS Academic program and start building amazing software with powerful tools like TMS FNC UI Pack, TMS Aurelius, TMS WEB Core, and more. Read the full blog post: https://www.tmssoftware.com/site/blog.asp?post=1306
  4. Der schöne Günther

    Continually Losing Frames

    This also happens with me all the time. There is no method to this madness. When developing with Delphi, I usually spend 10 - 15 % of my time reverting unwanted changes or being extra careful to not commit them. If you are not using any kind of version control, this is clear sign that you should start getting familiar with it now
  5. Anders Melander

    Continually Losing Frames

    So you're not using version control?
  6. Dave Nottage

    Reading and changing capabilities of Android Camera2 API

    I came across this post whilst looking for something else, and... ..actually, there is a way of achieving this using Delphi code. The following will convert the JObject reference (Obj in your case) to an integer array: function JObjectToIntArray(const AObject: JObject): TArray<Integer>; var LJNIArray: JNIArray; LJNIEnv: PJNIEnv; begin LJNIArray := TJNIResolver.JavaInstanceToID(AObject); SetLength(Result, TJNIResolver.GetArrayLength(LJNIArray)); if Length(Result) > 0 then begin LJNIEnv := TJNIResolver.GetJNIEnv; LJNIEnv^.GetIntArrayRegion(LJNIEnv, LJNIArray, 0, Length(Result), PJNIInt(Result)); TJNIResolver.ExceptionCheck; end; end; For Range<Integer>: var LRange: JRange; LLower, LUpper: Integer; LRange := TJRange.Wrap(Obj); LLower := TJInteger.Wrap(LRange.getLower).intValue; LUpper := TJInteger.Wrap(LRange.getUpper).intValue; It's in Androidapi.JNI.Util. To convert the JObject reference, simply Wrap it: var LRational: JRational; LRational := TJRational.Wrap(Obj);
  7. Roger Cigol

    Pointer arithmetic question

    @Der schöne Günther Please accept my apologies! @Remy Lebeau Many thanks for your wisdom here - I've learnt something new!
  8. Remy Lebeau

    Pointer arithmetic question

    It is actually legal code and does compile: https://onlinegdb.com/AYf40CsUy This kind of reverse syntax is not commonly used, but it does have its uses, and the C++ standards allows it. For an array, arr[2] is the same as *(arr+2), and thus 2[arr] is the same as *(2+arr).
  9. I don't know how much your time is worth but for an advanced grid component buying off-the-shelf is a no-brainer. And option 2 doesn't sound any less work than moving to a new component. We use TMS VCL UI Pack which includes their TAdvStringGrid component, the price is practically nothing compared to what you get in terms of functionality.
  10. chmichael

    Enable Discussions on github ?

    1) It's better organized 2) It's all in one place (code/issues/discussions) Now if you don't want to enable it at least put a note that there is a "Indy delphipraxis forum" on the github so people don't open issues for questions.
  11. emileverh

    Retrieve value of INSERT ... RETURNING ...?

    If I was you in SQLite I defined 'database_id' as AUTOINCREMENT. No duplicates anymore! CREATE TABLE databases ( database_id INTEGER PRIMARY KEY AUTOINCREMENT And if you want to know the last inserted id, call the following statement: select LAST_INSERT_ID() as seq
  12. DelphiUdIT

    Enable Discussions on github ?

    My personal opinion is that having too many discussion points on a single topic is counterproductive. Having n. Forums, githubs and maybe personal blogs could be dispersive for the information and discussions that you want to "carry forward". And in this particular case, the main actor that is Remy should disperse a lot of energy on a multitude of discussion "sites" (which in fact he already does). The idea is not "evil", but there are already several possible discussion points (for example one of these is this forum) with a dedicated section.
  13. Stefan Glienke

    What new features would you like to see in Delphi 13?

    Delphi developers.... one half still uses Delphi 7 and the other one does not even do 32-bit anymore
  14. A few more comments about the Thales Safenet signing token with Sectigo certificates: Unlike the Centum token I used before, Safenet has an 'Enable single logon' tick box in Advanced Client Settings, which means it remembers the token password once entered, until Windows reboots, which in my case is usually once or twice a month. You need the latest version of signtool to work properly with new tokens, my 2016 version did not work with the /kc argument and gave a crypto API error. I'm now using the following command, where you need to replace certfile with the exported PEM, DER or CER certificate file name, token-password with the new password you set (leave {{}} alone), and update the Private Key Container Name that in my case is a time stamp of when the key was created, Sectigo_20250107102535 to your own version, to allow signtool to locate the private key: signtool sign /f "certfile" /csp "eToken Base Cryptographic Provider" /kc "[{{token-password}}]=Sectigo_20250107102535" /as /fd sha256 /tr http://timestamp.sectigo.com /td sha256 "filename' 'filename' 'filemask' If using the /kc argument to pass a password with single logon enabled, the password is saved as if entered manually. Beware when testing that five incorrect password attempts will lock the dongle, assuming the other syntax is correct. The /kc command may need another parameter if you have multiple tokens. Not noticed it before, but signtool allows you to sign multiple files with one command, add two or more filenames at the end, also mask characters are allowed so "c::\path\*.exe" will sign all exe files in the path specified. Multiple files also work for the verify command. It seems the Thales SafeNet Authentication Software also works with Yubico tokens, mine is recognised. Angus
  15. Brian Evans

    "Death to WITH" in your Delphi Code

    If they added the ability to provide an alias the ambiguity would be gone. Aliases in SQL are useful and perform a similar function. Shortening repeated references can make code easier to read, the problem is the current WITH creates ambiguity. A code snipped from the blog post redone with the ability to provide an alias as an example: procedure TMyForm.UpdateInventoryItem(const NewQty: Integer); begin with dmStoreInventoryData as A do begin with A.tblUpdateItemForStore as B do begin B.Edit; B.FieldByName('Qty').AsInteger := NewQty; B.Post; end; end; end;
  16. Be careful with Mida. From my experience the software is not working. Although it can still be purchased, it won't run because at startup the software cannot contact their license server and then stops. I tried contacting the developer many times, never had a response.
×