Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 08/02/24 in Posts

  1. A.M. Hoornweg

    Windows 11, VMWare Workstation, very slow VCL redraw

    I've found the solution. Turning OFF 3-D acceleration in the VM made the issue disappear completely!
  2. Uwe Raabe

    Add a Checkbox column to a DBGrid?

    You somehow misread my advice. The DefaultDrawColumnCell call should be in the non-boolean case, where all non-boolean fields are handled: procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); const CtrlState: array[Boolean] of integer = (DFCS_BUTTONCHECK, DFCS_BUTTONCHECK or DFCS_CHECKED) ; begin if (Column.Field.DataType=ftBoolean) then begin DBGrid1.Canvas.FillRect(Rect) ; if (VarIsNull(Column.Field.Value)) then DrawFrameControl(DBGrid1.Canvas.Handle,Rect, DFC_BUTTON, DFCS_BUTTONCHECK or DFCS_INACTIVE) else DrawFrameControl(DBGrid1.Canvas.Handle,Rect, DFC_BUTTON, CtrlState[Column.Field.AsBoolean]); end else DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State); end;
  3. Angus Robertson

    What is the best way to accomplish this?

    I've just written a similar application using ICS components, a server listens for remote clients to connect, those connections are kept open permanently with a tiny data packet periodically, and the server can send commands back to the clients when required. This application is actually server monitoring locally, if the remote client stop communicating, the server will restart the Windows service. I wrote a similar system 20 years ago using ICS monitoring vehicles using wifi (before 3G) and triggering FTP uploads (CCTV) from them. Angus
  4. Well, first what comes to mind is MQTT, there is a punch of free and commercial libraries for Delphi/Pascal that provide MQTT. about how to handle no DNS, well if you buy a DNS form anywhere then move it to your free CloudFlare account, then you have very powerful infrastructure to build on, see, you don't need to assign your bought DNS to the server IP, you could use a subdomain, also you could use a subdomain TXT record, the client in this case will not lookup lets say myserver.alank2.com, but will the TXT record for this subdomain (or any domain) where the server IP is stored as plain text value, then connect to it. You can borrow a subdomain form i friend, a trusted one to store your TXT record. CloudFlare has brilliant control over DNS and its records, the slowest changes i witnessed was around 45 seconds over so many years of using their DNS services and thousands of changes and update, (many of these changes were automated using their API), using free CL account. Also just searched for MQTT providers in case you don't want to use your own server at all, and found this https://myqtthub.com/en They looks like have free account to test, it might be enough for you.
  5. Dave Nottage

    Delphi 12.1, Xcode 15.4 (iOS 17.5)

    Same here. I needed to use: GlobalUseMetal := True; (adding FMX.Types to the uses clause) In the project source to stop the app from crashing. Someone else (not sure where, exactly) reported that re-importing the iOS Simulator 17.5 SDK (first deleting the cache folders in the PAServer folder on the Mac) fixed it for them, but that didn't work for me.
×