ユーザ用ツール

サイト用ツール


delphi

Delphi

Delphi は Turbo Pascal から発展した(?) Windows アプリケーションの開発ツール。

Borland, Inprise, CodeGear などブランドの変遷を経て、現在は エンバカデロ の製品。

ブックマーク http://www.delicious.com/nishimotz/delphi

プロジェクト kikiwwl

過去のブログ記事

C++Builder

since 2015-02-25

How to make your Delphi applications more accessible

NVDA で操作できるアプリを作る方法を調べてみる。

以下、C++Builder XE7 のインストーラーで英語を選んでインストールした場合。

FMX でも VCL アプリケーションではなく Others の中の「SDI Application」を選ぶと、わりとアクセシブルなアプリのテンプレートとして使える。

TLabel はオブジェクトナビゲーションで操作できないので、TStaticText を使うこと。

VCL の Hint プロパティはステータスバーに表示されるが、MSAA の accName などには反映されない。

フォームは右クリック View as Text して DFM ファイルを見ると、オブジェクトナビゲーションに対応したオブジェクト構造を見ることができる。

なぜか一番上に書いたものがオブジェクトナビゲーションでは後ろに配置されるので、逆順に並べなくてはならない。

TMemo にフォーカスを移動すると、キャレットがある行だけが通知されるらしい。

2行目以降や空行にキャレットがある状態で、いったん Tab して Shift+Tab で戻ってくると非常に違和感がある。

OnEnter イベントハンドラにこんなことを書いて、キャレットを先頭にむりやり戻してみる。。

void __fastcall TSDIAppForm::Memo1Enter(TObject *Sender)
{
	Memo1->SelStart = Memo1->Perform(EM_LINEINDEX, 0, 0);
}

Delphi for Python

since 2022-03-23

https://github.com/Embarcadero/DelphiVCL4Python

https://github.com/Embarcadero/DelphiFMX4Python

https://blogs.embarcadero.com/introduction-to-python-gui-development-with-delphi-for-python-vcl-fmx/

  • 動画の説明によると Delphi でフォームを作って、Python 用に(バイナリファイルとして)エクスポート、それを Python + delphivcl/delphifmx から読み込んで GUI アプリとして配布、ということができる

以下、Windows 11 + Python 3.10 (x64) にて。

> pip install delphivcl

> pip install delphifmx

https://github.com/Embarcadero/DelphiVCL4Python/blob/main/samples/HelloWorld/hellodelphivcl.py

https://github.com/Embarcadero/DelphiFMX4Python/blob/main/samples/HelloDelphiFMX.py

<html> <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">なるほど Python で VCL と FMX の GUI 作れた。。すこしはアクセシブルな GUI が作れるといいのだが NVDA ではウィンドウのタイトルしか読み上げなかった。無償で使えるのはありがたい <a href="https://t.co/P6OCbEcTrp">pic.twitter.com/P6OCbEcTrp</a></p>&mdash; にしもつ (@24motz) <a href="https://twitter.com/24motz/status/1506443588414042115?ref_src=twsrc%5Etfw">March 23, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">さすがに VCL はちゃんと NVDA で読み上げるアプリになっていた。 <a href="https://t.co/ZnRvDATiQ9">pic.twitter.com/ZnRvDATiQ9</a></p>&mdash; にしもつ (@24motz) <a href="https://twitter.com/24motz/status/1506464966093668356?ref_src=twsrc%5Etfw">March 23, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> </html>

delphi.txt · 最終更新: 2022/03/23 12:15 by Takuya Nishimoto

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki