StringGridのCell内の文字列位置を取得するには

解決


nosa  2005-12-02 23:40:47  No: 18993

お世話になります。

StringGridにおいて各セルの位置は
RectのTop,Leftプロパティで取得できるのですが
あるセルの中に

「テスト文字列」

と表示されている時、「ス」や「文」の位置を
RectのTop,Leftを基点とした相対位置として
知る方法はありますでしょうか?
ご教授よろしくお願いします。


どやさ  2005-12-03 01:00:04  No: 18994

もっといい方法があるかもわかりませんが
ヒント、

ワーク用のキャンバスを作成し、StringGrid と同じフォントの
設定を行います。
このワークに「ス」の位置がしりたいのであれば「テ」
「文」の位置がしりたいのであれば「テスト」のように
直前までの文章の長さを TextWidth と TextHeight を使って調べます。

次に、調べたい文字だけ  「ス」「文」の1文字の長さを
 TextWidth と TextHeight をつかって求めます。

もう、ほとんどお分かりかと思いますが
セルの位置にそれぞれの位置を足してやればよいのです。

ただ、  TStringGrid では  開始位置が Top,Left とも +2 に
なっているので、この分も計算に入れてください。


どやさ  2005-12-03 01:19:52  No: 18995

ちなみに、ワークのキャンバス作りましたが、
StringGrid.Canvas を
つかってもよろしいかとおもいます・・
TextWidth と TextHeight だけなら
悪影響は出ないと思います。
たぶん・・・きっと・・・・確信ないです。


nosa  2005-12-03 18:54:56  No: 18996

どやささん、返信おくれてすみません。
今試せる環境にないので後日指摘いただいた
方法を行いたいと思います。
とりあえず解決とさせていただきます。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加