• ベストアンサー

delphi stringgrid

Delphi StringGrid で 各セルごとにフォントの色や大きさを変えたりできますか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

標準のTstringGridのままでは出来ませんので、コレを使うと楽です。 http://www.delphianworld.com/ TStrColGrid 文字位置:文字色:セル色:セル幅 等欲しいと思われる基本機能が実装されています。 他にもいくつかグリッドがあるので、自分の用途に合うものを探してみてはいかがでしょうか。

situmonnsya
質問者

補足

ありがとうございます。 とても良いコンポーネントと思います。 でも、 悲しいです。 インストールの方法がわかりません。 DLファイルのドキュメントを読んでも理解できません。 >通常のコンポーネントインストール手順 ってどうするんでしょう? よろしければ、参考サイトでも紹介頂ければ幸です。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

回答No.6

Delphi2005以降?コンポーネント追加方法が変わりました。 お使いのDelphiが2005以降ならヘルプで「パッケージ, ユニット」を参照してください。 多少の読みかえは必要です。 //-- ダウンロードしたコンポーネントを自分の管理できる場所に移動しておきます。 ファイル→新規作成→パッケージ プロジェクトマネージャに Package1.bpl と言うツリーができます。 Package1.bplで右クリックすると、追加というメニュがありますので追加から、コンポーネントの.pas を追加します。 Package1.bplで右クリックすると、インストールと言うメニューもあります。 インストールすると、コンポーネントが追加されるはずです。

situmonnsya
質問者

お礼

delphi6 でしたが うまく追加できました。 ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • techa
  • ベストアンサー率60% (41/68)
回答No.5

わたしはCBなのでDelphiではないのですが、おそらく大差ないはずです。 メニューの コンポーネント - コンポーネントのインストール をえらび、 ユニットファイル名のところに所定のコンポーネントを 指定します。 あとはコンパイルして導入、保存すれば、どこかのタブに アイコンがついかされているとおもいます。

situmonnsya
質問者

お礼

#4のサンプルを再検討したら、なにも複雑ではないですね。 とても参考になってます。 ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • techa
  • ベストアンサー率60% (41/68)
回答No.4

#3です。 なんとなく近いサンプルが以下のページにあります。 参照されるのもよいのではないかと思います。

参考URL:
http://forum.nifty.com/fdelphi/faq/00105.htm
situmonnsya
質問者

お礼

ありがとうございます。 結構コードが複雑になりそうですね。 参考にさせて頂きました。

全文を見る
すると、全ての回答が全文表示されます。
  • techa
  • ベストアンサー率60% (41/68)
回答No.3

できますよ。私はCB6でいつもやっているので、出るφにはうまく書き換えてくださいね。 StringGridのDefaultDrawingプロパティをfalseにすると標準のフォント設定やらなにやらが全てOffの状態になるので、OnDrawCellイベントを実装します。 if(State.Contains(gdFixed)) { //固定セルだったら... sgrid->Canvas->Brush->Color= sg->FixedColor; else if(State.Contains(gdFocused)){ //フォーカスのあるセルだったら... } のようにそれぞれ記述して RECT r=RECT(Rect); sgrid->FillRect(Rect); //背景色で消去 で背景色が決められます。 同様に sgrid->Canvas->Font->Color= sgrid->Font->Color; のなどをセットしておいて InflateRect(&r,-2,-2); //テキスト表示領域の設定 とすれば、フォントカラーがきめられます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

TStringGrid の OnDrawCell イベントで描画処理をすることで、実現できます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • delphi6 StringGrid セルの位取り

    delphi6 StringGrid セルの位取り セルの値(数字)を右寄せ、位取りさせて表示させたいのですが、きれいに並びません。 A:='00,123,456,789' B:='00,000,123,456'  にすると、きれいに並びますが、 A:='___123,456,789' B:='_________123,456' と、0を空白にすると並びがずれます。 右寄せにするプロパティはないでしょうか? QNo.258234に似た質問がありましたが、もっと簡単にできないでしょうか?

  • DelphiのStringGridについて

    StringGridにFixedColsやFixedRowsというのがありますが、これを1以上に設定して、この固定された行を選択した時にイベントが起こるようにしたいのですが、OnClickイベントだと選択できる(Fixでない)行を選択しないと発生しないようです。 これに対応するイベントはありますか? あるいは他に対処法はあるでしょうか?

  • delphiのStringGridで特定のcellの色を変える

    delphiのStringGridで、指定したcellの色を変えることは出来るでしょうか? cells[5,5]だけ色が付いてる、みたいなイメージです。 初心者のためサンプルコードをご教示いただけると大変ありがたいです。

  • Delphiでコンポーネントをfunctionから参照するには

    Delphiで例えば、StringGridのCellsプロパティをeventで呼ばれる procedureではなく自分で作ったfunctionで参照したり,更新したりできる 簡単な方法がありますか?

  • Delphi6 ループ中にキー入力

    Delphi 6 です。 for next などのループの中で、stringgridのセルをEnterキーで選択させたい時、選択されるまで(キーが押されるまで)処理を進めたくない方法は、どうするんでしょうか? flg:=false; for i:=1 to 100 do begin ~諸々の処理で flg:=true; ~ if flg=true then x[i]:= stringgridの選択されたRow番号(はじめからフォーカスされている番号でなく) ~諸々の処理で flg:=false; ~ end;

  • セル表示

    DelphiのStringGridの一つのセル内に   123   456   789 と1~9の数字を表示したいのですが、可能でしょうか。 欲張りですが   1 3    56   7 などのように、全部ではなく1~9の数字の幾つかを表示 できればと思います。   

  • BCB:StringGridでgoEditingを操作すると不思議な動きをする

    C++ Builder5で不思議な動きをしています。 StringGridで、OptionにgoEditingを操作し、修正不可のセットをしました。 StringGrid1->Options = StringGrid1->Options >> goEditing; その後、StringGridのどこかのセルをクリックして、そのセルをスクロールバー で隠したり表示したりすると、修正不可セット直前にカーソルのあったセルの 内容が現れてきます。 具体例を示すと、1行3列目にカーソルのある状態で、修正不可にセットします。 次に、5行5列目をクリックした後、スクロールバーでこのセルを見えない様に StringGridをスクロールします。 再度、5行5列目が見えるようにスクロールを戻すと、1行3列目に入っていた 内容(文字)が表示されているのです。 この時、別のセルをクリックすると、5行5列目には本来の内容(文字)が表示 されて来ます。 別のセルをクリックすると、正しい内容に戻りますので、表示だけの問題だと 思うのですが、不思議で困った現象です。 なんとか、これを回避する方法はないでしょうか?

  • StringGridでの文字入力制限

    C++BuilderでStringGridで、GoEditingプロパティをtrueに設定してセルの内容を編集するときに、数字のみ受付可能にするにはどうしたらいいでしょうか?よろしくお願いします。

  • Delphi2007のCheckBox.Font.Colorの変更

    Delphi2007でTCheckBoxのFont.Colorを変更したいのですが、オブジェクトインスペクタで変更しても色が変わりません。何か特別な方法があるのでしょうか。それともバグ? よろしくお願いいたします。

  • ドラッグアンドドロップ

    Delphi Personal6のStringGridのセル間でドラッグアンドドロップする方法を教えて下さい。ラベルコンポーネントからグリッドセルへというようなコンポーネント間のD&Dはできたのですが、セル間のD&Dができません。よろしくお願いします。