お世話になります。
StringGridにおいて各セルの位置は
RectのTop,Leftプロパティで取得できるのですが
あるセルの中に
「テスト文字列」
と表示されている時、「ス」や「文」の位置を
RectのTop,Leftを基点とした相対位置として
知る方法はありますでしょうか?
ご教授よろしくお願いします。
もっといい方法があるかもわかりませんが
ヒント、
ワーク用のキャンバスを作成し、StringGrid と同じフォントの
設定を行います。
このワークに「ス」の位置がしりたいのであれば「テ」
「文」の位置がしりたいのであれば「テスト」のように
直前までの文章の長さを TextWidth と TextHeight を使って調べます。
次に、調べたい文字だけ 「ス」「文」の1文字の長さを
TextWidth と TextHeight をつかって求めます。
もう、ほとんどお分かりかと思いますが
セルの位置にそれぞれの位置を足してやればよいのです。
ただ、 TStringGrid では 開始位置が Top,Left とも +2 に
なっているので、この分も計算に入れてください。
ちなみに、ワークのキャンバス作りましたが、
StringGrid.Canvas を
つかってもよろしいかとおもいます・・
TextWidth と TextHeight だけなら
悪影響は出ないと思います。
たぶん・・・きっと・・・・確信ないです。
どやささん、返信おくれてすみません。
今試せる環境にないので後日指摘いただいた
方法を行いたいと思います。
とりあえず解決とさせていただきます。
ありがとうございました。
ツイート | ![]() |