2020年9月1日

2020/09開催のセミナー

  • Web Seminar
  • Live Seminar
  • Community Event

2020年8月21日

[書籍]Delphi Quick Syntax Reference

Amazon(JP)で注文した

Delphi Quick Syntax Reference (Amazon US, Amazon JP)/John Kouraklis著/Apress/ISBN 978-1-4842-6112-5/4,009JPY(printed)

が配送されてきました。2020/08/19に注文して3日目の到着でした。

2020年8月1日

2020/08開催のセミナー

  • Web Seminar
  • Live Seminar
  • Community Event

2020年7月29日

RAD Studio/Delphi/C++Builder 10.4 Sydney Patch 3

RAD Studio/Delphi/C++Builder 10.4 SydneyのPatch 3がリリースされています。Patch 1/2同様、GetItからダウンロードできます(が、インストールは手動です)。事前にPatch 1、Patch 2を適用しておく必要があります。

30933 RAD Studio 10.4 Patch 3

ポータルサイトからもダウンロードできます。

10.4 Patch 3

RAD Studio 10.4 Patch 3が公開されました (en)

2020年7月25日

InterBase 2017 Update 4

InterBase 2017 Update 4がリリースされています。バージョンは13.4.0.346となっています。いくつかの不具合の修正が行われています。

30932 InterBase 2017 Update 4 (13.4.0.346) for Windows
30931 InterBase 2017 Update 4 (13.4.0.346) for Linux and macOS
30930 InterBase 2017 Server Ed., Win/Linux/macOS (13.4.0.346, English)
30929 InterBase 2017 Server Ed, Win/Linux/macOS (13.4.0.346, Japanese)
30928 InterBase 2017 ToGo Ed. (13.4.0.346) Win/Linux/macOS/iOS/Android

InterBase 2017 Update 4 Readme - InterBase (en)
解決された不具合 (en)

2021/10/01追記: いつの間にかHotfix 1がリリースされていたようです(2020/10)。バージョンは13.4.0.350となっています。

2020年7月1日

2020/07開催のセミナー

  • Web Seminar
  • Live Seminar
  • Community Event

2020年6月28日

2020年6月1日

2020/06開催のセミナー

  • Web Seminar
  • Live Seminar
  • Community Event

2020年5月31日

DDevExtensions 2.86

Andreas HausladenさんDDevExtensionsがアップデートされてVersion 2.86になっています。RAD Studio 10.4 Sydney対応ではなく、TListViewのOwnerDataの問題を修正して、"Find Unit" replacement dialogのパフォーマンスが向上したとのことです。

DDevExtensions 2.86 for Delphi 2009-10.3.3 – Andy's Blog and Tools

2020年5月27日

RAD Studio/Delphi/C++Builder 10.4 Sydneyリリース

RAD Studio/Delphi/C++Builder 10.4 Sydneyがリリースされています。

30921 RAD Studio, Delphi, C++Builder 10.4 Web Install
30922 RAD Studio, Delphi, C++Builder 10.4 ISO
30923 RAD Studio 10.4 Patch 1

ポータルサイトからもダウンロード可能です(BDEはポータルサイトのみ)。またPatch 1はGetIt経由でインストールできます。
RAD Studio, Delphi, C++Builder 10.4 Web Install
RAD Studio, Delphi, C++Builder 10.4 ISO
RAD Studio 10.4 Patch 1
BDE for RAD Studio 10.4

Webインストールした場合は以下のコマンドラインでオンラインモードに切り替えないと、GetItパッケージマネージャからの各種パッケージのインストールに失敗するとのことです(やましょうさん、DEKOさん、情報ありがとうございます)。
GetItCmd.exe -c=useonline

RAD Studio Sydney ヘルプ (en)
リリース ノート (en)
インストール ノート (en)
新機能 (en)
RAD Studio 10.4 における新機能と修正された顧客から報告された問題 (en)
List of publicly reported bugs fixed in 10.4
注: 上記のヘルプ、リリースノート、インストールノートの日本語訳は不正確な(10.3 Rioのものがそのままになっている)部分があるようです。必要に応じて英語のものを参照することをお勧めします。

Delphi 10.4 Sydney is Available
RAD Studio 10.4 Now Available, Learn More

Delphi 10.4の新機能: Code Insightの再設計 (en)
Delphi 10.4の新機能: カスタム マネージド レコード (en)
RAD Studio 10.4の新機能: 新しいVCL TEdgeBrowserコンポーネント (en)
RAD Studio 10.4の新機能: VCLのコントロールごとのスタイル設定 (en)
RAD Studio 10.4の新機能: GetItパッケージマネージャーの改善 (en)
C++Builder 10.4の新機能: Win64 C++向けの新しいデバッガ (en)
Delphi 10.4におけるランタイムライブラリの強化 (en)
RAD Studio 10.4 では過去最多の問題数が修正されました (en)

RAD Studio 10.4 Patch 1: ファイルと C++ デバッグの欠落 - パッチをインストールする新しい方法も! (en)
RAD Studio Sample GitHub Repository の設定の問題があり、修正されました。 (en)
RAD Studio 10.4でデバッグ時に予期しないポップアップウィンドウが表示される症状の回避策について (en)
iOS AppStoreの1024x1024アイコン問題の回避策 (en)

RAD Studio 10.4 で変更されたFireDACトランザクション分離レベルの設定 (en)

インストール時に気を付けることがいくつかあるようです。

2020年5月19日

新サポートナレッジベースサイト公開

先日の新ポータルサイトに続いて、サポートナレッジベースサイトとなるSupport Wikiが公開されています。

Support (ja)
Support (en)
Support (de)
Support (fr)

新しいサポートナレッジベースサイト「Support Wiki」オープン!

従来のEDNやSupport KBで公開されてきたアーティクルは今後こちらで扱われるようになるとのことです。ただ言語別(en/de/fr/ja)に完全に分かれてしまっている(検索も言語別に分断されている)ことや、日本語のメインページはすべてのページを通して確認できない(カテゴリに入っていくか検索しないといけない)こと、逆に英語/ドイツ語/フランス語のメインページは一覧のみでカテゴリ分けされていないこと、情報としてもまだ網羅性が足りない(もっとたくさんの情報があるはずですよね)など、改善の余地がまだまだありそうです。今後の内容の充実に期待したいところです。

ちなみに従来のEDNやSupport KBのアーティクルがどれだけあるかというと、これだけあります。
EDN Article Index 30001-
EDN Article Index 31001-
EDN Article Index 32001-
EDN Article Index 33001-
EDN Article Index 34001-
EDN Article Index 35001-
EDN Article Index 36001-
EDN Article Index 37001-
EDN Article Index 38001-
EDN Article Index 39001-
EDN Article Index 40001-
EDN Article Index 41001-
EDN Article Index 42001-
EDN Article Index 43001-
EDN Article Index 44001-

InterBase 2020 Update 1

InterBase 2020 Update 1がリリースされています。バージョンは14.1.0.22014.1.0.231となっています。

30916 InterBase 2020 Server Edition, Windows (14.1.0.231)
30917 InterBase 2020 Server Edition, Linux (14.1.0.231)
30919 InterBase 2020 Update 1 (14.1.0.231) for Windows
30924 InterBase 2020 Update 1 (14.1.0.231) for Linux
30918 InterBase 2020 ToGo Ed. (14.1.0.231) Win/Linux/macOS/iOS/Android

InterBase 2020 Update 1 Readme - InterBase (en)
InterBase 2020 Update 1 の新機能 - InterBase (en)
解決された不具合 - InterBase (en)

InterBase 2020 Update 1 リリースのお知らせ (en)
InterBase 2020 Update 1 リリースのお知らせ (en)

2020/06/09追記: Update 1 for Linuxのリリースのタイミングでその他のエディション/アップデートもあわせてHotfix 1が適用された14.1.0.231に差し替えとなった模様です。ReadmeによればHotfix 1では4点の不具合が修正されています。

2021/10/01追記: いつの間にかHotfix 2もリリースされていたようです(2020/10)。バージョンは14.1.0.319となっています。Resolved DefectsによるとHotfix 2では6点の不具合が修正されています。

2020年5月1日

2020/05開催のセミナー

2020年4月20日

新ポータルサイト公開

以前からアナウンスされていたエンバカデロの新しいポータルサイトが公開されています。

Registered Products Portal

新しいエンバカデロ・ライセンス/ダウンロード・ポータル (en)

これまでのEDN(Embarcadero Developer Network)やCC(Code Central)に替わって、今後ライセンス管理や製品のダウンロードはこのポータルサイト経由になるとのことです。これにより、従来CCで

30915 Delphi 10.3.3 Open Array Patch
https://cc.embarcadero.com/Item/30915

というダウンロードページになっていたものが、

Delphi 10.3.3 Open Array Patch
https://my.embarcadero.com/#downloadDetail/661

のようになるとのことです(EDNやCCは順次フェードアウト予定)。

また製品以外のサンプルコードなどはGitHubに移行するとのことです。

参考: The Future of CodeCentral

2020年4月10日

[書籍]TMS WEB Core

Amazon(JP)で注文した

TMS WEB Core (Amazon US, Amazon JP)/Dr. Holger Flick著/FlixEngineering LLC/ISBN 979-8615692895/4,930JPY(printed)

が配送されてきました。2020/04/07に注文して4日目の到着でした。

2020年4月1日

2020/04開催のセミナー

2020年3月22日

[書籍]The Little Book of Delphi

Amazon(JP)で注文した

The Little Book of Delphi (Amazon US, Amazon JP)/Huw Collingbourne著/Dark Neon/ISBN 978-1913132095/2,331JPY(printed)

が配送されてきました。2020/03/20に注文して2日目の到着でした。

2020年3月1日

2020/03開催のセミナー

2020年2月26日

RAD Studio/Delphi/C++Builder 10.3.3 Rio Open Array Patch

RAD Studio/Delphi/C++Builder 10.3.3 RioのOpen Array Patchがリリースされています。Windows x64でオープン配列パラメータを持つ継承元関数を呼び出すとAVになる問題(RSP-23939)を修正します。

30915 Delphi 10.3.3 Open Array Patch

RAD Studio 10.3.3 MidasおよびDelphi Open Arrayパッチ (en)

RAD Studio/Delphi/C++Builder 10.3.3 Rio Midas.dll Patch

RAD Studio/Delphi/C++Builder 10.3.3 RioのMidas.dll Patchがリリースされています。Threading and TLS Patchの影響を受けるためリビルドされているとのことです。

30914 RAD Studio 10.3.3 Midas.dll Patch

RAD Studio 10.3.3 MidasおよびDelphi Open Arrayパッチ (en)

2020年2月4日

Embarcadero Tech Vision 20

本日10:00からEmbarcadero Tech Vision 20UDX GALLERY NEXTで行われます。今回は一部のセッションのみ配信があります。
  • Delphi@25 - Developers Focus
  • Enterprise Application Development Focus
    • 「キーノート~テクノロジーショーケース」
    • 「サービス指向アプローチとモダンWebアプリケーションの構築~カスタマーショーケース」
    • 「システム価値を高めるモダナイゼーションアプローチ~パートナーショーケース」
    • 「コンポーネントアプローチによるソフトウェア開発の俊敏性と品質向上の実現~カスタマーショーケース」
    • 「クロージング」
  • Developers Communication
    • 「MEET EMBARCADERO & COOL APP SELECTIONS」

2020年2月1日

2020/02開催のセミナー

2020年1月30日

RAD Studio/C++Builder 10.3.3 Rio Threading and TLS Patch

RAD Studio/C++Builder 10.3.3 RioのThreading and TLS Patchがリリースされています。Windows x64上でスレッドを作るとアクセス違反が発生する問題(RSP-27180)を修正します。

30909 C++Builder 10.3.3 Threading and TLS Patch

C++Builder 10.3.3スレッドとTLSパッチ (en)

2020年1月19日

RAD Studio/Delphi/C++Builder 10.3.3 Rio iPhone XS and XR Debugging Patch

RAD Studio/Delphi/C++Builder 10.3.3 RioのiPhone XS and XR Debugging Patchがリリースされています。A12プロセッサで動作するiOS(iPhone XS/XR)上でデバッグできない問題(RSP-26709RSP-25732)を修正します。

30908 RAD Studio 10.3.3 iPhone XS and XR Debugging Patch

RAD Studio 10.3.3 iPhone XSおよびXRデバッグパッチ (en)

2020年1月13日

2020年1月11日

RAD Studio/Delphi/C++Builder 10.3.3 Rio Indy Server SSL Certificate Patch

RAD Studio/Delphi/C++Builder 10.3.3 RioのIndy Server SSL Certificate Patchがリリースされています。Windows上でIndyを使用したwebサーバアプリケーションがSSL証明書を読み込めない問題(RSP-27144)を修正します。

30906 RAD Studio 10.3.3 Indy Server SSL Certificate Patch

RAD Studio 10.3.3 IndyサーバーSSL証明書パッチ (en)

2020年1月1日

2020/01開催のセミナー

2019年12月24日

[書籍][eBook]Mastering Delphi Programming

Packt Publishingで注文した

Mastering Delphi Programming: A Complete Reference Guide (Amazon US, Amazon JP)/Primož Gabrijelčič著/Packt Publishing/ISBN 9781838989118/44.99USD(printed+ebook)

が配送されてきました(今回の配送もDHLで、インドのチェンナイからの発送でした)。2019/12/16に注文して9日目の到着、44.99USD=5,042JPY(1USD=112.07JPY)でした。

2019年12月21日

RAD Studio/Delphi/C++Builder 10.3.3 Rio Android Services Patch

RAD Studio/Delphi/C++Builder 10.3.3 RioのAndroid Services Patchがリリースされています。AAB(Android App Bundle)としてパッケージ化されたアプリケーションでネイティブライブラリをロードできずにAndroidサービスが実行できない問題を修正します。

30905 RAD Studio 10.3.3 Android Services Patch

RAD Studio 10.3.3 Androidサービスパッチ (en)

2019年12月20日

