Modern software design

X

Install this web app on your phone: tap + and then Add to Home Screen.

Monday, May 07, 2012

eidreader 2.7 is released

eidreader library v.2.7 is available for download: http://users.telenet.be/ws36637/download/eidreader.2.7.zip
In this release solved the problem with reading the photo from the eID card and other small bugs discovered in the previous version.

Tuesday, April 03, 2012

New release of Quricol

The new version of Quricol library is available for download.
Download: http://users.telenet.be/ws36637/download/quricol.zip 

Update from 07.05.2012
The error correction level is changed to high.

Como descargar Circulo En 3D (Windows 7, Vista y Xp)

COMO INSTALAR O KRENTO

Полина Гагарина - Спектакль окончен

Thursday, March 29, 2012

Friday, March 09, 2012

EIDReader 32 and 64 bit 2.6 version

The new release of EIDReader.dll 2.6 x32 and x64 is available for download.
This new version is compatible with the EID Native library source code and fixed some problems discovered in the version 2.5 This is also the first release which included 64 bit version of the EIDReader.dll

Update from 07.05.2012
http://users.telenet.be/ws36637/download/eidreader.2.7.zip

Thursday, February 16, 2012

Krento 2.1.672.13 released

Krento 2.1.672.13 released and available for download from http://users.telenet.be/serhiy.perevoznyk/krento.html
  • Reduced CPU usage during the circle rotation
  • Added compatibility with Narrator for partially sighted people
  • Fixed bug with the drawing of the complex skins
  • Implemented smooth kinematic turning of the circle
  • Central button shows now the list of the available rings for fast ring selection
  • Windows + Z shows the ring selection even when Krento is not visible
  • Added configuration parameter for the default number of the empty stones when creating the new circle. You can select the appropriate number or set it to 0 if you want to create an ampty circles always
  • Added parameter to specify the name of the default circle (like the home page of the browser).  The home button can be used to navigate to the default circle
  • The ico files can be used for stones images 

Monday, February 13, 2012

Update for Quricol library from Krzysztof Michalowski

Krzysztof Michalowski modified the code to load library dynamically. This allows you to run a program when there is no library. Here is the code provided to me by Krzysztof.
unit QuricolCode;



interface



uses

  Windows, SysUtils, Classes, Graphics, Dialogs;



type

  TQRCode = class

  public

    class procedure GenerateBitmap(const FileName : string; const Text : string; Margin : integer = 4; PixelSize : integer = 3);

    class procedure GeneratePng(const FileName : string; const Text : string; Margin : integer = 4; PixelSize : integer = 3);

    class function GetBitmap(const Text : string; Margin : integer = 4; PixelSize : integer = 3) : TBitmap;

    class procedure GetPng(Stream : TStream; const Text : string; Margin : integer = 4; PixelSize : integer = 3);

  end;



implementation





{ TQRCode }



class procedure TQRCode.GenerateBitmap(const FileName, Text: string; Margin,

  PixelSize: integer);

type

  TGenerateBMPWProc = procedure (fileName: PWChar; text : PWChar; margin : integer; size : integer); stdcall;

var

  dllHandle : cardinal;

  generateBMPWProc : TGenerateBMPWProc;

begin

dllHandle := LoadLibrary('quricol32.dll');

  if dllHandle  0 then

  begin

    try

    @generateBMPWProc := GetProcAddress(dllHandle, 'GenerateBMPW');

    if Assigned (generateBMPWProc) then

      generateBMPWProc(PWChar(FileName), PWChar(Text), Margin, PixelSize)

    else

      ShowMessage('"GenerateBMPW" procedure not found');

    finally

    FreeLibrary(dllHandle);

    end;

  end

  else

  begin

    ShowMessage('quricol32.dll not found / not loaded');

  end;

end;



class procedure TQRCode.GeneratePng(const FileName, Text: string; Margin,

  PixelSize: integer);

type

  TGeneratePNGWProc = procedure (fileName: PWChar; text : PWChar; margin : integer; size : integer); stdcall;

var

  dllHandle : cardinal;

  generatePNGWProc : TGeneratePNGWProc;

begin

