Brian Evans
Members-
Content Count
291 -
Joined
-
Last visited
-
Days Won
4
Everything posted by Brian Evans
-
The History tab the IDE editor shows them and lets you compare between the different versions. At the bottom right there are Code Design and History tabs. When the History tab is active there are Contents, Information and Differences tabs on the bottom left. There is also an Autoreover feature that will periodically save changes to modified files (default every 10 minutes) to a _recovery directory in case the IDE crashes. IDE -> Saving and Recovering.
-
Editor options [X] Create backup files and File backup limit.
-
function SHA1ofStr or Base64Encode fault output
Brian Evans replied to xauxag's topic in ICS - Internet Component Suite
The bug is in your code - not all binary data can cleanly be put in a string directly. The output of the hash function is in TBytes and the encode function can take TBytes as input. That string() cast you inserted between them is causing issues depending on the binary hash value. -
With a few exceptions for debugging purposes lower integrity processes cannot mess with higher integrity processes. That includes sending input or paste operations. The quick example for why this is not allowed would be a command window with Administrator privileges - not a good thing security wise if all other apps could paste whatever they wanted into it.
-
The Delphi ecosystem contracted over the years and a lot of third-party component developers had to increase prices or fold / exit the market. One that is still around is Developer Express (as somebody already mentioned) whose VCL components have good support and include a VCL Spreadsheet control: VCL Spreadsheet Inspired by Excel - Delphi, C++Builder (devexpress.com). The also have a VCL Layout & UI Design Control which you could add controls to for auto-layout: VCL Form Layout Control for Delphi and C++Builder Developers (devexpress.com). They have both 30-day trials and a demo program that does an excellent job of showing what that the various controls do and how they behave. Main page: VCL UI Components for Delphi & C++Builder | DevExpress scroll down for smaller packages with a subset of the components.
-
Convert Lat:Lon to LKS-92
Brian Evans replied to Janex72's topic in Algorithms, Data Structures and Class Design
Which LKS-92 coordinates? There are LKS-92 XYZ (spatial rectangular co-ordinates), LKS-92 BLh (geospatial co-ordinates on rotational ellipsoid) and LKS-92 TM (Transverse Mercator projections in plane co-ordinates). One (BLh) is already in long and latitude. Ref: Republic of Latvia Cabinet Regulation No. 879 Adopted 15 November 2011 Regulations Regarding the Geodetic Reference System and the Topographic Map System found at: Ministru kabineta (fao.org) (from Food and Agriculture Organization of the United Nations (FAO) website) Note: some latter revisions but they do not appear to have been translated (This document has not been officially translated by the State Language Centre.). Main ref site: Ģeodēziskās atskaites sistēmas un topogrāfisko karšu sistēmas noteikumi (likumi.lv) -
Where to put an app in Windows startup and shutdown and sleep mode?
Brian Evans replied to JohnLM's topic in General Help
Unclear what you are asking. You can't do anything "during" sleep modes as the system is asleep. If you just want dates and times for those events read the Windows Event Log where the Kernel-Power source logs events for all of those. -
delphi How do I execute FFMPEG from inside a VCL App?
Brian Evans replied to Marty001's topic in VCL
In Windows command line Find searches for text in files. In BASH it does look more like your find command, it would need to be run with WSL.EXE not CMD.EXE if you are using Windows Subsystem for Linux. The path probably needs to be put in double quotes in case it contains spaces and be fixed up to be what it would be looking for the Linux side. -
Looking at the source code and the error it looks like it tries to use text mode which then fails since that mode supports a limited set of characters. It uses some internal functions to test what mode it should use based on the input string but gets it wrong with your strings. The component does support an extended syntax where the bytes can be represented directly in the string using escape codes \ddd so you could convert the whole string to a UTF8string then build a string to input by escaping each byte value in the UTF8 string into the input string. Not as easy as it sounds due how Delphi tries to help with strings. No luck trying to get this to work either- Delphi really fights too hard and the docs do not help any. Copied St2DBarC.pas to the project directory and modified the GoodForNumericCompaction and GoodForTextCompaction by commenting out everything but the first line's Result := False; This forces binary mode. Still making sure the correct bytes are encoded seems iffy as the barcode looks too wide after passing in just \196\140.
-
Custom managed records with String List causing memory leak
Brian Evans replied to Gary's topic in FMX
"Leak" is a bit vague - usually there would be some indication of what leaked which can help narrow down what to look at. -
The replacement (SendInput function (winuser.h) - Win32 apps | Microsoft Learn) specifically mentions applications are permitted to inject input only into applications that are at an equal or lesser integrity level. Likely the same applies to the older API. This blocking just silently does nothing - no keys arrive.
-
Issue with Color Names Overlay in Object Inspector
Brian Evans replied to Shrinavat's topic in Delphi IDE and APIs
It is not unheard of for others to confirm they also encounter, make comments on, and find a way to reproduce a bug. An example would be: https://quality.embarcadero.com/browse/RSP-34111 which followed this pattern and a bug that was around for several Delphi releases was fixed. For those without QC access: it was about a dangling scroll bar sometimes seen in the IDE, fixed in Delphi 11. As for this one - looks like something is overdrawing just the color name on top of the color box + name that should be there. -
The source of the docs quoted by Uwe: File Extensions of Files Generated by RAD Studio - RAD Studio (embarcadero.com). This topic comes up in a search of the Athens online help for dsv but not in the help for previous versions.
-
Increasing registration count not possible without active maintenance support
Brian Evans replied to Leif Uneus's topic in Delphi IDE and APIs
I stayed on Delphi XE Professional or a long time - until buying a license for Delphi 10.2 Enterprise about 9 years later. I had no issues getting a bump when needed and being able to re-install the aging versions of Delphi, Developer Express VCL and NexusDB Standard Edition as needed over those nine years contributed to my decision to upgrade and have active subscriptions for all three today. Not sure that would be the case if I encountered friction in installing any of them during the close to a decade I did little paid Delphi development. -
TColor breaks memory layout
Brian Evans replied to dormky's topic in Algorithms, Data Structures and Class Design
You can also re-arrange fields to minimize the gaps added for alignment. A re-arranged second version of the record is also 8 bytes. TBloodyTColor2 = record aColor: TColor; aVar: smallint; aVar2: smallint; end; So why is it 12 bytes in your second version? 1. aVar takes 2 bytes. 2. Padding of 2 bytes to a 4-byte boundary since next member is 4 bytes wide 3. aColor takes 4 bytes 4. aVar2 takes 2 bytes. 5. padding of 2 bytes to make total record size a multiple of 4 (the largest member size). As described in the documentation: Internal Data Formats - Record Types (Delphi) - RAD Studio (embarcadero.com) -
[FireDAC][Phys][ODBC][Microsoft][ODBC SQL Server Driver]Connection is busy with results for another hstmt
Brian Evans replied to gkobler's topic in Databases
Could be a difference in the number of rows in the result set with a larger result set not getting all fetched on open. Various options to fetch them all before processing. The default is usually 50 records at a time. For the FireDac Monitor it looks like not everything has been setup/initialized before it is needed. -
[FireDAC][Phys][ODBC][Microsoft][ODBC SQL Server Driver]Connection is busy with results for another hstmt
Brian Evans replied to gkobler's topic in Databases
FireDac does have tracing and monitoring, it is very verbose by default, but you can reduce which events it outputs. This could help you see what query is still open. Tracing and Monitoring (FireDAC) - RAD Studio (embarcadero.com) -
The Microsoft ODBC support for Paradox and dBase always seemed to be more for data extraction than full database use. Useful to pull data for reports or when migrating to a different database but not to replace the BDE for a production application. Data dictionary changes and database maintenance are two weak areas. During a migration of a single user application from Visual dBase (16 bit, used the BDE) to Delphi + Flash Filer we used a third-party library to access the DBF files for migration purposes instead of the Microsoft ODBC solution. Fewer dependencies on what a user had installed locally meant fewer support issues. (was SoftSci's : TOPAZ (softsci.com))
-
Some still get by with a simple multiuser shared file database like Paradox through the BDE. The popularity of SQLite shows simple databases are still popular and BDE/Paradox fits that niche as well with more data types and multiuser support.
-
There is an option to select a Delphi version in the user profiles for this message board. There is currently no entry for Delphi 12 Athens.
-
You need to add a series per record.
-
Debugger Issue with Delphi 11.3 - Incorrect Evaluation of Breakpoint Results
Brian Evans replied to DelphiDinosaur's topic in Delphi IDE and APIs
Looks like Evaluate/Modify does not like that dynamic array syntax in the expression. Quick test moving it outside and the expression IndexText ('3',Nums) evaluates at the breakpoint without problems. const Nums : array of string = ['1','2','3']; idx := IndexText('3',Nums); -
Delphi 12 - Action Bar Menu painting issues with RDS
Brian Evans replied to Stéphane Wierzbicki's topic in VCL
It is an ActionMainMenuBar and the odd behavior, the mouse over highlighting makes menu entries darker and darker each time the mouse passes over them, is apparent in the Windows Sandbox after copying the project's EXE there. The form already has DoubleBuffered set to false which is all the new DoubleBufferedMode does to help over a RD connection. Changing the form width after the menu is darkened makes the menu redraw and it does so correctly. Looking at differences in Vcl.ActnMenus.pas between 11.x and 12 the draw code changed to add some styling and MDI support however reverting changes doesn't have any effect even in TCustomMDIMenuButton.Paint. A TMainMenu does not have the odd behaviour. -
It has come up before: Crowdstrike killing Delphi 11.2 - General Help - Delphi-PRAXiS [en] (delphipraxis.net) In general, for antivirus software it can be helpful to exclude or limit the real time scanning of developer tools (so Delph install directories etc) and software project directories (where source files and compiled files are placed).