Jump to content

Lars Fosdal

Administrators
  • Content Count

    3456
  • Joined

  • Last visited

  • Days Won

    114

Everything posted by Lars Fosdal

  1. program Project4Fixed; {$APPTYPE CONSOLE} {$R *.res} uses System.Generics.Collections, System.SysUtils; type IMyIntf = interface ['{FCAFF2E8-5F8E-4473-8795-89BD41C89D57}'] end; TMyList<T:IMyIntf> = class FItems: TList<T>; procedure AddItem(AItem: T); function GetItem: T; end; TMyType = class end; TMyTypeList<T:TMyType> = class FItems: TList<T>; procedure AddItem(AItem: T); function GetItem: T; end; { TMyList<IMyIntf> } procedure TMyList<T>.AddItem(AItem: T); var Value: T; begin FItems.Add(AItem); // E2008 Incompatible Types No more - Compiler happy FItems.Add(Value); // Compiler is happy end; function TMyList<T>.GetItem: T; begin Result := FItems[0]; // E2008 Incompatible Types No more - Compiler happy end; { TMyTypeList<T> } procedure TMyTypeList<T>.AddItem(AItem: T); var Value: T; begin FItems.Add(AItem); // E2008 Incompatible Types No more - Compiler happy FItems.Add(Value); // Compiler is happy end; function TMyTypeList<T>.GetItem: T; begin Result := FItems[0]; // E2008 Incompatible Types No more - Compiler happy end; begin try { TODO -oUser -cConsole Main : Code hier einfügen } except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end.
  2. Well, I voted now, because I got bit by it.
  3. Lars Fosdal

    gnEdit2k component

    Seems pretty much dead and buried online. You are probably looking at a painful refactoring.
  4. Lars Fosdal

    How to use unit BufferedFileStream & FastCopy?

    To be fair, one of the three disk drives in my laptop is rotating. I'm oldschool (and very large SSDs are still too expensive).
  5. Have you checked if your app receives any notification after the installation of the font? A sleep seems so random... what if the system is REALLY busy so that the sleep is too short?
  6. Lars Fosdal

    How to use unit BufferedFileStream & FastCopy?

    Physical heads are increasingly rare these days. My speculation is that the low level DMA mechanisms in the OS might outperform the higher level file routines - but it is pure speculation.
  7. Lars Fosdal

    Delphi FireDAC .Post on Firebird table

    /off-topic: My mind boggles at the thought of a table without a primary key...
  8. Lars Fosdal

    How to use unit BufferedFileStream & FastCopy?

    A random thought I had - what if you copied from one memory mapped file onto another, with multiple threads? I am not even sure that is possible, and it might be a problem with so large files, due to disk storage fragmentation. Edit: Not sure if it is possible to do memory mapping for a removable USB drive. Perhaps you simply need a faster USB unit 😉 https://www.tripplite.com/products/usb-connectivity-types-standards As for copying across network drive, this is where CopyFileEx really does a lot of low level problem solving for you.
  9. Lars Fosdal

    How to use unit BufferedFileStream & FastCopy?

    Are you doing local copying or copying across the network? From empirical evidence, it seems to open files with read only, deny none. I've never experienced a sharing violation, and I have multiple concurrent clients that pull down changed .exe files from a central share.
  10. Lars Fosdal

    Data Base does not save data

    Why are you extracting the blob with AsString and not AsBlob?
  11. Lars Fosdal

    Data Base does not save data

    AFAIK, the Text field in SQLite has no length limit. Why use a BLOb?
  12. Lars Fosdal

    Data Base does not save data

    Even professionals can't really do much without actual source code. Can you reproduce the problem in a self contained compilable example?
  13. Lars Fosdal

    What it's like to be a Delphi Developer

    In some aspects VS is terrible. It is just a different terrible than the terrible RAD Studio.
  14. Lars Fosdal

    10.4.1+ Custom Managed Records usable?

    The If and Case statements expressions are indeed pretty nice.
  15. Lars Fosdal

    upcoming language enhancements?

    It works for global vars, though. unit MiscTestMore; interface uses System.SysUtils; type TOutput = reference to procedure(const aText: string); TRec = record a: string; b: integer; end; const c_TRec: TRec = (a:'A'; b:1); // Works c_TRec2: TRec = (a:'A2'); var v_TRec: TRec = (a:'A3'; b:2); // Works v_TRec2: TRec = (a:'A4'); procedure RecordConstTest(const Output:TOutput); implementation function Fmt(const aTitle: string; const aRec: TRec):String; begin Result := Format('%s a:"%s" b:%d', [aTitle, aRec.a, aRec.b]); end; procedure RecordConstTest(const Output:TOutput); begin Output(Fmt('c_TRec ', c_TRec)); Output(Fmt('c_TRec2', c_TRec2)); Output(Fmt('v_TRec ', v_TRec)); Output(Fmt('v_TRec2', v_TRec2)); // var l_TRec1: TRec := (a:'A5'; b:3); // Fails // var l_TRec2: TRec := (a:'A6'); var l_TRec: TRec := v_TRec; // Works Output(Fmt('l_TRec ', l_TRec)); end; end. Output: c_TRec a:"A" b:1 c_TRec2 a:"A2" b:0 v_TRec a:"A3" b:2 v_TRec2 a:"A4" b:0 l_TRec a:"A3" b:2
  16. Lars Fosdal

    10.4.1+ Custom Managed Records usable?

    I like clarity. Brevity is not always clarity.
  17. Lars Fosdal

    Logging from RAD Server

    There is documentation, but it is meagre on examples of use. http://docwiki.embarcadero.com/Libraries/Sydney/en/EMS.Services.TEMSLoggingService
  18. Lars Fosdal

    What it's like to be a Delphi Developer

    Lots of good advice and my kind of humor, Joe! Great interview!
  19. Lars Fosdal

    Prevent OnClick to be handled twice

    Can you verify that you are not calling Click from other methods / event handlers? Is it triggered from OnClick, or from OnMouseUp/OnMouseDown?
  20. Lars Fosdal

    Image32 - 2D graphics library (open source freeware)

    My first PC as well. Well, technically - the Memotech MTX512 belonged to my dad, but guess who used it the most?
  21. Interesting. I wonder why it was limited to the OLE/COM scope?
  22. @Pat Foley - That is something entirely different. I was talking about naming parameters to a method.
  23. I sometimes wish I could call Delphi code in SQL style. Run(aText2='my text'); i.e. specify individual parameter(s) and leave the rest as their default.
  24. I was working with various kinds of financial data, weather data and power data (prices, volumes, etc), and thousand separators usage was variable. Spaces, commas, dots, the lot. It was a hodge-podge of formats since very few standard exchange formats existed at the time. Even vendors that you had contractual agreements with, would change the format on the fly, without notice. "Yeah, we changed the format. Nobody told you?"
×