Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Kryvich last won the day on September 29 2019

Kryvich had the most liked content!

Community Reputation

93 Excellent

1 Follower

Technical Information

  • Delphi-Version
    Delphi Community Edition

Recent Profile Visitors

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

  1. Of course HTTPServer should be "generalized" to let use it in such way.
  2. @aehimself Or using generics: TMyApplication2<T: TBaseEncoder> = class strict private _myencoder: TBaseEncoder; public constructor Create; end; constructor TMyApplication2<T>.Create; begin inherited Create; _myencoder := TBaseEncoderClass(T).Create; end; begin var MyApp1 := TMyApplication2<TBaseEncoder>.Create; Writeln(MyApp1.ClassName); var MyApp2 := TMyApplication2<TEncoderV3>.Create; Writeln(MyApp2.ClassName); end.
  3. Kryvich

    SHA Extensions and Delphi

    @Tommi Prami Yes, this code uses SHA Extensions. I think it's possible to convert it to a Delphi asm procedure. https://github.com/minio/sha256-simd/blob/master/sha256blockSha_amd64.s
  4. Kryvich

    SHA Extensions and Delphi

    I do not see SHA instructions in this assembler code. The author writes that he tested his implementations on Intel Core 2 Quad Q6600 processor. This processor does not support SHA extensions.
  5. Any modern CPU has SHA extensions - set of instructions that accelerate the Secure Hash Algorithms. Do you know any implementation of SHA in Delphi, which uses these extensions?
  6. Kryvich

    fmx.graphics in Linux .so (using Delphi 10.3)

    Yes, I can call my DLL function, no error. Library source code: library DllWithFmx; uses System.SysUtils, System.Classes, FMX.Graphics; {$R *.res} function TestDll: Integer; stdcall; begin Result := Integer(TFontWeight.Semibold); end; exports TestDll; begin end. Console app that use the DLL (the static linking is used): program DllUse; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils; function TestDll: Integer; stdcall; external 'DllWithFmx.dll'; var i: Integer; begin i := TestDll; Writeln(i); Readln; end.
  7. Kryvich

    Android hdd serial number

    Have you obtain an Android phone with HDD? )
  8. Kryvich

    Quality central down

    Use Google Public DNS.
  9. +1 for @Dany Marmur except for specially optimized and proven to be good functions/units.
  10. Kryvich

    Quality central down

    Works for me now.
  11. Kryvich

    fmx.graphics in Linux .so (using Delphi 10.3)

    Sorry can't help, Delphi CE here, no Linux compiler. I tried creating a DLL that uses FMX.Graphics unit. No problem in Windows 10.
  12. Kryvich

    Delphi 10.3.3 - Indy from 0ba2688b Git "Hello World"

    I think I know why you get the exception. Put this code to the FormCloseQuery: if IdTCPServer1.Active then begin IdTCPServer1.Active := False; IdTCPClient1.Disconnect; end; You'll get the exception. Then swap the lines: IdTCPClient1.Disconnect; IdTCPServer1.Active := False; No exception.
  13. Kryvich

    Delphi 10.3.3 - Indy from 0ba2688b Git "Hello World"

    If I put a breakpoint to the line TThread.Queue(...) it gets hit twice on every button press. I think it's how the debugger works. I've added a counter and there is no any missed clicks. And no error messages on exit. procedure TForm1.Button1Click(Sender: TObject); begin if not IdTCPServer1.Active then begin IdTCPServer1.Active := True; IdTCPClient1.Connect; end; Inc(ClickCount); IdTCPClient1.IOHandler.WriteLn(Format('Hello, world. Click #%d.', [ClickCount])); end; procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin if IdTCPServer1.Active then IdTCPClient1.Disconnect; end; procedure TForm1.IdTCPServer1Execute(AContext: TIdContext); var s: string; begin s := AContext.Binding.PeerIP + ': ' + AContext.Connection.IOHandler.ReadLn; TThread.Queue(nil, procedure begin Memo1.Lines.Add(s) end); end;
  14. Kryvich

    Delphi 10.3.3 - Indy from 0ba2688b Git "Hello World"

    No, there is no deadlock here.