WindowsのNTFSでハードリンクを扱う

このアーティクルはDelphi Advent Calendar 2019の20日目の記事です(1日ぶり6回目)。

Windows上でファイル/ディレクトリに対してリンク(複数のエントリを用意する)する方法にはシンボリックリンクジャンクション、ハードリンクがありますが、ここではDelphiからハードリンクを扱います。

ハードリンクはNTFS上のファイル本体に対するディレクトリエントリを複数用意する(あるいはファイル本体に複数のパス名をつける)、というもので、一般のユーザ権限で作れ、NTFS以外にSMB3.0でもサポート(ReFSは不可)されていますが、ディレクトリを扱うことができず、同一ボリューム上にしかリンクを作ることができません。また最大のリンク数が1023に制限されています。

Windowsのシンボリックリンクとジャンクションとハードリンクの違い:Tech TIPS - @IT

普通に(CreateFile関数で)作成したファイルはリンク数が1になっており、ハードリンクを作成する毎にリンク数が増え、逆にハードリンクをDeleteFile関数で削除する毎にリンク数は減っていき、リンク数が0になるとそのファイルの実体も削除されます。

ここではハードリンクの作成と、指定されたファイルのハードリンクの数と一覧の取得をDelphiから行います。以下のコードは(System.)IOUtilsユニットのTPathレコード型や無名メソッドを使っているためにDelphi 2010以降の対応になっていますが、それ以前のバージョンであっても適当に修正すれば動くはずです。

interface

{$IF RTLVersion < 21.0}
{$MESSAGE ERROR 'Delphi 2010 or later is required.'}
{$IFEND}

uses
{$IF RTLVersion < 23.0}
  Windows, SysUtils, Classes, IOUtils;
{$ELSE}
  Winapi.Windows,
  System.SysUtils, System.Classes, System.IOUtils;
{$IFEND}

type
  { THardLink }
  THardLink = record
  private
    class procedure DoGetFileList(const Filename: String; EnumProc: TProc); static;
  public
    class procedure Create(const LinkFile: String; const SourceFile: String); static;
    class function GetFileList(const Filename: String): TArray; overload; static;
    class procedure GetFileList(const Filename: String; Strings: TStrings); overload; static;
    class function GetNumberOfLinks(const Filename: String): Integer; static;
  end;

implementation

{ HANDLE FindFirstFileNameW(LPCWSTR lpFileName, DWORD dwFlags, LPDWORD StringLength, PWSTR LinkName); }
function FindFirstFileNameW(const lpFileName: PWideChar; dwFlags: DWORD; var StringLength: DWORD; LinkName: PWideChar): THandle; stdcall; external kernel32;
{$EXTERNALSYM FindFirstFileNameW}

{ BOOL FindNextFileNameW(HANDLE hFindStream, LPDWORD StringLength, PWSTR LinkName); }
function FindNextFileNameW(hFindStream: THandle; var StringLength: DWORD; LinkName: PWideChar): BOOL; stdcall; external kernel32;
{$EXTERNALSYM FindNextFileNameW}

class procedure THardLink.Create(const LinkFile: String; const SourceFile: String);
begin
  if CreateHardLink(PChar(LinkFile),PChar(SourceFile),nil) = False then
  begin
    RaiseLastOSError;
  end;
end;

class function THardLink.GetFileList(const Filename: String): TArray;
var
  Files: TArray;
begin
  SetLength(Files,0);

  DoGetFileList(Filename,
    procedure (Filename: String)
    begin
{$IF RTLVersion >= 28.0}
      Files := Files + [Filename];
{$ELSE}
      SetLength(Files,Length(Files) + 1);
      Files[Length(Files) - 1] := Filename;
{$IFEND}
    end);

  Result := Files;
end;

class procedure THardLink.GetFileList(const Filename: String; Strings: TStrings);
begin
  Strings.Clear;

  DoGetFileList(Filename,
    procedure (Filename: String)
    begin
      Strings.Add(Filename);
    end);
end;

class function THardLink.GetNumberOfLinks(const Filename: String): Integer;
var
  hFile: THandle;
  FileInformation: TByHandleFileInformation;