dllHandle := LoadLibrary('quricol32.dll');

  if dllHandle  0 then

  begin

  try

    @generatePNGWProc := GetProcAddress(dllHandle, 'GeneratePNGW');

    if Assigned (generatePNGWProc) then

      generatePNGWProc(PWChar(FileName), PWChar(Text), Margin, PixelSize)

    else

      ShowMessage('"GeneratePNGW" procedure not found');

  finally

    FreeLibrary(dllHandle);

  end;

  end

  else

  begin

    ShowMessage('quricol32.dll not found / not loaded');

  end;

end;



class function TQRCode.GetBitmap(const Text: string; Margin,

  PixelSize: integer): TBitmap;

type

  TGetHBitmapW = function (text : PWChar; margin : integer; size : integer): HBITMAP; stdcall;

var

  Bmp : HBITMAP;

  DIB: TDIBSection;

  ScreenDC : THandle;

  DC : THandle;

  dllHandle : cardinal;

  GetHBitmapWFunc : TGetHBitmapW;

begin

dllHandle := LoadLibrary('quricol32.dll');

  if dllHandle  0 then

  begin

    try

    @GetHBitmapWFunc := GetProcAddress(dllHandle, 'GetHBitmapW');

    if Assigned (GetHBitmapWFunc) then

      Bmp := GetHBitmapWFunc(PWChar(Text), Margin, PixelSize)

    else

      ShowMessage('"GetHBitmapW" function not found');

    finally

     FreeLibrary(dllHandle);

    end;

  end

  else

  begin

    ShowMessage('quricol32.dll not found / not loaded');

  end;



  GetObject(Bmp, SizeOf(DIB), @DIB);

  Result := TBitmap.Create();

  Result.Width := DIB.dsBmih.biWidth;

  Result.Height := DIB.dsBmih.biHeight;

  Result.PixelFormat := pf32bit;

  ScreenDC := GetDC(0);

  DC := CreateCompatibleDC(ScreenDC);

  SelectObject(DC, Bmp);

  ReleaseDC(0, ScreenDC);

  BitBlt(Result.Canvas.Handle, 0, 0, Result.Width, Result.Height, DC, 0, 0, SRCCOPY);

  DeleteDC(DC);

  DeleteObject(Bmp);

end;



class procedure TQRCode.GetPng(Stream: TStream; const Text: string; Margin,

  PixelSize: integer);

type

  TGetPNGW = procedure (text : PWChar; margin : integer; size : integer; var bufSize : integer; out ppvBits : PByte); stdcall;

  TDestroyBuffer = procedure(Buffer : PByte); stdcall;

var

  size : integer;

  i : integer;

  buffer : PByte;

  ps : PByte;

  dllHandle : cardinal;

  GetPNGWProc : TGetPNGW;

  DestroyBufferProc : TDestroyBuffer;

begin

size := 0;

dllHandle := LoadLibrary('quricol32.dll');

  if dllHandle  0 then

  begin

  try

   @GetPNGWProc := GetProcAddress(dllHandle, 'GetPNGW');

   if Assigned (GetPNGWProc) then

     GetPNGWProc(PWChar(Text), Margin, PixelSize, size, buffer)

   else

     ShowMessage('"GetPNGW" procedure not found');



   if (size > 0) then

   begin

     ps := buffer;

     for I := 0 to size - 1 do

       begin

         Stream.Write(ps^, 1);

         inc(ps);

       end;

      @DestroyBufferProc := GetProcAddress(dllHandle, 'DestroyBuffer');

      if Assigned (DestroyBufferProc) then

      DestroyBufferProc(buffer)

       else

      ShowMessage('"DestroyBuffer" procedure not found');

   end;

  finally

   FreeLibrary(dllHandle);

  end;

  end

  else

  begin

    ShowMessage('quricol32.dll not found / not loaded');

  end;

end;



end.

Thursday, February 02, 2012

Krento Screen Saver

Some time ago I received the request for Krento Screen Saver from one of the Krento fans and finally found free time to implement it. You can download freeware Krento Screen Saver from my site: http://users.telenet.be/ws36637/download/KrentoSaverSetup.exe

Mobify empowers marketers and developers to create amazing mobile web experiences. Tap to learn more

Mobify