Jump to content

Brian Evans

Members
  • Content Count

    371
  • Joined

  • Last visited

  • Days Won

    4

Brian Evans last won the day on February 13

Brian Evans had the most liked content!

Community Reputation

109 Excellent

Technical Information

  • Delphi-Version
    Delphi 12 Athens

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Brian Evans

    What is this flashing message doing there?

    The Snipping Tool in Windows 11 does video in addition to static screen grabs. After triggering (SHIFT+Win+S) make sure video is selected, select the screen region you want to record then start recording.
  2. Isn't SPHTMLHelp an ancient third-party library? If I remember it added support for opening CHM help files before Delphi itself did over a decade ago.
  3. Brian Evans

    Switch from JCL to EurekaLog

    It can generate a text file per exception that contains much more than just the stack trace. You can then do whatever you want with the text file. The log viewer tool they provide can display the contents of that text file in an easy-to-read way - nicely formatted and split up. ref: https://www.eurekalog.com/help/eurekalog/bug_report_page.php
  4. Brian Evans

    Switch from JCL to EurekaLog

    Could just be logging the stacks of exceptions that are handled and logging them as part of seeing what errors users hit most often. Of limited use but have seen it done - like graying out invalid choices + hint of why on mouse over or click instead of letting the user select an item and then producing an error dialog/message latter on that users are hitting far too often.
  5. Brian Evans

    How do you shut off the Welcome Page?

    In recent releases deleting the plugin content from the layout is another approach. Use the Edit Layout at the bottom left of the Welcome page. Leaves a welcome page that loads fast and has a nice color gradient that closes when you open a project. I find the "no tabs yet" thing it puts in the middle of blank space when nothing is open more distracting than the empty welcome page with gradient.
  6. From my understanding: expressions always evaluate the same and it is the assignment operation doing type conversions when they are straightforward. That works for assignment because there is a variable on the left of a specific type and not an expression and they are never reversed. A comparison has an expression on both sides and can be reversed so type conversion on corner cases could mean A = B and B = A give different results. Better to have the programmer explicitly make each expression evaluate to the same type or at least be stricter than what happens on assignment.
  7. Brian Evans

    FireDac PostgreSQL Parameters

    Postgres limitation - no multiple statements in a prepared query (queries must be prepared if they use parameters). Note a single statement runs in a transaction anyway so the begin;/end; are not needed in the example. Most use stored procedures in the database when there is a need to execute multiple statements based off passed in parameters. Some use DO and pass in the contents of a stored procedure body as a string to run as an anonymous code block but then you can't pass in any parameters.
  8. Brian Evans

    FireDac PostgreSQL Parameters

    In Postgres BEGIN needs to be followed by a semicolon. It is equivalent to some other databases START TRANSACTION. It should be paired with a COMMIT and not END. Ref: PostgreSQL: Documentation: 17: 3.4. Transactions Single statements usually run as a transaction anyway - either the whole statement executes or none of it does. So, for a single statement your SQL would just be: update mytable set testno = testno + :increment where id = 1;
  9. Brian Evans

    FireDac PostgreSQL Parameters

    Parameters are not processed by Delphi inside string constants in SQL queries. You are using Dollar-Quoted String Constants (strings delimited by starting and ending with $$). do $$ string constant that is executed as an anonymous code block $$ Ref: PostgreSQL: Documentation: 17: 4.1. Lexical Structure
  10. Brian Evans

    FireDAC Exception handling without driver info

    That message comes from the underlying database so knowing which database is helpful in interpreting it. Seems counterproductive to be removing context from error messages.
  11. Note it is a 64-bit version of a 32-bit move function not a 64-bit move function. A 64-bit move function would have Count as: NativeInt and other changes to allow moves over the limits of a 32-bit integer.
  12. Brian Evans

    TEmbeddedWB in a 64 Bit application

    Starting with Delphi 12 they are disabled by default. What's New - RAD Studio - Disabling Floating-Point Exceptions on All Platforms
  13. Brian Evans

    Putting Delphi Application inside web page

    That has always annoyed me - step one of looking for products/solutions is to survey what is out there and compile a list with basic information. I usually just ignore/skip anything where the information is hard to come by as I have been burned too many times. Far too many companies' think their product is good for X when feature wise that would be true, but price or licensing terms make it not. I want to know that from the start not after wasting hours evaluating a product and dealing with sales calls. Most of the time 'contact sales' means the product has runtime fees, weird tiered pricing or terms making it unsuitable for a lot of scenarios.
  14. Brian Evans

    Implementing "desktops" using MDI, "broken" in D12

    Could free the forms instead of hiding. Has other issues like losing state but they can be overcome. Adding saving/loading form state is useful between program runs as well so work can be resumed quicker. MDIIssue2.zip
  15. After re-reading the post a couple of times: The poster is talking about the text on buttons in FMX.
×