begin
  hFile := CreateFile(PChar(Filename),GENERIC_READ,FILE_SHARE_READ,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
  if hFile = INVALID_HANDLE_VALUE then
  begin
    RaiseLastOSError;
  end;

  try
    if GetFileInformationByHandle(hFile,FileInformation) = False then
    begin
      RaiseLastOSError;
    end;
    Result := FileInformation.nNumberOfLinks;

  finally
    CloseHandle(hFile);
  end;
end;

class procedure THardLink.DoGetFileList(const Filename: String; EnumProc: TProc);
var
  hFindStream: THandle;
  Len: DWORD;
  Buffer: String;
  Root: String;
begin
  Root := ExcludeTrailingPathDelimiter(TPath.GetPathRoot(Filename));

  { Retrieve buffer size }
  Len := 0;
  FindFirstFilenameW(PWideChar(Filename),0,Len,nil);
  if GetLastError <> ERROR_MORE_DATA then
  begin
    RaiseLastOSError;
  end;
  SetLength(Buffer,Len);

  { Get first filename without drive letter }
  hFindStream := FindFirstFilenameW(PWideChar(Filename),0,Len,PWideChar(Buffer));
  if hFindStream = INVALID_HANDLE_VALUE then
  begin
    RaiseLastOSError;
  end;

  try
    while True do
    begin
      { Adjust buffer size }
      SetLength(Buffer,Len - 1);

      { Callback }
      EnumProc(Root + Buffer);

      { Retrieve buffer size }
      Len := 0;
      FindNextFileNameW(hFindStream,Len,nil);
      case GetLastError of
        ERROR_HANDLE_EOF:
        begin
          Break;
        end;

        ERROR_MORE_DATA:
        begin
        end;

        else
        begin
          RaiseLastOSError;
        end;
      end;

      { Get next filename without drive letter }
      SetLength(Buffer,Len);
      if FindNextFileNameW(hFindStream,Len,PWideChar(Buffer)) = False then
      begin
        RaiseLastOSError;
      end;
    end;

  finally
    { Close }
    {$IF RTLVersion >= 23.0}Winapi.{$IFEND}Windows.FindClose(hFindStream);
  end;
end;

ハードリンクはCreateHardLink関数で作成し、リンク数はGetFileInformationByHandle関数で取得したBY_HANDLE_FILE_INFORMATION構造体のnNumberOfLinksで知ることができます。またハードリンクの一覧はFindFirstFileName関数/FindNextFileName関数/FindClose関数で取得できます。このときFindFirstFilename関数/FindNextFileName関数を一旦LinkName=nilで呼び出して必要なサイズを取得し、ファイル名の格納に必要な領域を確保してからもう一度FindFirstFilename関数/FindNextFileName関数を呼び出しています。

WindowsのNTFSでハードリンクを扱う(Gist)

2019年12月19日

Windowsのユーザ名とSIDを相互に変換する

このアーティクルはDelphi Advent Calendar 2019の19日目の記事です(2年ぶり5回目)。またDelphi Programming Tipsカテゴリの記念すべき(かどうかは微妙)100本目の記事になります。

Windows上のユーザはそれぞれ固有のSID(Security Identifier/セキュリティ識別子)で管理されています。

オブジェクトを識別するSIDとは?:Tech TIPS - @IT

ユーザ名とSIDを相互に変換するにはWin32APIのLookupAccountName関数とLookupAccountSid関数を使用します。ところがこれらの関数でSIDは文字列ではなくSID構造体で扱う必要があります。ということで文字列表現のSIDとSID構造体を相互に変換する必要がありますが、これを行うのがConvertSidToStringSid関数とConvertStringSidToSid関数になります。

それではまずユーザ名をSIDに変換するほうから。
uses
{$IF RTLVersion < 23.0}
  Windows, SysUtils;
{$ELSE}
  Winapi.Windows, System.SysUtils;
{$IFEND}

{$IF RTLVersion < 28.0}
{ Win32API ConvertSidToStringSid }
{$IFNDEF Unicode}
function ConvertSidToStringSid(Sid: PSID; var StringSid: LPSTR): BOOL; stdcall; external advapi32 name 'ConvertSidToStringSidA';
{$ELSE}
function ConvertSidToStringSid(Sid: PSID; var StringSid: LPWSTR): BOOL; stdcall; external advapi32 name 'ConvertSidToStringSidW';
{$ENDIF}
{$EXTERNALSYM ConvertSidToStringSid}
{$IFEND}

{$IF RTLVersion < 19.0}
{ Win32API LookupAccountName }
{$IFNDEF Unicode}
function LookupAccountName(lpSystemName, lpAccountName: LPCSTR;
  Sid: PSID; var cbSid: DWORD; ReferencedDomainName: LPSTR;
  var cbReferencedDomainName: DWORD; var peUse: SID_NAME_USE): BOOL; stdcall; external advapi32 name 'LookupAccountNameA';
{$ELSE}
function LookupAccountName(lpSystemName, lpAccountName: LPCWSTR;
  Sid: PSID; var cbSid: DWORD; ReferencedDomainName: LPWSTR;
  var cbReferencedDomainName: DWORD; var peUse: SID_NAME_USE): BOOL; stdcall; external advapi32 name 'LookupAccountNameW';
{$ENDIF}
{$EXTERNALSYM LookupAccountName}
{$IFEND}

function UsernameToSid(const AUsername: String): String;
var
  PSID: Pointer;
  SidSize: DWORD;
  Domain: String;
  DomainLen: DWORD;
  SidName: SID_NAME_USE;
  SidStr: PChar;
begin
  PSID := nil;
  SidStr := nil;
  try
    SidSize := 0;
    DomainLen := 0;
    LookupAccountName(nil,PChar(AUsername),nil,SidSize,nil,DomainLen,SidName);
    if GetLastError <> ERROR_INSUFFICIENT_BUFFER then
    begin
      RaiseLastOSError;
    end;

    PSID := Pointer(LocalAlloc(LPTR,SidSize));
    SetLength(Domain,DomainLen);
    if LookupAccountName(nil,PChar(AUsername),PSID,SidSize,PChar(Domain),DomainLen,SidName) = False then
    begin
      RaiseLastOSError;
    end;

    ConvertSidToStringSid(PSID,SidStr);
    SetString(Result,SidStr,StrLen(SidStr));

  finally
    if PSID <> nil then
    begin
{$IF RTLVersion >= 32.0}
      if LocalFree(PSID) <> nil then
{$ELSE}
{$IFNDEF WIN64}
      if LocalFree(DWORD(PSID)) <> 0 then
{$ELSE}
      if LocalFree(UInt64(PSID)) <> 0 then
{$ENDIF}
{$IFEND}
      begin
        RaiseLastOSError;
      end;
    end;

    if SidStr <> nil then
    begin
{$IF RTLVersion >= 32.0}
      if LocalFree(SidStr) <> nil then
{$ELSE}
{$IFNDEF WIN64}
      if LocalFree(DWORD(SidStr)) <> 0 then
{$ELSE}
      if LocalFree(UInt64(SidStr)) <> 0 then
{$ENDIF}
{$IFEND}
      begin
        RaiseLastOSError;
      end;
    end;
  end;
end;
まずLookupAccountName関数でユーザ名に対応するSIDをSID構造体に取得し、これをConvertSidToStringSid関数で文字列に変換します。このときLookupAccountName関数を一旦SID=nil、ReferencedDomainName=nilで呼び出して必要なサイズを取得し、SIDはLocalAlloc関数で、ReferencedDomainNameは(文字列なので)SetLengthで領域を確保して、もう一度LookupAccountName関数を呼ぶようにしているのと、LocalAlloc関数、ConvertSidToStringSid関数で確保された領域はLocalFree関数で解放しなければならない、というところに気をつける必要があります(DelphiのバージョンによってLocalFree関数の宣言に差異があるので$IF RTLVersionと$IFNDEF WIN64で分岐しています)。

次にSIDをユーザ名に変換します。
{$IF RTLVersion < 28.0}
{ Win32API ConvertStringSidToSid }
{$IFNDEF Unicode}
function ConvertStringSidToSid(StringSid: LPCSTR; var Sid: PSID): BOOL; stdcall; external advapi32 name 'ConvertStringSidToSidA';
{$ELSE}
function ConvertStringSidToSid(StringSid: LPCWSTR; var Sid: PSID): BOOL; stdcall; external advapi32 name 'ConvertStringSidToSidW';
{$ENDIF}
{$EXTERNALSYM ConvertStringSidToSid}
{$IFEND}

{$IF RTLVersion < 19.0}
{ Win32API LookupAccountSid }
{$IFNDEF Unicode}
function LookupAccountSid(lpSystemName: LPCSTR; Sid: PSID;
  Name: LPSTR; var cbName: DWORD; ReferencedDomainName: LPSTR;
  var cbReferencedDomainName: DWORD; var peUse: SID_NAME_USE): BOOL; stdcall; external advapi32 name 'LookupAccountSidA';
{$ELSE}
function LookupAccountSid(lpSystemName: LPCWSTR; Sid: PSID;
  Name: LPWSTR; var cbName: DWORD; ReferencedDomainName: LPWSTR;
  var cbReferencedDomainName: DWORD; var peUse: SID_NAME_USE): BOOL; stdcall; external advapi32 name 'LookupAccountSidW';
{$ENDIF}
{$EXTERNALSYM LookupAccountSid}
{$IFEND}

function SidToUsername(const ASID: String): String;
var
  PSID: Pointer;
  UserNameLen: DWORD;
  Domain: String;
  DomainLen: DWORD;
  SidName: SID_NAME_USE;
begin
  PSID := nil;
  try
    if ConvertStringSidToSid(PChar(ASID),PSID) = False then
    begin
      RaiseLastOSError;
    end;

    UserNameLen := 0;
    DomainLen := 0;
    LookupAccountSid(nil,PSID,nil,UserNameLen,nil,DomainLen,SidName);
    if GetLastError <> ERROR_INSUFFICIENT_BUFFER then
    begin
      RaiseLastOSError;
    end;

    SetLength(Result,UserNameLen);
    SetLength(Domain,DomainLen);
    if LookupAccountSid(nil,PSID,PChar(Result),UserNameLen,PChar(Domain),DomainLen,SidName) = False then
    begin
      RaiseLastOSError;
    end;

    SetLength(Result,StrLen(PChar(Result)));

  finally
    if PSID <> nil then
    begin
{$IF RTLVersion >= 32.0}
      if LocalFree(PSID) <> nil then
{$ELSE}
{$IFNDEF WIN64}
      if LocalFree(DWORD(PSID)) <> 0 then
{$ELSE}
      if LocalFree(UInt64(PSID)) <> 0 then
{$ENDIF}
{$IFEND}
      begin
        RaiseLastOSError;
      end;
    end;
  end;
end;
こちらはまずConvertStringSidToSid関数でSIDの文字列をSID構造体に変換し、LookupAccountSid関数でユーザ名に変換します。こちらもLookupAccountSid関数をName=nil、ReferencedDomainName=nilで呼び出して必要なサイズを取得し、SetLengthで領域を確保してからもう一度LookupAccountSid関数を呼び出しています。またConvertStringSidToSid関数で確保したSID構造体はLocalFree関数で解放します。

使用しているWin32APIのうち、LookupAccountSid関数/LookupAccountName関数はDelphi 2009で、ConvertStringSidToSid関数/ConvertSidToStringSid関数はDelphi XE7で(Win32API.)Windowsユニットに関数宣言が追加されたため、それ以前のバージョンでは明示的に定義が必要です。

Windows上のユーザ名とSIDを相互変換(Gist)

2019年12月14日

RAD Studio/Delphi/C++Builder 10.3.3 Rio Android Debugger Patch

RAD Studio/Delphi/C++Builder 10.3.3 RioのAndroid Debugger Patchがリリースされています。これはAndroid上でのデバッグに関係するいくつかの問題を修正します。
30904 RAD Studio 10.3.3 Android Debugger Patch

Delphi 10.3.3 Android デバッグパッチ (en)

RAD Studio/Delphi/C++Builder 10.3.3 Rio IDE and VCL Patch

RAD Studio/Delphi/C++Builder 10.3.3 RioのIDE and VCL Patchがリリースされています。これはコード補完ウィンドウのスクロールバーの表示が残ってしまう問題(RSP-26731)とTActionManager/TPopupActionBarコンポーネントを使用しているとコンパイルに失敗する問題(RSP-27035)を修正します。

30903 RAD Studio 10.3.3 IDE and VCL Patch

RAD Studio 10.3.3 IDE/VCLパッチ、ローカリゼーションパッチ (en)

2019年12月9日

RAD Studio/Delphi/C++Builder 10.3.3 Rio localization patch

RAD Studio/Delphi/C++Builder 10.3.3 Rioのlocalization patchがリリースされています。これはローカライズ(DE/FR/JA)の問題を解決するものです。

30901 RAD Studio 10.3.3 localization patch (DE/FR)
30902 RAD Studio 10.3.3 localization patch (JA)

RAD Studio 10.3.3 IDE/VCLパッチ、ローカリゼーションパッチ (en)

2019年12月6日

RAD Studio/Delphi/C++Builder 10.3.3 Rio iOS Linking Patch

RAD Studio/Delphi/C++Builder 10.3.3 RioのiOS Linking Patchがリリースされています。これはiOSアプリケーションをDebugビルドでリンクしようとするとエラーになる問題(RSP-23698)を解決するものです。

30900 RAD Studio 10.3.3 iOS Linking Patch

2019年12月1日

2019/12開催のセミナー

2019年11月21日

RAD Studio/Delphi/C++Builder 10.3 Rio Release 3 (10.3.3)

RAD Studio/Delphi/C++Builder 10.3 RioのRelease 3 (10.3.3)がリリースされています。インストールには有効なUpdate Subscriptionが必要です(Community Editionを除く)。また同時にpatchもリリースされています。

30893 RAD Studio, Delphi, C++Builder 10.3.3 Web Install
30896 RAD Studio, Delphi, C++Builder 10.3.3 ISO

30899 RAD Studio 10.3.3 iOS 13 Dark Theme Patch

10.3 Rio - リリース 3 - RAD Studio (en)

New features and customer reported issues fixed in RAD Studio 10.3.3 - RAD Studio

RAD Studio 10.3.3 Now Available, Learn More
Delphi 10.3.3 is Available
RAD Studio 10.3.3: Delphi Android 64-bitサポート (en)
RAD Studio 10.3.3: iOS 13およびmacOS Catalinaサポート (en)
Enterprise Connectors in RAD Studio 10.3.3 Enterprise & Architect Edition
RAD Studio 10.3.3: IDEの改善 (en)
Delphi / C++Builder / RAD Studio 10.3.3 のリリースとキャンペーンのお知らせ
RAD Studio 10.3.3で解決されたIBXの問題 (en)

DelphiのLinux Dockerサポートを使ってみよう (en)
Linux DockerによるRAD Serverの配置 (en)

Workarounds:

2019年11月1日

[書籍]IT業界の病理学

紀伊國屋書店新宿本店

IT業界の病理学 (Amazon)/司馬紅太郎、秋山浩一、森龍二、鈴木昭吾、都築将夫、堀明広、佐々木誠、鈴木準一著/技術評論社/ISBN 978-4-297-10857-1/1,848円

を購入。

2019/11開催のセミナー

2019年10月30日

Enterprise ConnectorsがEnt/Arc SKUで使用可能に

FMXLinuxに続いて、Enterprise Connectorsがサブスクリプションが有効なRAD Studio/Delphi/C++Builder 10.3(.x) RioのEnt/Arc SKU(アカデミックを除く)で利用可能になりました。

Enterprise ConnectorsがRAD Studio Enterprise / Architectに搭載 (en)

2019年10月29日

Firebird Ver4/Ver5情報

2019年10月17日から19日にベルリンで行われたFirebird Conference 2019でFirebird Projectの責任者であるDmitry Yemanovさんから現在の開発状況と、次々期バージョンとなるVersion 5について説明があったようです。

Firebird: Firebird Conference 2019: Firebird on the road from v4 to v5
Firebird on the roadfrom v4 to v5 (PDF)

適当な要約:
  • Firebird 2.5
    • 2019年06月の2.5.9で開発終了
  • Firebird 3.0
    • 2018年10月の3.0.4が最新
    • 次の3.0.5は2019年の第4四半期を予定
    • Firebird 5のリリースまでサポート予定
  • Firebird 4.0
    • 2019年02月にBeta 1をリリース
    • 2019年の第4四半期にBeta 2を予定
    • 2020年の第1四半期にRelease Candidateを予定
    • 2020年の第2四半期に正式リリースを予定
    • 新機能
      • DECFLOAT型(SQL2016)、サポート関数(COMPARE_DECFLOAT/NORMALIZE_DECFLOAT/QUANTIZE/TOTALORDER)および特殊レジスタ(SET DECFLOAT ROUND/SET DECFLOAT TRAPS TO)の導入
      • NUMERIC/DECIMALの改善(最大精度を38桁に拡張など)
      • タイムゾーンのサポート(TIME/TIMESTAMPはUTCで保存)
      • レプリケーションの改善
  • Firebird 5.0
    • ODS14
    • レコードサイズの拡張(無制限に)
    • ディスク上の圧縮の改善
    • コンテキスト制限のない新しいBLR(Binary Language Representation)
    • インデックスの改善

2019年10月4日

Microsoft OOB Update 2019/10

Microsoftの定例外のセキュリティアップデートがリリースされています。
CVE-2019-1367 | スクリプト エンジンのメモリ破損の脆弱性

基本的には2019/09の定例外のセキュリティアップデートの更新ですが、Windows 7/8.1/Server 2008/Server 2008 R2/Server 2012/Server 2012 R2の更新プログラムがロールアップになり、Windows 10/Server 2016/Server 2019の更新プログラムもWindows Update/WSUS経由でも配信されるようになっています。

2019年10月1日

2019/10開催のセミナー

2019年9月26日

[書籍]失敗しないソフトウエアテスト実践ノウハウ

紀伊國屋書店新宿本店

失敗しないソフトウエアテスト実践ノウハウ (Amazon)/SHIFT 品質・技術統轄部 技術推進部/品質プラットフォーム推進部著/日経BP/ISBN 9784296103577/2,700円

を購入。

[書籍]江添亮のC++入門

紀伊國屋書店新宿本店

江添亮のC++入門 (Amazon)/江添亮著/KADOKAWA/ISBN 978-4-04-893071-0/5,400円

を購入。

[書籍]レガシーコードからの脱却

紀伊國屋書店新宿本店Beyond Legacy Code (Amazon US)の翻訳である

レガシーコードからの脱却 (Amazon)/David Scott Bernstein著/吉羽龍太郎永瀬美穂原田騎郎、有野雅士訳/オライリージャパン/ISBN 978-4-87311-886-4/3,132円

を購入。

RAD Studio/C++Builder 10.3.2 Rio C++ Debugging Patch

RAD Studio/C++Builder 10.3.2 RioのC++ Debugger Patchがリリースされています。これはC++BuilderでWin32のBCC32コンパイラでデバッグ時に評価、監視が行われない問題(RSP-25943)を解決するものです。

30890 RAD Studio 10.3.2 C++ Debugging Patch

RAD Studio 10.3.2 C++ Debugging Patch

2019年9月24日

Microsoft OOB Update 2019/09

Microsoftの定例外のセキュリティアップデートがリリースされています。
CVE-2019-1367 | スクリプト エンジンのメモリ破損の脆弱性

なお現時点(2019/09/24)ではWindows 10についても自動的に更新が適用されないため、以下のURLから累積更新プログラムを手動でダウンロードし、適用する必要があります。

Windows 10 Version 1507(LTSB): https://www.catalog.update.microsoft.com/Search.aspx?q=KB4522009
Windows 10 Version 1607: https://www.catalog.update.microsoft.com/Search.aspx?q=KB4522010
Windows 10 Version 1703: https://www.catalog.update.microsoft.com/Search.aspx?q=KB4522011
Windows 10 Version 1709: https://www.catalog.update.microsoft.com/Search.aspx?q=KB4522012
Windows 10 Version 1803: https://www.catalog.update.microsoft.com/Search.aspx?q=KB4522014
Windows 10 Version 1809: https://www.catalog.update.microsoft.com/Search.aspx?q=KB4522015
Windows 10 Version 1903: https://www.catalog.update.microsoft.com/Search.aspx?q=KB4522016

2019年8月30日

2019年8月14日

RAD Studio/Delphi/C++Builder 10.3.2 Rio Building Changed Files Patch

RAD Studio/Delphi/C++Builder 10.3.2 RioのBuilding Changed Files Patchがリリースされています。これは特定の状況でC++BuilderのソースコードやDelphiのリソースファイルの変更がメイク/ビルドの結果に反映されない問題(RSP-25509RSP-25590)を解決するものです。

30889 C++Builder and Delphi 10.3.2 Building Changed Files Patch

C++Builder and Delphi 10.3.2 Building Changed Files Patch Released
Delphi / C++Builder 10.3.2アップデートパッチ情報

RAD Studio/Delphi/C++Builder 10.3.2 Rio Toolchain Patch

RAD Studio/Delphi/C++Builder 10.3.2 RioのToolchain Patchがリリースされています。これはC++BuilderでWin32のClangベースのコンパイラでデバッグ時にローカル変数が正しく表示されない問題(RSP-25527)とDelphiでmacOS 64ビット版の大きなプロジェクトをビルドしたときにリンクでエラーになる問題を解決するものです。

30888 RAD Studio 10.3.2 C++ and Delphi Toolchain Patch

RAD Studio C++ and Delphi Toolchain Patch Released
Delphi / C++Builder 10.3.2アップデートパッチ情報

Microsoft Monthly Update 2019/08

今日はMicrosoftのセキュリティアップデートの日です。
リリース ノート 2019 年 8 月のセキュリティ更新プログラム
2019 年 8 月のセキュリティ更新プログラム (月例) – Microsoft Security Response Center

2019年8月13日

RAD Studio ロードマップ 2019/08

RAD Studio/Delphi/C++Builderのロードマップが更新されています。

2019年8月Delphi Androidベータプランと8月付ロードマップアップデート (en)

前回からの大きな変更として、次期アップデートとなる10.3 Rio Release 3(10.3.3)の追加(2019/4Q頃)と、それに伴う次期メジャーリリース(10.4)の2020年への延期がアナウンスされています。またC++のAndroid 64bitサポートが復活しています。

雑なまとめ:
  • 次期アップデート(10.3.3)は2019年の終わり頃
    • iOS13/macOS Catalinaサポート
    • DelphiでAndroid 64ビットをサポート
  • 次期メジャーリリース(10.4)は2020年前半
    • macOS/iOSでMetal 2をサポート
    • Androidのプッシュ通知とGoogle Playサービスの再構成
    • LiveBindingのパフォーマンス向上
    • Delphi/C++Builderとも全てのプラットフォームでメモリ管理を統一(モバイル環境でのARCサポートの削除)
    • オンライン/オフラインインストーラを統合
    • Delphiで(カスタム)マネージドレコード型をサポート
  • その次のアップデート(10.4.x)は2020年の中頃以降
    • デバッガをLLDBベースのものに統合
    • MSIXアプリケーションパッケージ形式のサポート
    • DelphiでiOS 13のシミュレータ(64ビット)をサポート
    • C++BuilderでAndroid 64ビットをサポート
    • C++BuilderにWhole Tomato Visual Assistを統合
2019年8月後半から10.3.3のNDAベータ("Sugarloaf")が開始され、Google Playストアでの展開を可能にする特別なEULAが適用されることになるとのことです。

2019年8月11日

RAD Studio/Delphi 10.3.2 Rio macOS Debugging Patch

RAD Studio/Delphi 10.3.2 RioのmacOS Debugging Patchがリリースされています。これはmacOS 64ビットアプリケーションのデバッグ時の評価/インスペクトでパラメータとして渡されたいくつかの変数が正しい値で表示されない不具合を修正するものです。

30887 Delphi 10.3.2 macOS Debugging Patch
Delphi / C++Builder 10.3.2アップデートパッチ情報

RAD Studio/Delphi/C++Builder 10.3.2 Rio Runtime Packages Compatibility Patch

RAD Studio/Delphi/C++Builder 10.3.2 RioのRuntime Packages Compatibility Patchがリリースされています。これはRAD Studio/Delphi/C++Builder 10.3/10.3.1でコンパイルされた実行時パッケージを使用するアプリケーションが10.3.2の実行時パッケージ上で動作しない問題を解決するものです。なお10.3.2でコンパイルされた実行時パッケージを使用するアプリケーションは10.3/10.3.1の実行時パッケージ上では動作しないとのこと。

30886 RAD Studio 10.3.2 Runtime Packages Compatibility Patch

RAD Studio 10.3.2 Runtime Packages Compatibility Patch Released
Delphi / C++Builder 10.3.2アップデートパッチ情報

2019年8月1日

IDE Fix Pack 6.4.4

Andreas HausladenさんIDE Fix PackがアップデートされてVersion 6.4.4となっています。RAD Studio/Delphi/C++Builder 10.3 Rio Release 2 (10.3.2)のWin32コンパイラがクラッシュする問題のhotfixとのことです。

IDE Fix Pack 6.4.4 Hotfix for Delphi 10.3.2 – Andy's Blog and Tools

2019/08開催のセミナー

2019年7月25日

IDE Fix Pack 6.4.3

Andreas HausladenさんIDE Fix PackがアップデートされてVersion 6.4.3となっています。RAD Studio/Delphi/C++Builder 10.3 Rio Release 2 (10.3.2)に対応とのことです。

IDE Fix Pack 6.4.3 for Delphi 10.3.2 – Andy's Blog and Tools

2019/07/25追記: IDE Fix Pack 6.4.3はRAD Studio/Delphi/C++Builder 10.3 Rio Release 1 (10.3.1)では動作しないようです。ご注意ください。

2019年7月19日

RAD Studio/Delphi/C++Builder 10.3 Rio Release 2 (10.3.2)

RAD Studio/Delphi/C++Builder 10.3 RioのRelease 2 (10.3.2)がリリースされています。インストールには有効なUpdate Subscriptionが必要です(Community Editionを除く)。

30880 RAD Studio, Delphi, C++Builder 10.3.2 Web Install
30882 RAD Studio, Delphi, C++Builder 10.3.2 ISO

10.3 Rio - リリース 2 - RAD Studio (en)
RAD Studio 10.3.2 における新機能およびユーザーから報告された問題の修正 - RAD Studio (en)

Delphi 10.3.2 is Now Available
Delphi / C++Builder / RAD Studio 10.3.2 リリースのお知らせ (en)
C++Builder 10.3.2 is now available!
Delphi 10.3.2でmacOS 64-bitアプリケーションを開発する (en)
RAD Server Improvements in RAD Studio 10.3.2
Boost 1.68 for Win32 and Win64 in C++Builder 10.3.2
DelphiおよびC++Builderのお客様向けのGoogle PlayストアAndroid 32-bitアプリケーションの期間延長について (en)
Additional information regarding requesting a Google Play Store extension
Delphi / C++Builder 10.3.2アップデートパッチ情報

2019/07/22追記: 2019/07/19の夕方(JST)以降、EDNおよび関係システムでエラーが発生している模様です。ISOファイルは altd.embarcadero.com 方面からダウンロード可能のようですが、webインストール、GetItなどは機能していないため、状況が回復するまでは10.3.1のアンインストールや10.3.2のインストールは控えることをお勧めします。

2019/07/24追記: EDN関係のエラーは一旦終息したものの、今日になって再び発生している模様です。Embarcaderoの日本語トップページでもアナウンスされています。

オンラインサービス障害に関するお知らせ
現在、オンラインサービスを提供している一部のサーバーに障害が発生しているため、以下の機能をご利用いただけなくなっております。復旧作業を進めておりますが、今しばらくご利用いただけない状態が続きますことを、お詫び申し上げます。
  • CodeCentral、GetItによるソフトウェアのダウンロード
  • Webインストーラ(GetItを利用したインストール)
  • EDNメンバーサービス
  • quality.embarcadero.comでのバグ登録/閲覧
  • サポートナレッジベース
RAD Studio / Delphi / C++Builder製品のインストールについて、Webインストーラが使用できないためにインストール作業が行えない場合には、カスタマーサポートセンターまでお問い合わせください。

2019/07/30追記: 依然として一部のサーバがダウンしているため、回避策が提示されています。

Delphi / C++Builder / RAD Stuido 10.3.2 のインストール障害に関する回避方法 (en)
10.3.2 アドオンパッケージをインストールするための一時的な 10.3.2 GetItサーバーについて (en)

簡単な要約:
  • ISOファイルを altd.embarcadero.com からダウンロードしてインストールする。前回webインストールだった場合は設定移行ツールで設定のバックアップをとって復元する
  • GetItの代替サーバを用意したので、レジストリを変更してそっちにGetItクライアントを向ける(IDEは終了しておくこと)。
  • GetItの代替サーバからダウンロードできるものは一部に制限されている。
2019/08/01追記: GetItの代替サーバに対応したwebインストーラがリリースされています(ファイル名は"radstudio_10_3_2_esd_96593b.exe")。

New 10.3.2 GetIt Installer

2019/08/20追記: 現状のISO/webインストーラについてのまとめです。

RAD Studio インストーラ (en)

2019年6月30日

[書籍]TCP技術入門

紀伊國屋書店新宿本店

TCP技術入門 (Amazon)/安永遼真、中山悠、丸田一輝著/技術評論社/ISBN 978-4-297-10623-2/2,894円

を購入。

2019年6月26日

FMXLinuxがDelphi Ent/Arc SKUで利用可能に

FMX(FireMonkey)の元中の人(Eugene Kryukovさん)が作った謎技術、Linux上でFMXが動くFmxLinuxがEmbarcaderoにOEMされて、サブスクリプションが有効なRAD Studio/Delphi 10.3.1 RioのEnt/Arc SKUで利用可能になりました。これによりLinux上のクライアントプログラムもDelphiで作成できるようになりました。

Delphi / RAD Studio に FMX Linux のバンドルを発表 (en)

エンバカデロ、FMX Linuxとの提携によりLinux向けGUIアプリケーション開発をサポート|エンバカデロ・テクノロジーズのプレスリリース
Embarcadero Extends FireMonkey® Cross-Platform Framework to Create GUI Applications for Linux | Business Wire

First Steps with FMXLinux

既にGetItパッケージマネージャからダウンロード可能です(FMXLinux 1.41)。今後はEnt/Arc SKUにバンドルまたは組み込まれることになるようです。

FireMonkey for Linux

FMXLinuxに関する日本語の情報はあまりありませんが、さぎりさんの以下のページが参考になります。

FMXLinuxが動くディストリ探しの旅
DelphiでLinux GUIアプリケーション開発 - Qiita

2019/06/28追記: 他にも参考になる記事が出ています。

FMX Linux ファーストステップ
WSL の Ubuntu 18.04 で Delphi FMXLinux を走らせる

2019年6月25日

Firebirdロードマップ(2019/06)

Firebird v2.5.9のリリースに伴ってロードマップが更新されています。

Firebird: Roadmap

適当な要約
  • Firebird 2.0 - 2012年に開発終了。最新版は2.0.7
  • Firebird 2.1 - 2014年に開発終了。最新版は2.1.7
  • Firebird 2.5 - 安定版、2019年に開発終了。最新版は2019年06月の2.5.9
  • Firebird 3.0 - 安定版。年4回のサイクルで不具合修正と性能向上を行っている。最新版は2018年10月の3.0.4で、次回(3.0.5)は2019年第3四半期第4四半期を予定。
  • Firebird 4.0 - 現在開発中(Beta 1プレビューリリースおよび日毎のスナップショットを公開)。Beta 2は2019年第4四半期、RC1は2020年第1四半期、RTMは2020年第2四半期(下記参照)を予定。

2019/10/23追記: Firebird International ConferenceでのDmitry Yemanovさんの発言によると、3.0.5と4.0 Beta 2は2019年内、4.0 RC1は2020年第1四半期、4.0のRTMは2020年第2四半期になる模様。

Firebird 2.5.9

Firebird Ver2.5.9がリリースされています。

Firebird: Firebird 2.5.9
Firebird 2.5 Release Notes (PDF)

なお2.5系はこれでEOLになります。

2019年6月1日

RAD Studio/Delphi/C++Builder 10.3.1 Rio Android Push Notification Patch

RAD Studio/Delphi/C++Builder 10.3.1 RioのAndroid Push Notification PatchがGetIt経由で提供されています。これは従来RAD Studio/Delphi/C++BuilderでAndroidのプッシュ通知としてサポートしていたGCM(Google Cloud Messaging)が2019年05月29日に終了したために、後継となるFCM(Firebase Cloud Messaging)を使用可能にするためのもので、Firebase用に更新された FMX.PushNotification.Android.pas とAndroidからFirebaseにインタフェースするための AndroidApi.JNI.FireBase.pas および jarファイル、コードとして記述しなければならないいくつかのコードスニペットから構成されています。実際に使用する場合の詳細は以下のURLに記述されています。

RAD Studio 10.3.1 での Firebase による Android向けプッシュ通知サポートについて (en)
Android Firebase Push Notifications Patch and Blog Post

なおこれらの内容は次回アップデートの10.3.2に組み込まれるとのことです。

2019/06開催のセミナー

2019年5月25日

[書籍][eBook]Delphi Programming Projects

Packt Publishingで注文した

Delphi Programming Projects (Amazon US, Amazon JP)/William Duarte著/Packt Publishing/ISBN 9781789130553/39.99USD(Print+eBook)

が配送されてきました(今回の配送もDHLで、インドのチェンナイからの発送でした)。2019/05/14に注文して12日目の到着、39.99USD=4,484JPY(1USD=112.13JPY)でした。

2019年5月24日

RAD Studio ロードマップ 2019/05

RAD Studio/Delphi/C++Builderのロードマップが更新されています。

RAD Studioロードマップ(2019年5月付) (en)
2019年5月付RAD Studioロードマップへのプロダクトマネージャからのコメント (en)

今回のロードマップの注目点は
  • 次期アップデート(10.3.2)は2019年の中頃
    • DelphiでmccOS 64ビットをサポート
    • C++ Windos x64コンパイラでC++17をサポート(現在はC++11)
  • 次期メジャーリリース(10.4)は2019年末
    • macOS/iOSでMetal 2をサポート
    • LiveBindingのパフォーマンス向上
    • Delphi/C++Builderとも全てのプラットフォームでメモリ管理を統一(モバイル環境でのARCサポートの削除)
    • DelphiでAndroid 64ビットをサポート
    • オンライン/オフラインインストーラを統合
    • Delphiで(カスタム)マネージドレコード型をサポート
  • その次のアップデート(10.4.x)は2020年
    • デバッガをLLDBベースのものに統合
    • iOSでMetal GPUドライバをサポート
    • DelphiでiOS 13のシミュレータ(64ビット)をサポート
    • C++BuilderにWhole Tomato Visual Assistを統合
といったところでしょうか。ところで10.4のコードネームがついてないのは飽きちゃったんですかね。

2019年5月1日

2019/05開催のセミナー

2019年4月1日

2019/04開催のセミナー

2019年3月28日

[書籍]実力養成C#ワークブック

紀伊國屋書店新宿本店Interactive C# (Amazon US)の翻訳である

実力養成C#ワークブック (Amazon)/Vaskaran Sarcar著/清水美樹訳/大澤文孝監修/翔泳社/ISBN 9784798160214/3,672円

を購入。

2019年3月24日

IDE Fix Pack 6.4.2

Andreas HausladenさんIDE Fix PackがアップデートされてVersion 6.4.2となっています。変更はバグフィックス(2点)のみとのことです。

IDE Fix Pack 6.4.2 released (bugfix release) – Andy's Blog and Tools

2019年3月19日

[書籍][eBook]Hands-On Embedded Programming with C++17

同じくPackt Publishingで注文した

Hands-On Embedded Programming with C++17 (amazon US, amazon JP)/Maya Posch著/Packt Publishing/ISBN 9781788629300/44.99USD(Print+eBook)

が配送されてきました(今回の配送もDHLで、インドのチェンナイからの発送でした)。2019/02/28に注文して19日目の到着、44.99USDがdiscountで36.90USD=4,200JPY(1USD=113.84JPY)でした。

[書籍][eBook]Hands-On Design Patterns with Delphi

Packt Publishingで注文した

Hands-On Design Patterns with Delphi (amazon US, amazon JP)/Primož Gabrijelčič著/Packt Publishing/ISBN 9781789343243/44.99USD(Print+eBook)

が配送されてきました(今回も配送はDHLで、インドのチェンナイからの発送でした)。2019/02/28に注文して19日目の到着、44.99USDがdiscountで36.90USD=4,200JPY(1USD=113.84JPY)でした。

2019年3月2日

IDE Fix Pack 6.4

Andreas HausladenさんIDE Fix PackがアップデートされてVersion 6.4となっています。RAD Studio/Delphi/C++Builder 10.3/10.3.1 Rioの対応といくつかのfixが追加されています。

IDE Fix Pack 6.4 released – Andy's Blog and Tools

2019/03/03追記: 10.3 Rioでスタイル関係のパッチが当たらない場合がある不具合があり、これを修正する6.4.1がリリースされています、.

2019/03/04追記: 2010でTCustomListBox.ResetContentのパッチがAVを起こしてクラッシュする不具合があり、これについても6.4.1がリリースされています。

IDE Fix Pack 6.4.1 (only 10.3 without Update 1 and Delphi 2010) – Andy's Blog and Tools