問題タブ [delphi-10.4-sydney]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
delphi - テキストをパスとして描画します。Bahnschrift フォントの問題
私のアプリケーションでは、ユーザーはキャンバス上にテキスト オブジェクトを作成できます。このオブジェクトをプロジェクト ファイルに保存して、後で読み込むことができます。
さまざまなプラットフォームでロードした後にオブジェクトが同じように見えるようにするために、テキスト オブジェクトをパスとして実装しました。これにより、ユーザーはダウンロードしたフォントを使用し、そのフォントを使用せずに別のデバイスでプロジェクト ファイルを開くこともできます。テキストの外観は変わりません。
パスは を使用して作成され、 を使用TTextLayout.ConvertToPath
して描画されTCanvas.FillPath
ます。これはほとんどのフォントで問題なく機能しますが、その他のフォントでは問題があります。
下の画像は、Bahnschrift フォントを使用した結果 (上) を示しています。下は、MS ペイントを使用した場合の外観を示しています。このフォントには交差するパスがあるようです。問題は、FillPath が別の塗りつぶしモードを使用していることだと思いますが、これは変更するオプションではないようです。
また、テキストを作成してパスに変換することで、Inkscape で SVG と同じフォントをテストしましたが、正しく描画されました。Delphi と Inkscape で作成されたパス データは基本的に同じです (t は互いに交差する 2 つの閉じた領域で構成されています)、異なるのはそれらの描画方法です。
誰でもこれの修正を提案できますか?
これがコードです
delphi - Delphi コンポーネントのカスタム プロパティが DFM ファイルに保存されない
DFM ファイルに保存したくないカスタム コンポーネントのプロパティがあります。私は、DefineProperties メソッドをオーバーライドして、値を保存しないことを期待して、ReadData および WriteData プロシージャを提供しませんでしたが、それでも保存されます。
このプロパティを保存しない理由は、プロジェクトを ADO から FireDAC に移植し、一部の ADO コードを変更せずに実行して対応する FireDAC プロパティにリダイレクトする「偽の」プロパティを作成したためです。
これらの「偽の」プロパティを、互換性のために、実際のプロパティの役に立たないコピーでDFMファイルに埋めずに保持する正しい方法はどうすればよいですか?.
ありがとうございました。
image - プログラムで TImageCollection に画像を追加する方法
データ モジュール (.dfm ファイル) のリソースとして使用できるように、入力して保存したい TImageCollection を読み込もうとしています。このコードは、選択した .png ファイルから画像コレクションに画像を追加し、カウントが増加していることがわかります。
しかし、リソースとして保存する必要があります。それはできますか?