Jump to content

Clément

Members
  • Content Count

    386
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by Clément

  1. Clément

    Pointers are dangerous

    Pointers are part of the package. I use them for performance and low memory footprint especially when dealing with low level code (bytes, records or low level TCP communication). The gain pointers bring to the table is worth the risk.
  2. Hi. I also ended up writing my own JSON serializer/deserializer based on delphi TJsonObject. (Using another JSON class created incompatibilities with RTL). It works on generics (TDictionary<>, TObjectDictionary<>, Tlist<>, etc), Tdataset, TStringList, enum and nested classes. Quite fast. I needed a special TDataset handling (speed wise) that none of the library I tried solved. Anyway, sometimes it's worth reinventing the wheel!
  3. Clément

    http://community.idera.com/ login woes

    Hello, I successfully managed to login to Idera's forum. They fixed the "reset password". I received the email with the link to proceed!
  4. Hi, Are you using FastMM bundled or downloaded (https://github.com/pleriche/FastMM4) ? The downloaded version has a lot more options and gives you more information including line numbers, very handy.
  5. Clément

    Detailed logging (for debugging)

    Hi, Why can't you write your log in levels. For example: MyLog.Info('Entering method X'); Mylog.Debug(1, 'Connecting to database'); MyLog.Debug(2, 'Connected to database = '+FDatabase.ConnectionString ); And the constructor Mylog := TMyLog.Create( 0 ); // No Debug information Mylog := TMyLog.Create( 1 ); // Only Debug 1 Mylog := TMyLog.Create( 2 ); // Debug up to level 2. This way you can activate debug using a INI file. [Settings] Debuglevel = 0; // Or 1 or 2 HTH, Clément
  6. Clément

    New in 10.3: IDE UI Improvements in the Main Window

    Very nice!! I spend every day of the week and sometimes weekend using delphi. The dark theme helped a lot! Those visual enhancements looks really nice! Please make this version very stable! I don't want to wait for an update to start using it!
  7. Clément

    Directions for ARC Memory Management

    Why can't we just write a simple collection of interfaces. That's what I did for some classes. Take for example TStringList: IARCStringList = Inteface procedure Add( aString : string ); procedure AddStrings( aString : string ); function AsStringList : TStringList; ... end; TARCStringList = Class( TInterfacedObject, IARCStringList ) private FList : TStringList; public // Implement all IStringListARC methods and properties. destructor destroy; // Will call FList.Free; end; Usage would be very simple: procedure DoSomething; Var S : IARCStringList; begin S := TARCStringList.Create; S.Add('One'); S.Add('Two'); ListBox1.Items.AddString( S.AsStringList ); // Will return FList end; I wrote for other classes such as TARCDictionary, TARCObjectDictionary, TARCDictionary<K,V>, TARCObjectDictionary<K,O>, etc. I use "const" wherever is required when I use those ARC interfaces. What problems do you see with such implementations (other than writing a lot of code)?
×