Jump to content


Popular Content

Showing content with the highest reputation on 11/02/20 in all areas

  1. Hi all, I just wanted to let you know my (long-awaited) FMX book is now available (actually it is rolling out on Packt and Amazon so availability may be different across different countries). If you like to read some details you can read my latest blog post: https://blog.andreamagni.eu/2020/10/book-delphi-gui-programming-with-firemonkey-now-available/ I really hope the book will be useful to spread Delphi and FMX as development platform. Thanks for the attention, Andrea
  2. Clément

    Reading fields with different lenghts

    Hi, Showing some code always helps us give accurate answers. Anyway.... If you can read Sizeof(TMyData) in one peace, you could use a record like type TMyData = record bSTX : Byte; bSep1: byte; Field1: Array[0..1] of byte; bSep2 : Byte; Field2 : Array[0..5] of byte; bSep3: Byte; Field3 : Array[0..2] of byte. Field4 : Array[0..4] of byte; bsep4 : Byte; bETX : Byte; bLRC : byte; end; var MyData : TMyData; begin fillchar( MyData, Sizeof(TMyData) , 0 ); move( DataFromCOM[0], MyData[0], Sizeof(TMyData) ); // Use the data MyData.Field1; MyData.Field2; end; Always check if you are receiving the expected number of bytes. Check the values of STX, ETX and the separators to see if at least those are Ok. If this routine will be called "a lot", I suggest creating MyData as a class field, to be use as long as the class is not destroyed.
  3. It was first done well in this book, Hoare, C. A. R. Communicating sequential processes I have a book "Patterns in Java. A Catalog of Reusable Design Patterns Illustrated with UML | Grand Mark". This book describes the Producer-Consumer pattern, in my opinion this is your case. There are code examples for the queue.
  4. Got my copy too. Thanks Andrea
  5. Got my copy as well, thanks!
  6. Reading it now. Finally a nice and clear introduction to FMX - I wish this were part of the documentation from the first introduction of this framework, instead of a dry list of obscure classes present in the official docs today. Thank you for the excellent book!
  7. Carlos Tré

    Tools API - Changing Key Assignment

    I wrote it myself a few years ago, based on an article written by Cary Jensen that you can find here. Attached is the code for the expert in its current state, the changing of the format source key assignment is still a work in progress. Editor.zip
  8. The complete VCL package includes more than 750 VCL components including popular packages like LMD DockingPack, GridPack or LMD DialogPack (available for Delphi/C++Builder 6 and better, including 10.4 Sydney support). Read the news announcement or find summary of all changes in LMD 2020 release on What's New Page. Check the new trials and compiled Exe-Demos athttps://www.lmd.de/downloads Alle exe-demos were recompiled and digitally signed, for example the LMD DockingPack demo: https://files.lmd.de/downloads/lmd2020vcl/DockingPack_Demo.zip Feature Matrix of all LMD VCL products:https://www.lmd.de/feature-matrixIf you are interested in purchasing check out the order Page:http://www.lmd.de/shopping Halloween sale: Get 30% off for a limited time! This special offer is limited to orders via Shareit! (no resellers) between 31-Oct-2020 and 04-Nov-2020. All products and updates available on the shopping page qualify for discount. Please enter during ordering process the coupon LMDHALLOWEEN20 which grants a 30% discount. If you are missing links or if you need a special direct order link, please contact sales@lmd.de with the product you want to order. If any questions are left, please contact us at mail@lmdsupport.com!
  9. Dave Nottage

    The android app doesn't start at specific devices

    Thanks for that information. It might help other developers who make the same error. You're welcome!
  10. Remy Lebeau

    Find UDP Server

    Subnet broadcasting is supported only in IPv4, not in IPv6, you have to use multicasting instead.