マルチラインセルを備えたテーブルボックステーブルボックスのわずかな問題(問題の長いリストにもう1つ)に気づきました。 テーブルボックスにかなり長い文字列を追加しようとしていますが、テーブルボックスは実際には複数の行をサポートしていないため、テーブルボックスで列ボックスを使用してみました(<< Set Wrap())...これに関する問題は他のすべてを壊す
Names Default To Here(1);
tb = Table Box(
nceb = Number Col Edit Box("Order", []),
scb1 = String Col Box("103width", {}),
cb = Col Box("longstring", {}),
scb2 = String Col Box("104width", {}),
);
nceb << Set Width(40);
scb1 << Set Width(103);
scb2 << Set Width(104);
New window("",
tb
);
textb = Text Box("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDD", << Set Wrap(150));
long_str = "speciallylongname";
Eval(EvalExpr(
tb << Add Row({1, Expr(long_str), Expr(textb), Expr(long_str)});
));

103widthが折り返され、2行目のみが表示されているようです。
誰かが私がこれをどのように扱うことができるか良いアイデアを持っていますか? これらの3つはすぐに私の頭に浮かびます:
- テキストボックスで列ボックスのみを使用する必要があり、ユーザーがテーブルボックスの行を簡単に選択できないことを受け入れるだけですか?
- 新しい表示ボックス要素のカスタムクラスを作成する必要がありますか(テーブルボックスをあきらめる場合のように)
- 全文で非表示の列を作成してから、文字列列ボックスに表示できる最大幅を計算し、それらのみを表示します。
スクリプティングウィンドウズRe:複数行のセルを含むテーブルボックススクリプトを実行したところ、さまざまな結果が得られました。

テーブルに2行目を追加すると、さらに紛らわしい結果になります

埋め込まれたテキストボックスでColBox()を使用すると役立つようです

Re:複数行のセルを含むテーブルボックス@txnelson最初のケースの違いは、私の理解では幅がピクセルを使用して設定されているため、フォント設定(またはズームレベルさえも?)が異なることが原因である可能性があります。
2番目のケースは、行が何らかの形で混同されているように見えるため、少し心配です。 間違った行からテキストを取得している可能性があります:

(long_str = "11231231312312312312"を変更;2行目)。
テキストボックスでColBoxを使用することは、今のところ「唯一の」解決策かもしれません。 残念ながら、tb << Set Selectable Rows(1);を設定するだけでは、行をクリックして強調表示することはできません。 colボックスを使用する場合。
Re:複数行のセルを含むテーブルボックス私はテーブルボックスを列ごとに入力する傾向があるので、これを試しました:
nceb << set({1});
scb1 << set({long_str});
scb2 << set({long_str});
wait(2);
cb << set(lstBoxes);
しかし、同じ問題が発生しました。それを機能させる唯一の方法は、scb1とテキストボックスを含むColボックスも用意することでした。私は通常、テーブルボックスの最初の列にラジオボタンを含めて選択できるようにすることに頼ってきました。

Re:複数行のセルを含むテーブルボックスまた、テーブルボックスは各行の高さが固定されているように見えるため、Text Box()をScroll Box()でラップすると便利な場合があります(これにより、スクロールボックスが表示された場合に列が少し広くなります)
Names Default To Here(1);
tb = Table Box(
nceb = Number Col Edit Box("Order", []),
scb1 = String Col Box("103width", {}),
cb = Col Box("longstring", {}),
scb2 = String Col Box("104width", {}),
);
nceb << Set Width(40);
scb1 << Set Width(103);
scb2 << Set Width(104);
New window("",
tb
);
textb = Scroll Box(Size(175, 35),
Text Box("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", << Set Wrap(150))
, <<SET auto="" stretching=""></SET>