Jump to content

corneliusdavid

Members
  • Content Count

    408
  • Joined

  • Last visited

  • Days Won

    6

Everything posted by corneliusdavid

  1. Is there a PDF version available? Or even Kindle?
  2. corneliusdavid

    Delphi 11.1 - a month later

    Yes, I misspoke. I should've said, "I need to use a VirtualImageList to automatically scale images ..."
  3. corneliusdavid

    Delphi 11.1 - a month later

    I'm just starting to use Delphi 11 (having been working on a big project in 10.4). This was what I saw at first and just re-read the blog about High-DPI mode and checked the option to use it in the VCL form designer--and now the forms are scaled properly in the IDE! Basically, I was using the unaware mode because of the tiny forms. But now, comparing both aware and unaware modes, I've noticed two things: 1) the bitmaps in the forms are smaller in the High-DPI aware version of Delphi which means I need to use a VirtualImageList and include various sizes of the bitmaps so the app will use the right version as the scale changes; and 2) the code is a little crisper and a few more lines show on the screen using the same font and size.
  4. corneliusdavid

    Delphi 11.1 - a month later

    Same here. I use Delphi on a high-DPI monitor and if I use the "aware" version, my forms are so tiny, I can't read them.
  5. If you're doing mobile development with Delphi, you have no choice but to upgrade--or better, keep a subscription active. That's not a paid advertisement, it's just reality.
  6. corneliusdavid

    date

    You didn't mention whether this is a date, string, or integer value, so I'm just going to assume using the Date function: FormatDateTime('yy', Date)
  7. You might need to run xcode on your Mac and get it updated. I had problems until I did that and it needed to install some stuff. Then I refreshed the SDK in Delphi and it upgraded to SDK 15.5. I also got the patch for Delphi 11.1. With that combination I was able to compile/deploy a simple test app to my iPad via PAServer 22.0. Any reason you can't upgrade? There are always patches coming out for everything--it's a pain to keep everything up to date, I know.
  8. corneliusdavid

    macOS where to save downloaded executable?

    You should be able to download and execute them wherever you can write to files--a data directory under a user folder is just fine. Executable files are not restricted to running only from special "Program Files" type of folder. The only caveat is that an anti-virus program may catch it and block saving/launching it if it's not signed and/or well-known.
  9. corneliusdavid

    ListView styled/platform bug?

    I confirm this crashes on my iPad when those 4 lines are commented out. It's not a terribly inelegant work-around but since the same code doesn't crash on Win/MacOS, it does seem like there's a bug in there.
  10. corneliusdavid

    How is text being saved to the database?

    Just an additional tip... You can right+click on an object (or group of objects) and select Hide Element(s) to hide ones you're not interested in. You can also put groups of components into Layers to only show a limited set at a time to make working in the LiveBindings Designer easier to manage.
  11. corneliusdavid

    DFM file is different between version control and Delphi

    I guess the idea is that since a DFM is a design tool, you can see and access the components directly without needing to search. Delphi's "Find in Files" only searches the code files (.PAS) and project files (.DPR, .DPK, .DPKW) unless you change the "Where" selection to "Search in Directories." I seldom need to search .DFM files--and then I use an external search tool.
  12. corneliusdavid

    How is text being saved to the database?

    By default, the LiveBindings Designer will show all objects, allowing you to hook them up. When you hook them up, lines appear between the connected ones. If there are no connections, your app is not using LiveBindings. In this screenshot, only two components are connected: Hope that helps!
  13. corneliusdavid

    DFM file is different between version control and Delphi

    Delphi forms and data modules are comprised of two physical files: 1) .PAS, and 2) .DFM. The .DFM contains all the components and properties set up at design-time in the Delphi IDE; the .PAS file is the "code-behind" or the logic that makes it all work. The queries are stored in the SQL property of query objects, just another text property of a component on the form; thus, they're stored in the .DFM. What you're (likely) seeing in the version control is a difference in the .DFM, not the .PAS file. Your code (.PAS) may not have changed but if a query does, then your .DFM would change.
  14. corneliusdavid

    Parnassus Bookmarks for Delphi 11 Alexandria?

    FWIW, both plugins installed and restarted the IDE without error for me.
  15. corneliusdavid

    Parnassus Bookmarks for Delphi 11 Alexandria?

    That's not similar at all. Ctrl+Shift+C is Class Completion; use Alt+UpArrow or Alt+DownArrow to jump between implementation and interface of a method. Neither of those are what I was describing.
  16. Yes, it does. In one project I did a while back, I separated the functionality into three different data modules, each with a TActionList and the main form used all three data modules. When selecting an action on a control, all actions from all data modules were available, easily identified by <Unit>.<Action>.
  17. I use actions a lot. In fact, sometimes I group related sets of actions into data modules, then use the data modules in the forms. Instead of double-clicking event handlers and calling procedures to do the work (or Execute methods of actions), just hook the actions directly up to the controls. The caption of the TAction becomes the caption of the menu or button; the Execute event of the TAction becomes the OnClick event handler of the Menu or Button. You can also provide icons for the associated controls right within a TActionList as well. Later, if you decide to change the user interface from using menus to using buttons (for example), you don't have to change the captions or event handlers but just assign the TAction! There are many other ways and probably some more "pure MVC or MVVM" but this has worked really well for me.
  18. corneliusdavid

    How is text being saved to the database?

    There's probably an OnChange or OnExit event handler for that DBEdit that is doing the automatic save. DBEdits have a DataSource property so you can reference the underlying data source with that property. DBEdits also have a DataField property which points to the field in the database for which the value is read and written. Delphi's VCL provides DBEdits as a convenience and watches when the focus leaves the control to update the data set held in memory until the entire dataset is posted back to the database. So you could simply add one line to your ButtonClick event to change the focus after the text is set: DBEdit86.SetFocus; assuming there's a DBEdit called DBEdit86. Perhaps just switch focus to the OK button or some other control. (There's also a way to just switch focus to the next control in the window but that escapes me at the moment). But a better way would be to do this programmatically (instead of trying to mimic what the DBEdit has to do), something like this: procedure TfDesignMaster.NoUPCButtonClick(Sender: TObject); begin DBEdit85.DataSource.Edit; DBEdit85.DataSource.FieldByName(DBEdit85.DataField).AsString := 'NO UPC ON ITEM'; DBEdit85.DataSource.Post; end; Now, assuming you know what the DataSource is, you can list it explicitly instead of referencing it with "DBEdit85.DataSource"; same with the FieldName--I just used the information I had here. For example: procedure TfDesignMaster.NoUPCButtonClick(Sender: TObject); begin InventoryTable.Edit; InventoryTable.UPC.AsString := 'NO UPC ON ITEM'; InventoryTable.Post; end; There are a couple of gotchas you need to understand that only you will be able to answer by looking at the code in that form: Is the DataSet already in Edit mode? If so, you don't need to call .Edit. Will other edit controls or application logic expect the DataSet to still be in Edit mode after that button is clicked? If so you don't want to call .Post (or call .Edit again immediately after). There are probably several other considerations but this is a start.
  19. corneliusdavid

    Working with Delphi and Excel

    Uh, how do you expect to get the contents of a file without opening it? Or do you mean that you don't want to use OLE? I've used XLSReadWrite successfully.
  20. corneliusdavid

    Gradiant from an array of value

    So since you can't find one, just write your own. It shouldn't be terribly difficult. You could probably even calculate the RGB value based on the number given.
  21. corneliusdavid

    "Fatal: F2048 Bad unit format" error in Delphi 10 Seattle

    It's not Delphi that needs the path set--it's Windows. Windows doesn't use the registry to find and launch the application--dcc32.exe in this case. The first instance of dcc32.exe that Windows finds in the PATH is the one that runs. And by default, the last version of Delphi installed will be the version of dcc32 that automatically launches because installing Delphi prepends the system path with bin folder of that version of Delphi.
  22. corneliusdavid

    "Fatal: F2048 Bad unit format" error in Delphi 10 Seattle

    I think @Stompieis right. Even though you're running it from the Studio 17.0 (Delphi 10 Seattle) folder, it might be picking up the path for the newer version of Delphi instead. On my main development machine, I have only Delphi 10.4 and 11 installed. I ran dcc32 --version from both the "21.0" and "22.0" folders: And it picked the same one, the Delphi 11 version, both times. It used to be that Windows would look in the current folder first to run an application but I think it now looks through the PATH environment variable first. A reference sheet I keep handy shows the relationship between the compiler version, the product name, the Delphi version, and the Studio version: VER300 - Delphi 10 Seattle (Delphi 23, Studio 17.0) VER310 - Delphi 10.1 Berlin (Delphi 24, Studio 18.0) VER320 - Delphi 10.2 Tokyo (Delphi 25, Studio 19.0) VER330 - Delphi 10.3 Rio (Delphi 26, Studio 20.0) VER340 - Delphi 10.4 Sydney (Delphi 27, Studio 21.0) VER350 - Delphi 11 Alexandria (Delphi 28, Studio 22.0) When I ran the folder-specific version of dcc32, it used the correct one:
  23. corneliusdavid

    Parnassus Bookmarks for Delphi 11 Alexandria?

    My favorite and most used feature of the Parnassus plugin is in the Navigator plugin with it's Go To Shortcut. With a default hotkey of Ctrl+G, it drops a stack-based bookmark, incrementally searches as you type a destination, jumps there once you select it, then Escape takes you right back. I'm often going up to the implementation section to add a unit to the uses clause and then want to continue where I was at. This is a huge productivity boost for me. Most of my development is still in 10.4.2 but I know there are other IDE plugins and shortcuts that could get me close if I move on to D11. Or I could try and remember the built-in keys that do the same thing: Drop a stack-based bookmark: Ctrl+K, Ctrl+G Go to the Navigation Toolbar for Sections: Ctrl+Alt+N, Ctrl+Alt+S Pick up the stack-based bookmark: Ctrl+Q, Ctrl+G YUCK! References: Using the Bookmark Stack: https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Using_the_Bookmark_Stack Using the Navigation Toolbar: https://corneliusconcepts.tech/delphi-productivity-tips-navigation-toolbar
  24. corneliusdavid

    .NET kill the Delphi IDE

    Well, there is that.
×