Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

8 Neutral

Recent Profile Visitors

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

  1. david_navigator

    Delphi 64 bit Registration Tools for Windows Apps

    We use (and have used for over 20 years) CopyMinder from Microcosm. This supports 64 bit delphi apps. https://www.microcosm.com/software-protection/copyminder
  2. david_navigator

    Test Insight not drawing correctly

    Wonderful. (Easy when you know how 🙂 All Now Working. Many thanks.
  3. david_navigator

    Test Insight not drawing correctly

    Version of TestInsight - which is the latest I can find. DunitX installed from Gettit last night, so I assume it's the latest version. (DunitX a reinstall as the update to D10.4.2 seemed to remove it) Everything seems to be working from a testing POV - the tests run and report errors correctly and the footer of TestInsight displays what has happened correctly, it's just the tree view of tests that seems to be missing. It's definitely a drawing issue as if I move my mouse over where the tree view nodes should be drawn then I get the correct popup hint, furthermore double clicking where a node should have been drawn changes the popup hints (and the the right click context menu) in the correct way.
  4. david_navigator

    Test Insight not drawing correctly

    Test Insight has stopped drawing correctly and I don't know where to look to find the problem (tried restarting PC etc). You can see that the tests are running and any errors are displayed, but the details of the test are missing. Additionally the "form" thinks that the display area is very wide (notice the bottom scrollbar) - first screenshot with scroll bar to the left & second to the right. I've also tried the form undocked Help !!
  5. david_navigator

    SQL expression evaluation not supported

    Do you need to cast the results to be the same type of the field ?
  6. david_navigator

    Delphi compatibility with Windows 11?

    What happens when your PC dies and you try and move your HDD to another machine - will it be usable ?
  7. david_navigator

    Abandoned components?

    We replaced it in one of our apps with TMS TPlanner. No idea how it compares to the other alternatives mentioned.
  8. david_navigator

    Program using FDTable that works on my computer, but not on others... (Database)

    Does the info here help at all ? https://stackoverflow.com/questions/26244425/general-error-unable-to-open-registry-key-temporary-volatile-from-access
  9. david_navigator

    Range check error.

    @Kas Ob. Thanks. I think that makes sense. The code that calculates Count is function Tcomportserver.InQue : Integer; var Errors : DWORD; ComStat : TComStat; begin if not FConnected then begin Result := 0; end else begin if not ClearCommError(ComHandle, Errors, @ComStat) then raise EComStatus.Create('Unable to read com status: ' + LastErr); Result := ComStat.cbInQue; end; end; so I think what you're saying is that at the time InQue runs (count) there might be 100 bytes waiting to be read, but by the time ReadString gets called, that might be 150 bytes ? It's probably never risen it's head as a problem because this code is simply processing short barcodes, so it's 10 bytes, then a pause whilst the human does something and then another 10 bytes etc, I'll refactor it though and check that it still works as the user expects.
  10. david_navigator

    Range check error.

    I've no idea. It's one of those units found on the internet many years ago and seems to have been working fine up until now.
  11. david_navigator

    Range check error.

    @Remy Lebeau Thanks for that - seems to address quite a few issues the original developer overlooked. I noticed that in the original code the developer was using WaitForSingleObject(Overlapped.hEvent, INFINITE); if not GetOverlappedResult(ComHandle, Overlapped, BytesRead, False) then Whereas in your version you are using if not GetOverlappedResult(ComHandle, Overlapped, BytesRead, True) then Do these do the same thing ?
  12. david_navigator

    Range check error.

    This com port routine has started to throw a range check error for one customer, at line ReadFile(ComHandle, Str[1], Count, BytesRead, @Overlapped); It's old code which has worked for years, but I'm guessing something in D10.4.2 is doing something differently as this customer is testing a 10.4.2 compiled version. Are there any gotcha's screaming out - I have a feeling that it's probably something to do with the Str[1] parameter, but I'm not sure. function Tcomportserver.ReadString(var Str : AnsiString; Count : Integer) : Integer; var Overlapped : TOverlapped; BytesRead : DWORD; begin SetLength(Str, Count); FillChar(Overlapped, SizeOf(Overlapped), 0); Overlapped.hEvent := CreateEvent(nil, True, True, nil); ReadFile(ComHandle, Str[1], Count, BytesRead, @Overlapped); WaitForSingleObject(Overlapped.hEvent, INFINITE); if not GetOverlappedResult(ComHandle, Overlapped, BytesRead, False) then raise EWriteError.Create('Unable to write to port: ' + LastErr); CloseHandle(Overlapped.hEvent); SetLength(Str, BytesRead); Result := BytesRead; end; Many thanks
  13. david_navigator

    Transforming Data (Pivot ?)

    Yes, got it working with the Pivot Grid. If I add some Custom Summary code, then it does what I want 🙂 procedure TForm50.cxDBPivotGrid1Field3CalculateCustomSummary(Sender: TcxPivotGridField; ASummary: TcxPivotGridCrossCellSummary); begin with ASummary do begin if Records.Count >0 then begin Custom := GetValue(Records[0]); end else Custom := ''; end; end; I was also hoping that the TcxPivotGridSummaryDataSet would create a dataset that reflects the grid e.g Fuel Oil Water Temperature Level Ok Ok ================================================== 10 True False Hot 5 True False Warm 100 False True Cold but is seems to just export the same dataset as the source of the Pivot grid. Will need to do some more playing with that. i.e Instance Setting Value ========================================== 1 Fuel Level 10 1 Oil OK True 1 Water OK False 1 Temperature Hot
  14. david_navigator

    Transforming Data (Pivot ?)

    The number settings in a dataset is determined by the user, not the developer. The number of different datasets is also determined by the user. As the developer I have to come up with a row -> column solution that will work for any dataset the user designs.
  15. david_navigator

    Transforming Data (Pivot ?)

    No this was a simplification. There are also many data sets e.g the original sample shown is storing data about an engine, there maybe a similar dataset storing say electrical data. There are [user defined] rows per instance and actually the number of rows can vary between datasets As the table will be filtered by dataset, they're not really relevant to the solution. Since I posted the original Question I have got further with DexExpress's Pivot Grid, so it maybe that it is the prefered solution. Dataset Instance Setting Value ========================================== 1 1 Fuel Level 10 1 1 Oil OK True 1 1 Water OK False 1 1 Temperature Hot 1 2 Fuel Level 5 1 2 Oil OK True 1 2 Water OK False 1 2 Temperature Warm 1 3 Fuel Level 100 1 3 Oil OK false 1 3 Water OK true 1 3 Temperature Cold 2 1 Voltage A 240 2 1 Voltage B 380 2 1 Current A 10 2 1 Current B 30 2 1 Warning Light On 2 1 Filter Colour Red 2 2 Voltage A 440 2 2 Voltage B 120 2 2 Current A 180 2 2 Current B 30 2 2 Warning Light On 2 2 Filter Colour Blue