階層リストボックスにて
2 posters
階層リストボックスにて
お世話になります。
列にプロセス変数配列を割り当てず、フォーム生成時に動的に4Dによる変数生成を任せる場合、デザインモードでGUIにて列を選択し階層を作成実行ができない・・・というのも階層のブレーク行を構成すべき変数名が設定されていないのですから、これは仕方ないと思います。一方コマンドLISTBOX SET HIERARCHYを使って設定した場合、非表示になるべき列が表示されたままで、別の列項目が表示されてしまいます。LISTBOX SET HIERARCHYでは左から3列分の動的配列ポインタを指定してみました。
列が非表示にならないのはそういう物と思えばまぁいいとして、別の項目が表示されるのが謎です。(インデントされている様なので1列目を微妙な列幅に設定する事で表示された項目は隠すことは可能なようでしたが、今度は2列目Nameの列は完全に隠す事ができません)
1列目の表示に3列目の項目が表示され、なぜか2列目Name列のヘッダークリックソートで、降順になったときか、何度かソートを繰り返した時4Dがクラッシュしてしまいます。
GUIで表示する為の列名定義したリストボックス枠をサクッと作って、Selection to JSONしてJSON PARSE ARRAYしたオブジェクト配列をそのリストボックスに適用処理すると、相当ラクに見栄えするレイアウトが作れて便利で、できればコード側でやりたいことが完結できると嬉しいのですが・・・これはv16の問題なのでしょうか?それとも4Dによる動的配列変数生成に係わるのでしょうか?
列にプロセス変数配列を割り当てず、フォーム生成時に動的に4Dによる変数生成を任せる場合、デザインモードでGUIにて列を選択し階層を作成実行ができない・・・というのも階層のブレーク行を構成すべき変数名が設定されていないのですから、これは仕方ないと思います。一方コマンドLISTBOX SET HIERARCHYを使って設定した場合、非表示になるべき列が表示されたままで、別の列項目が表示されてしまいます。LISTBOX SET HIERARCHYでは左から3列分の動的配列ポインタを指定してみました。
列が非表示にならないのはそういう物と思えばまぁいいとして、別の項目が表示されるのが謎です。(インデントされている様なので1列目を微妙な列幅に設定する事で表示された項目は隠すことは可能なようでしたが、今度は2列目Nameの列は完全に隠す事ができません)
1列目の表示に3列目の項目が表示され、なぜか2列目Name列のヘッダークリックソートで、降順になったときか、何度かソートを繰り返した時4Dがクラッシュしてしまいます。
GUIで表示する為の列名定義したリストボックス枠をサクッと作って、Selection to JSONしてJSON PARSE ARRAYしたオブジェクト配列をそのリストボックスに適用処理すると、相当ラクに見栄えするレイアウトが作れて便利で、できればコード側でやりたいことが完結できると嬉しいのですが・・・これはv16の問題なのでしょうか?それとも4Dによる動的配列変数生成に係わるのでしょうか?
osaru- 投稿数 : 67
登録日 : 2017/08/14
Re: 階層リストボックスにて
済みません。クラッシュログ貼り忘れていました。
- Code:
Thread 25 Crashed:: P_1 (id = -8)
0 com.apple.CoreServices.CarbonCore 0x00007fff45ee87ec CSMemGetHandleSize + 35
1 com.apple.CoreServices.CarbonCore 0x00007fff45eff932 CSMemHandToHand + 40
2 com.apple.CoreServices.CarbonCore 0x00007fff45eff8f7 HandToHand + 11
3 com.4d.4d 0x00000001042e635b handletohandle(char**, char***) + 25
4 com.4d.4d 0x000000010412a07f QSortMultiArray::Reorder() + 127
5 com.4d.4d 0x000000010412abe3 QuickSortArrayCV(sortarraysLink*) + 112
6 com.4d.4d 0x0000000104826ad3 VFormGrid_Array::_SortColumns(xbox::VArrayLong&, xbox::VArrayLong&, unsigned char) + 4335
7 com.4d.4d 0x00000001048451b9 VFormGrid::SortColumn(int, ESortOrder) + 331
8 com.4d.4d 0x000000010484ca3b VFormGrid::DoFrameMessage(xbox::VFrameMessage const&) + 3987
9 com.4d.4d 0x00000001048667d6 VGridView::DoFrameMessage(xbox::VFrameMessage const&) + 40
10 com.4d.gui 0x0000000106b840a3 xbox::VFrame::_DispatchFrameMessage(xbox::VFrameMessage&) + 25
11 com.4d.gui 0x0000000106b84084 xbox::VFrame::SendFrameMessage(xbox::VFrame&, xbox::VFrameMessage&) + 36
12 com.4d.gui 0x0000000106b779d2 xbox::VListHeader::DoEndTracking(int) + 580
13 com.4d.gui 0x0000000106b91f77 xbox::VControl::DoMouseUp(xbox::VMouseEvent const&, xbox::VPointOf<double>&) + 117
14 com.4d.gui 0x0000000106b76d35 xbox::VListHeader::DoMouseUp(xbox::VMouseEvent const&, xbox::VPointOf<double>&) + 247
15 com.4d.gui 0x0000000106b83a67 xbox::VFrame::MouseUp(xbox::VMouseEvent const&, xbox::VPointOf<double>&) + 209
16 com.4d.4d 0x00000001048b6575 VFormFrame::DoMouseUp(xbox::VMouseEvent const&) + 103
17 com.4d.4d 0x000000010484b5eb VFormGrid::DoMouseUp(xbox::VMouseEvent const&) + 95
18 com.4d.4d 0x000000010417f637 saisierec::HandleEvent(V4DEvent*) + 649
19 com.4d.4d 0x000000010417f231 drivesaisie(saisierec*, V4DEvent*) + 147
20 com.4d.4d 0x00000001048ca3ad V4DEventScope::_ProcessEvent(V4DEvent*, saisierec*) + 85
21 com.4d.4d 0x00000001048ca4ba V4DEventScope::RunEventLoop(saisierec*) + 42
22 com.4d.4d 0x000000010418b4e5 dialogue(calcblock*, VCurrentForm const&) + 637
23 com.4d.4d 0x0000000104781eb6 do_dialog(runtime4dLink*) + 184
24 com.4d.4d 0x00000001043e4b46 VDBLanguageContext::ExecuteCommand(runtime4dLink*) + 62
25 com.4d.4d 0x00000001042f2d5d calcul_subanalyse(short, champvar_template<256>*, calcblock*, calculLink*) + 384
26 com.4d.4d 0x00000001042ee8ad calculLink::Execute(champvar_template<256>*) + 2079
27 com.4d.4d 0x00000001042d5405 cct_interpreted(cctLink&) + 2266
28 com.4d.4d 0x00000001043d8403 VDBLanguageContext_interpreted::DoExecute(calcblock&, VCodeDescriptor*) + 311
29 com.4d.4d 0x00000001043e3908 VDBLanguageContext::Execute(VDB4DTableProxy*, VFormContext*, short, int, int, champvar_template<256>**, VCodeDescriptor*) + 162
30 com.4d.4d 0x00000001043e3582 VDBLanguageContext::ExecuteProjectMethod(VMethodInfo const*, int, champvar_template<256>**, VDB4DTableProxy*, VFormContext*, short, int) + 542
31 com.4d.4d 0x00000001043b82ac V4DWorkerMessage::_Execute(VDBLanguageContext*, VFormContext*) + 110
32 com.4d.4d 0x00000001043b8bc0 V4DWorker::Run(V4DTaskConcrete*) + 208
33 com.4d.4d 0x00000001043b28f6 Task4DProc(V4DTaskConcrete*) + 910
34 com.4d.4d 0x0000000104813338 V4DTaskManager::_Task4DProc(xbox::VTask*) + 160
35 com.4d.kernel 0x00000001069332ae xbox::VTask::_Run() + 78
36 com.4d.kernel 0x0000000106938486 xbox::XMacTask_fiber::_ThreadProc(void*) + 70
37 com.4d.kernel 0x000000010697222f xbox::VMacFiber_thread::_ThreadProc(void*) + 31
38 com.apple.CoreServices.CarbonCore 0x00007fff45f76ea4 CooperativeThread + 282
39 libsystem_pthread.dylib 0x00007fff70de02eb _pthread_body + 126
40 libsystem_pthread.dylib 0x00007fff70de3249 _pthread_start + 66
41 libsystem_pthread.dylib 0x00007fff70ddf40d thread_start + 13
osaru- 投稿数 : 67
登録日 : 2017/08/14
Re: 階層リストボックスにて
列の表示は最大幅0最小幅0幅設定0で隠すことができました。osaru wrote:今度は2列目Nameの列は完全に隠す事ができません)
osaru- 投稿数 : 67
登録日 : 2017/08/14
Re: 階層リストボックスにて
階層リストボックスは,あまり使用する機会がないのですが,フォームエディターで作成する場合,コードでLISTBOX SET HIERARCHYする場合, どちらにしても,階層モードでグループ化される列オブジェクトは明示的に削除する必要があったと記憶しています。(LISTBOX DELETE COLUMN)OBJECT SET VISIBLEを列オブジェクトに対して実行するだけでも良かったのか,憶えていません。列幅で隠すよりは,良いはずです。
オブジェクト型配列でリストボックスを・・・というアイデアは,v17のコレクション型リストボックスで実現していますし,動的変数配列で・・・というテクニックも,v17のFormコマンドやJSONフォームにより,使用する機会がめっきり減りました。Selection to JSONも,ほぼ役割を終えたように思えるかもしれません。
オブジェクト型配列でリストボックスを・・・というアイデアは,v17のコレクション型リストボックスで実現していますし,動的変数配列で・・・というテクニックも,v17のFormコマンドやJSONフォームにより,使用する機会がめっきり減りました。Selection to JSONも,ほぼ役割を終えたように思えるかもしれません。
miyako- 投稿数 : 483
登録日 : 2016/07/05
Re: 階層リストボックスにて
miyakoさんありがとうございます。クラッシュする件は、隠すことで回避できました。また、階層にした場合の第一列目内容の動作で他の列の内容が標示される事も何ら不自然で無い事が理解できました。理解が遅くて申し訳ありません。
v17への移行は、もう一寸先になりそうで残念なのですが、随分と楽になりそうで楽しみです。
他に少し気になったのですが、カーソルキーでの移動が変ではありませんでしょうか?上下のカーソル移動で意図する行に移動できず、上端や下端にジャンプしていました。
v17への移行は、もう一寸先になりそうで残念なのですが、随分と楽になりそうで楽しみです。
他に少し気になったのですが、カーソルキーでの移動が変ではありませんでしょうか?上下のカーソル移動で意図する行に移動できず、上端や下端にジャンプしていました。
osaru- 投稿数 : 67
登録日 : 2017/08/14
Permissions in this forum:
返信投稿: 不可
|
|