mouseでクリックした行が表示されている中の何行目かを知るために、Memo1MouseDownで得られるyを使って、gyo:=y div 19; と計算します。
この19という数字はfontを変更したら変わりますが、この19という数字を
調べる関数はありますか?
先の「memo1の行数は?」の質問で得られる表示されている行数とHeightを使って逆算できるのですが、直接知る方法は無いのでしょうか?
あれば、何をどうやって調べたらいいのかを教えていただけませんか?
よろしくお願いします。
つまり、TMemoのキャレットの居る行番号を取得したい。という事ですか?
procedure TForm1.Memo1MouseDown( Sender : TObject; Button : TMouseButton; Shift : TShiftState; X, Y : Integer );
begin
Caption := IntToStr( Memo1.Perform( EM_LINEFROMCHAR, WPARAM( Memo1.SelStart ), LPARAM( 0 ) ) );
end;
一応これも置いときますね
Edit Control Messages (Windows)
https://msdn.microsoft.com/en-us/library/windows/desktop/ff485923.aspx
KONNOYA様、通りすがり様、ありがとうございます。
高校の時英語には自信があったのですが、ちょっと無理でした。
キャレットって何とか思いましたし。
皆さんはやっぱり偉い人たちなんですね。
ありがとうございました。
>高校の時英語には自信があったのですが、ちょっと無理でした。
こんな方法もあります.
[ 英語が苦手な場合 ]
http://mrxray.on.coocan.jp/Delphi/Others/A_Win32APIHelp02.htm#07
翻訳のアドオンツールもあります.
是非活用したいところです.
私の場合,使いまくりです (笑)
昔は日本語の情報もあったんですけどね…MSが面倒になって自動翻訳に丸投げしたのはいいけどBing翻訳の酷さといったら。
eternalwindowsさんの
http://eternalwindows.jp/control/edit/edit00.html
とかも参考にどうぞ。
というよりMSDNのページで適当にキーワードを見繕ったらそれをググれば日本語の情報も見つかります。その程度の手間は他人に押しつけずに自分で調べましょう、という話です。みんなが偉いわけではなく、ASさんが偉くないだけです。
英文で書かれたページは、Google Chromeを使っていれば、
右クリックで「日本語に翻訳(T)」というのがあるので私はそれを使っています。
キャレットより、カーソルと言った方が良かったですね。すみません。
余談ですが、昔はDelphi談話室という所で、トンチンカンな質問をしたりして、
困らせた事が多々あります。
※ Halbow様とMr.XRAY様には足を向けて寝れません(汗
プログラミングも奥が深くて、世の中判らない事ばかりです。
恥かいても動けば結果オーライ。今もそれでやってます。
頑張って下さい。
皆さん、いろいろとご助言いただいて、ありがとうございます。
正直、自分は年だからという甘えがあるやと思います。
ところが、あるところで私は〇〇歳前なのでと言ったら、
私もそうですよと言われました。
それで頑張ってみようかなという気になったのですが、無理と思いました。
目が悪いので小説すら読めませんし、文字を読んでも頭に入りませんし。
皆さんもかなりの高齢の方と推測していますが、頑張ってここを盛り上げてください。
今、音声合成のことでVBとかのQ&Aを見ても、昔の繁栄はどこに行った??
と思うような状況ですよね。
ツイート | ![]() |