Jump to content

corneliusdavid

Members
  • Content Count

    620
  • Joined

  • Last visited

  • Days Won

    11

Everything posted by corneliusdavid

  1. Yes, for simple variables but I'm pretty sure that functions have to be evaluated first. I ran a simple test of OP's code and verified before I answered. I ran it in Delphi 10.4; perhaps an earlier version of Delphi (or a compiler directive?) would change that. I totally agree with this.
  2. Yes. Order is not important here because the function must be run before the expression can be evaluated.
  3. corneliusdavid

    Need a grid of buttons that can have text/graphics in them

    I'm going to take a guess that it's easier because you're used to writing the code to do that. I'll bet, with a bit of research and experimentation, you could save yourself a lot of code using a "fancy flowgrid/panel/etc". These components make laying things out not only very quick and easy but also work with fluid form sizes (like mobile devices) a breeze when things change at runtime. Of course, desktop apps often have a rigid layout so it's not critical, but since this discussion is based on FireMonkey, we can't assume it isn't mobile.
  4. corneliusdavid

    Need a grid of buttons that can have text/graphics in them

    Whether to build the controls dynamically depends on your project--if you have a lot of buttons or want them added dynamically based on configuration or options or something, then that's very doable. It's a little easier to see how everything will fit and look if you do it at design-time, though. For activating when you hover over a button, use the MouseEnter and MouseLeave events.
  5. corneliusdavid

    Need a grid of buttons that can have text/graphics in them

    For a "grid" of buttons, you don't need to use a grid control--the first thing I thought you meant when I was reading this. Instead just place the buttons in a grid-like manner on a form or panel. I would highly recommend using a FlowLayout to provide automatic arrangement of the buttons to accommodate both landscape and portrait views of the app (if you're aiming to put this on small devices). Watch this Embarcadero video that demonstrates the concept.
  6. corneliusdavid

    Move a Function or Procedure to a Unit??

    This is why I use the constant sLineBreak as defined in the System unit.
  7. corneliusdavid

    Delphi 10.3 Debug

    Excellent!
  8. corneliusdavid

    calculete time in delphi

    I agree. Since I discovered TStopWatch (in the RTL's Diagnostics unit), I use it exclusively for any timing as it's so simple. It's been in Delphi at least back to XE if not before. No use writing your own timing routines anymore.
  9. corneliusdavid

    Delphi 10.3 Debug

    There could be a whole bunch of reasons but we'd just be shooting in the dark unless you show some code (and possibly surrounding contextual code). Did you do a build/compile without debugging and then look to see if there's a little dot to the left of the code line in the editor which indicates it's a line that will be executed? Have you tried breaking at other points in the code? Does the app actually run?
  10. FYI.. Andreas released an update to DDevExtensions for Delphi 10.4 in July, 2021. However, it's really nice that we have two places to get this feature. Thanks @dummzeuch!
  11. corneliusdavid

    Bookmarks dead?

    LOL! Yeah, I like to eat and keep a roof over my head, so I swallow my pride once in a while. This is good insight. I like to give the benefit of the doubt, perhaps too much so. After writing a book that covered all the aspects of the IDE and supporting tools and various platforms, I have a greater appreciation for how much there really is to keep up; that's reinforced when I hear webinars about all the things being worked on and bugs addressed. (But then again, why are there so many bugs?) So hearing these stories do place this thread in better perspective. But I read so many complaints in these forums and well, I guess I feel there's just too much whining sometimes. All too often, employee programmers are caught in the middle between business people only concerned about the bottom line and the plight of the end user that has to use sub-par products. That's why I'm working for myself now--I got sick of not being allowed to upgrade products or redesign a library for better use, even if it has to push out other projects for a few weeks. And if a tool isn't working right for me, I switch tools. I guess that's kind of along the same principle of quitting if a job doesn't work out--but again, it's not feasible when you have thousands or millions of lines of code to deal with.
  12. corneliusdavid

    Bookmarks dead?

    You make it sound so simple but that's seldom reality. I've had jobs where I've worked on fascinating projects and with great people but there will be one manager that promises things to too many customers and then has to make excuses for why stuff isn't done. When we get on the phone with customers, we're not allowed to talk about internal priorities or other reasons why something isn't done. It's quite frustrating but just walking out isn't always the best choice if there are no other jobs in the area or if other parts of the employment are good enough to keep you there. I was eventually able to leave that company but it took me a while to line up something else.
  13. corneliusdavid

    Encrypting string

    You mention passwords (and then serial numbers). Instead of encrypting, do you just want to hash it and store the hash, which can't be decrypted? This is often done with passwords (or a serial number that is entered for verification) where you don't ever need to decrypt the stored value, just generate a hash each time it's entered and compare the entered hash to the stored hash.
  14. Yes, I've implemented this technique many times over the years. For example, in a plugin where I don't have easy access to the main application form's handle or when I don't want a global form variable laying around for inadvertent use and just have a quick dialog form to show and destroy. Someone may correct me but as far as I know, it doesn't do any more than set the Owner property; then when the owner is being freed, its destructor checks to see if the Owner is nil and if not, frees it. So, if you assign it, then free it yourself, it'll try to be freed twice unless you set the Owner := nil manually. Conversely, if you don't assign it and don't free it, you'll create a memory leak. (I only mention these as things NOT to do to give more insight into what's happening.)
  15. Since it was created like this from Form1: you don't need to explicitly free it--it will be freed when the owner form, Form1, is freed. Sometimes, however, you want/need to manage it yourself. For example: var Form3: TForm; begin Form3 := TForm3.Create(nil); try // do stuff... finally Form3.Free; end; This may be the case if you don't have a current form available.
  16. corneliusdavid

    Bluetooth LE only for paired Devices on Windows?

    Excellent! There's a whole chapter devoted to Bluetooth (class & low-energy). BLE builds on Classic and Beacons build on BLE. It was a hard chapter to research. I hope it helps!
  17. corneliusdavid

    AnsiString oddities

    @Remy Lebeau Thanks for the correction and explanation.
  18. corneliusdavid

    IDE being destroyed by new versions

    Got it. Thanks!
  19. corneliusdavid

    Bluetooth LE only for paired Devices on Windows?

    Yes: https://docwiki.embarcadero.com/RADStudio/Sydney/en/Using_Classic_Bluetooth#Discovering_and_Pairing_with_Remote_Devices
  20. corneliusdavid

    IDE being destroyed by new versions

    This should be reported to Embarcadero. Until it's fixed, restart the IDE every couple of hours, perhaps (I know, lame work-around). I pulled up Delphi XE to compare, turned on Auto Invoke (I had it unchecked) and the first time I started typing a method, I had to hit Ctrl+Space but after that it did come up automatically. Back to Delphi 10.4/11... you're right, it doesn't work. Found it's already reported in QC: RSP-29827. This one, I don't understand. If you use code completion, the method name and its parameters are placed in the code before you type it, so how could they already be there? In your example, let's say you type "say" and hit Ctrl+Space for code completion, you wouldn't have typed ('') yet so I would expect code completion to put in "SayThis()" for you; how did the extra set of parenthesis with quotes get there?
  21. corneliusdavid

    Bluetooth LE only for paired Devices on Windows?

    Delphi has the TBeacon component that can be configured to listen to BLE devices without pairing: https://docwiki.embarcadero.com/RADStudio/Sydney/en/Using_Beacons
  22. No, there are many free or inexpensive places to get icons and packs of standard images for small and simple use. Here are some: Glyfx has been around a while. Icons8 is on GetIt. The Noun Project. All of these have free samples or restricted plans along with a variety of pricing plans for heavier use or higher resolution images.
  23. corneliusdavid

    IDE being destroyed by new versions

    I don't see any of the Object Inspector or Structure Pane problems you mention. I tried everything in both a FireMonkey and VCL project. I don't totally get the last two items, I always hit Ctrl+Space when I want a suggestion for code completion or parenthesis--didn't even think about it. I haven't seen the double-parenthesis unless I type them. Can you tell us about your environment: Windows OS version Memory Hard disk space free Monitor resolution Project size Maybe if you're using a 32-bit OS (unsupported) or have very little memory free or something else, it could be affecting this. Also check Tools > Options > User Interface > Editor > Language and look at each of the tabs under Delphi to make sure you haven't missed a checkbox to get the Code Completion working for you. Delphi 11 has some problems and it was probably released too early but it certainly is not unusable.
  24. corneliusdavid

    Wordpress to Firemonkey

    So you don't actually want to "convert" the website into a mobile app, you want to write a mobile app to access the content of a website built with WordPress, right?
  25. corneliusdavid

    I need FireMonkey demo projects

    FireMonkey is for both Delphi and C++Builder. Start here to learn about FireMonkey: https://docwiki.embarcadero.com/RADStudio/Alexandria/en/FireMonkey Then find examples here: https://github.com/FMXExpress/Firemonkey
×