テキスト編集ボックスに nlines を自動的に設定しますか?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />JMPers の皆さん、こんにちは。
とテキストボックス折り返しピクセルと幅ピクセルを設定すると、テキストボックスの高さがテキストを収容できる十分な大きさに自動的に設定されます。例えば:
私のナール= 「ベーコン イプサム ドロール アメット サーロイン ショート ロース ミートローフ ドナー、肩豚ブリスケット ベーコン豚ブーダン アルカトラ ハム ホック チャック ハンバーガー コンビーフ。 ポークチョップ、ランドイエガーソーセージ、フランクフルタービルトン、ドナーポークロース、ハム、パストラミ、ファットバックサーロイン。 ブリスケット生ハムのコンビーフショートリブ。 ボールチップフィレミニョンショルダー、ランドイェーガーコーンビーフファットバック牛すね肉鹿肉ポークチョップベーコンミートボールブレサオラレベルカス。 トライチップショートリブ、アンドゥイユテール、生ハム、ドネル豚挽肉、丸型ミートローフ、パンチェッタブーダン。
ブリスケットビーフベーコン、ランドイェーガービーフリブ、テンダーロイン、アルカトラTボーンショートリブ、鹿肉、ファットバック、カピコラ、ピカーニャ豚。 サラミ、ブリスケット、ドナー、ドラムスティック、豚ロースすね、チキン、コンビーフ、ショートリブ、チャックミートボール、Tボーン。 アンドゥイユ フランクフルト ランプ ストリップ ステーキ ランドイェーガー ベーコン ビーフ ハム ホック ハンバーガー フランク ピカーニャ。 ブリスケット ショート ロース フランク ハンバーグ 豚バラ肉 ソーセージ ブレザオラ ドナー。 ビルトン生ハムジャーキー、スペアリブ、ポルケッタ、ピカーニャ、ランプ豚、豚ロース、クピム。」 ;
新しい=新しい窓( "テスト" 、
TB =テキストボックス(私のナール) 、
) ;
TB <<セットラップ( 600 ) <<幅を設定する( 600 ) ;
ユーザーは情報の一部をコピー/ペーストする必要があるため、テキスト編集ボックスに長いテキストをいくつか入力しています。ただし、テキスト編集ボックスは次を使用して高さを設定する必要があります。 nline を設定する。
新しい=新しい窓( "テスト" 、
テブ=テキスト編集ボックス(私のナール) 、
) ;
テブ<<セットラップ( 600 ) <<幅を設定する( 600 ) << nline を設定する( 10 ) ;
長いテキストの行数を計算する賢い方法はありますか?方法を思いついたのですが、面倒なようです。この例を実行するために必要なコードを添付しました。機能は2つありますが、 get_num_linesとmy_parse 。任意の長さの区切り文字や、間に何もない区切り文字が 2 回以上出現する場合には、独自のパーサーを作成する必要がありました。
新しい=新しい窓( "テスト" 、
テブ=テキスト編集ボックス(私のナール) 、
) ;
num_lines = get_num_lines(私のナール、 600 ) ;
テブ<<セットラップ( 600 ) <<幅を設定する( 600 ) << nline を設定する( num_lines ) ;
Re: テキスト編集ボックスに nlines を自動的に設定しますか?私を正しい軌道に乗せてくれたMSに感謝します。シンプルで洗練された解決策をありがとう!
この方程式は、高さ / (フォントサイズ + 1) よりも少しうまく機能するようです。
インライン=最大( 1 、床( .6264918 *身長/フォントサイズ- 1.567659 )) ;
補遺:
これは文字数が少ない場合にうまく機能します。
インライン=最大( 1 、ラウンド( .5204443 *身長/フォントサイズ)) ;
Re: テキスト編集ボックスに nlines を自動的に設定しますか?1 つのアイデアは、テキスト ボックスの自動サイズ変更機能を利用することです。 行数はこの比率、height_of_textbox / (fontsize+1) に等しいように見えます。
私のナール=
「ベーコン イプサム ドロール アメット サーロイン ショート ロース ミートローフ ドナー、肩豚ブリスケット ベーコン豚ブーダン アルカトラ ハム ホック チャック ハンバーガー コンビーフ。 ポークチョップ、ランドイエガーソーセージ、フランクフルタービルトン、ドナーポークロース、ハム、パストラミ、ファットバックサーロイン。 ブリスケット生ハムのコンビーフショートリブ。 ボールチップフィレミニョンショルダー、ランドイェーガーコーンビーフファットバック牛すね肉鹿肉ポークチョップベーコンミートボールブレザオラレベルカス。 トライチップショートリブ、アンドゥイユテール、生ハム、ドネル豚挽肉、丸型ミートローフ、パンチェッタブーダン。
ブリスケットビーフベーコン、ランドイェーガービーフリブ、テンダーロイン、アルカトラTボーンショートリブ、鹿肉、ファットバック、カピコラ、ピカーニャ豚。 サラミ、ブリスケット、ドナー、ドラムスティック、豚ロースすね、チキン、コンビーフ、ショートリブ、チャックミートボール、Tボーン。 アンドゥイユ フランクフルト ランプ ストリップ ステーキ ランドイェーガー ベーコン ビーフ ハム ホック ハンバーガー フランク ピカーニャ。 ブリスケット ショート ロース フランク ハンバーグ 豚バラ肉 ソーセージ ブレザオラ ドナー。 ビルトン生ハムジャーキー、スペアリブ、ポルケッタ、ピカーニャ、ランプ豚、豚ロース、クピム。」 ;
w = 450 ; // 折り返しと幅
TB =テキストボックス(私のナール、セットラップ( w ) 、幅を設定する( w ) 、隠れる( 1 )) ; // 一時的に非表示のテキストボックス
新しい=新しい窓( "テスト" 、 TB ) ;
// サイズ情報を取得する
身長= ( TB <<サイズを取得する)[ 2 】 ;
フォントサイズ= TB <<フォントサイズを取得する;
インライン=身長/ (フォントサイズ+ 1 ) ;
//nlines++; // +1 を追加してパディングを取得します。 TextEditBox のコンテンツを選択するとサイズが大きくなります
TB <<消去;
//TextBox と同じサイズの TextEditBox を追加します
テブ=テキスト編集ボックス(私のナール、セットラップ( w ) 、幅を設定する( w ) 、 nline を設定する(インライン)) ;
新しい<<追加する(テブ) ;