2012-03-06 15 views
4

この件に関する情報はあまり多くないと思われますので、誰かが提案してくれればうれしいです。Firemonkeyの文字列グリッドセルで異なるフォントスタイルとアイコンを使用する方法

文字列グリッドセルのテキストのさまざまな部分の色とスタイルを変更したいと思います。

例: 20-02-2011からドキュメントタイトル

またstringgridセルにアイコンを表示することは可能でしょうか?

+2

?もしそうなら、あなたはTGridを使う必要があると思いますが、カスタムのセル/カラムを作成してください。これは2つのTTextコンポーネントを持っています。各TTextコンポーネントはフォントスタイルごとに1つあります。カスタムグリッドセルのための私の記事を参照してください。http://monkeystyler.com/blog/entry/firemonkey-grid-basics-custom-cells-and-columns –

答えて

0

モンキースタイラーのブログはFMXグリッド内のセルの表示をカスタマイズする方法の例が含まれ、文字列のグリッド内のアイコンやビットマップを表示することが実際に可能です。しかし、あなたの質問の他の部分を考える

http://monkeystyler.com/blog/entry/firemonkey-grid-basics-custom-cells-and-columns

が、あなたはまだFMXは、リッチテキスト同等またはHTMLレンダリングコンポーネントを持っていないとして、異なるフォントでテキストを表示するために、スタイルを構築する必要があります(I」後者が来ると確信しています、私はしばらく取得することに自信がない!)。あなたはそれぞれ異なるフォントサイズ/スタイルなどのスタイルでテキストコンポーネントを持っている必要があります、あなたはongetvalueにしてonsetvalueコードを使用して(結合またはスタイル名プロパティを使用して)テキスト要素に名前を付け、テキストコンテンツの設定を処理する必要がありますあなたはonapplystyleイベントを使用することもできます)を使用して、テキストを太字で表示することもできます。私の経験では - - 設定が、することが容易である -

イベントハンドラは、バインディングのいずれか使用しますバギー。

mycell.binding['boldtext']:='sometext'; 

findstyleresourceを使用してstylenameでスタイル要素を見つけます。主に - - あなたは後にしているものを

tempobj:=mycell.findstyleresource('boldtext'); 
if tempobj is ttext then 
    ttext(tempobj).text='sometext'; 

言い訳がどんな悪いコーディングスタイルは、しかし、あなたは一般的な考えを(私は願って)あなたのスタイルでttextコンポーネントをtrueに自動サイズ調整し、それらをあなたが得る左揃えに設定した場合取得します。唯一の問題は、結果のテキストが非常にシームレスに見えないということです。なぜなら、自動サイズ調整と左揃えは、リッチテキストまたはHTML表示で得られるフォント間に同じスペースを実際に与えないからです。あなたは(それをあなたが余分なスペースを削除できるようにする必要があり、左パディングのために負の数を与える)パディングをいじることができるはずですが、あなたはそれが適切なフォントヒンティングとアライメントに比べて完全に完璧されていないと一緒に暮らす必要があります。一つのセルで

+0

ポール、私の記事がTGrid、ないTStringGridに関するものです。私はFMXで文字列グリッドを使用したことがないので、動作するかどうかをコメントすることはできません。 –

+0

私はこれを例として使用していましたが、実際には2つのコンポーネントを1つのセルで動作させることができます。それは実際にstringgridコンポーネントで動作するわけではありません(私はそれを使うでしょう、私もグリッドを使用するだろう) –

関連する問題