話題(スレッド): 行番号の表示とHRulerUnitWidthによる折り返しについて

行番号の表示とHRulerUnitWidthによる折り返しについて (2016-10-20 17:08, Haru, #78914)

初めまして。近頃からこのコンポーネントを使わさせて頂いております。
非常に助かっております、ありがとうございます。

ところで、行番号の表示とHRulerUnitWidthによる折り返しについて質問があります。

ShowsLineNumberによる行番号の表示は論理行によるもののようですが、
これを物理行で表示させることはできないのでしょうか?

また、HRulerUnitWidthに文字数をかけた値で折り返しを指示すると
文字数による折り返しができると読んで、そのようにしてみたのですが、
どうしても文字数と実際に折り返される場所とでズレが生じてしまいます。
これをなんとかする方法はありませんでしょうか?

お忙しいところ恐縮ですが、どうぞよろしくお願いいたします。

メッセージ #78914 への返信×

ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする

Re: 行番号の表示とHRulerUnitWidthによる折り返しについて (2016-10-21 14:12, sgry, #78916)

Haruさん、

山本(sgry)です。Azukiをお使いいただきありがとうございます。

現在、行番号は論理行でのみ表示可能な仕様です。物理行で表示するにはソースの修正が必要になります。比較的簡単に実現できることは分かりましたので、少し検討してみます。

折り返し幅の設定はAzukiControl.ViewWidthプロパティへの設定で行っていますでしょうか?その場合、テキスト描画領域の左側にある領域も考慮する必要があります。具体的には、たとえば「半角80桁」での折り返しをしたい場合は次のように設定してください:

# azuki: AzukiControlとします
azuki.ViewWidth = azuki.View.LineNumAreaWidth
+ azuki.View.DirtBarRectangle.Width
+ azuki.View.LeftMargin
+ azuki.View.HRulerUnitWidth * 80;

なお行番号領域などの表示情報に応じて上記計算式を変更する必要はありません。たとえば行番号を非表示にした場合はLineNumAreaWidthは0になりますので。


以上、ご参考になれば幸いです。
#78914 への返信

メッセージ #78916 への返信×

ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする

Re: 行番号の表示とHRulerUnitWidthによる折り返しについて (2016-10-22 00:55, Haru, #78917)

早速の返信、ありがとうございます。

なるほど、そういうことだったのですね。
無事にきちんと折り返しする事ができました。ありがとうございました。

また、行番号につきましても、検討して頂けるとのことで、ありがとうございます。
最悪、USER32.DLLを使って複数のコントロールのスクロールを同期させて行番号を表示するつもりでしたので、導入して頂けるととても有難いです。
気長に待たせて頂きます。
#78916 への返信

メッセージ #78917 への返信×

ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする