tamo2さんからもう一つのVAIOが届く

やっと動いた.VB→プロパティ→参照タブでパスの見つからないCOMが2つ上の方に隠れていた.これでやっと参照を操作できるようになった.やれやれ…しばらくデバッグ環境でZTを走らせてモジュール構成図の入力を続けることにする.

▲ウィンドウのドッキングでウィンドウ境界に隙間ができてしまう.これは生成されている実際のウィンドウと理論値に差があるためと考えられる.ウィンドウサイズが変わってしまうのと類似した現象だ.

上半分のモジュール構成図と下半分のクラス継承図をすり合わせるために,以下のような方式を考えた.①オブジェクトを男性,クラスはすべて女性とする.②クラスメンバーはオブジェクトとして扱い,一つの結婚枠の中でクラスを長女とし,メンバーを男子兄弟とする.多分これですべてが解決するのではないかと思う.やってみよう.以前の案はクラスを配偶者として配置するというものだったが,図式的に見てこちらの方が構成し易いのではないかと思う.このようなクラス名とメンバーが表示された結婚枠をクラス枠と呼んでおこう.

あるオブジェクトOがクラスCに属する場合にはOはCを子どもとして持つ.クラスAがクラスBの派生クラスである場合には,BはAの子どもとなる.⇒確かに理屈ではこれでよいのだが,実際動作としてはゼルコバの木では多重を解消することを最大のポイントとしているため,思ったような図式にならない.また,STOPのたびにブレークが掛かるので作業の妨げになる.やはりテストにはリリース版を起こした方がよい.

▲名前を付けて保存したあと,終了して再起動するとリネーム後のファイルが立ち上がってくる.これはリネームした後で編集対象のファイルが変わっていると考えられるので,その時点でタイトルバーの表示を変えるべきだろう.⇒しばらくすると変わるようだ…

tamo2さんからもう一つのVAIOが届いた.普通は受け取りのサインが必要なところ,今日の配達員は「要らない」と言って置いていった.

image

中を開けるとお米が入っていたので,ああ,今度はお米を送ってくださったのだな~と思ったら,その下にノートが入っていた.超薄手のスマートな 2 in 1でキーボードと本体は無線でつながっていて,本体と離れていてもキーボードが使える.(というか,使用時には本体とドッキングするようにはなっていない.サブ機に使っているタブレットはキーボードを持っているが,装着しているときしか使えない).これもVAIOなの?と思えるほどまるきり別ものだが,それを同じVAIOと呼び続けるところにSONYの美学を感じる.

一時は泣きが入るほど追い込まれていたが,ようやくリリース版がビルドできたので安定版として確保しておこう.⇒「すべてのドキュメントを閉じる」を実行しようとしただけでVSがアボートしてしまった.最近のVSはクラッシュする代わりに一度アボートしてまた立ち上がってくる.バージョン番号を変えるとあちこち変更が必要になってくるが所内版の場合はそこまで厳密管理しないで,これまで通りLicenseCode.h を書き換えるだけにしておく.ZelkovaTreeSetup.2.2.0.011-64.msi,パッケージは20201025-KGWZMZCとした.

■部分図を使えばカードを個別に隠蔽することはできる.

▲検索ボックスでテキストを全選択してDELキーで「削除する対象カードを選択してください」が出る.OKでテキストはそのまま残っている.BSで一文字づつ消すことはできる.

Bobject::saveparentの位置を上に上げて,親参照パス操作の区分に移動する.また,getsaveparentというアクセス関数を作った.treeviewオブジェクトはcouplingとpagesetupから参照されている.(本来はcouplingが所有しているのだが…)

image

couplig→treeviewは連結線を引き回して描画されているが,pagesetup→treeviewをリンクすると下図のようにpagesetupはtreeviewのボックスから飛び出してしまう.

image

この場合もtreeviewと同じように,pagesetupを下げなくても(抽出枠を作らなくても)描画できそうな気はするのだが…一般に婚姻による理由以外では下流の子どもとの連結のために抽出枠を作る必要はないように思われるのだが…

▲カード一覧表の表示範囲はもっと広げてよい.たとえば不可視カードなど.選択されたカードというのも表示できればよいのだが… カード一覧表には表示されているカードの点数を(タイトルバーに)表示してほしい.多分部分図に落とせば一覧表に表示され,カウントも取れるとは思うが…⇒選択範囲を部分図として一時的に登録してカード一覧表→一覧表表示範囲→部分図に含まれるカードの操作はそれほど手間の掛かるものではない.部分図を使い倒すというのも一つの方向性だ.

大分まとまって来た.

image

まだ主要コンポーネントのNAMEBOX, MARGBOX, TRIBEBOXやその上のCARDLINKやMARGLINKなどは登場していないが,それらが出揃えば大方仕上がった図になる.一度バックアップを取っておこう.

▲結婚枠間にもう少しギャプがあった方がよい.⇒ただし,そうすると結婚枠内の人名間ギャップも(場合によっては)拡がることになる…

▲氏名同定のあいまい探索は確かに便利ではあるが,危険でもある.該当が1件の場合登録で無条件で確定するが,そのときに名前を補充している.少なくとも名前を補充した場合には,一度保留して「再登録」を待つべきだろう.氏名が厳密一致していないときはイエロー表示でもよいのではないか?⇒あいまい探索は機能としては残した方がよい.

▲子ども12人を登録して子ども数が11のままになっている.

▲カード検索パネルが出てこない.昨日は出ていたような気がするのだが…⇒通常は正常動作している.マルチスクリーンで作業していたことが影響しているのではないか?

▲一覧表でカードを選択してDELで削除パネルが出ない.メニューからは実行できる.

198点まで入力した.うちクラス要素が47個ある.クラス要素だけを部分グラフにするとまだ全然ツリーになっていない.クラス要素だけで逆向きのツリーにならなくてはならないのだが…しかし,この線が入るといきなり見難くなると思われるので,一度バックアップしておこう.現状はこんな感じになっている.

image

クラス要素部分図が細切れになっている理由は中間に一般ノードが入るためもあるのではないか?現状はこんな感じだ.

image

終端はnoduleクラスだが,クラスの大部分は基本クラスがnoduleなので,現在の設定では間に合わない.父母ページ数を大幅に増やさなくてはならない.30個くらいあれば間に合うだろう.MAXPARENTS=32としてみた.⇒起動してすぐ異常終了してしまう.メモリ不足だろうか?nodule::Sansyoで参照カウント負が起きている.TREEVIEW→Bobjectのコンストラクタでcleanを実行しているところだ.以前関数参照木グラフを作っているときにMAXPARENTS=12で動かしたことがある.⇒MAXPARENTS=12でも同じエラーになった.

どうもどこか壊してしまったのではないかという気がする.Dドライブが早くも容量不足に陥ってしまった.10個くらいバックアップを取っただけで満杯だ.と言っても1個で2.4GBもあるので…⇒作業開始前にバックアップした20201025-KGWZMZCは問題なく動いている.WinMergeで比較してみたが,修正を行った箇所以外にはゴミの混入は見られない.修正は以下の3点だ.

  1. Bobject::saveparentのクラス内での位置を上げてprivate領域に移した
  2. saveparentにアクセスするための関数getsaveparentsを導入した
  3. MAXPARENTSを4から8に引き上げた

もしかするとDドライブの容量不足がこの時点ですでに発生していた可能性も考えられる.ファイル転送が終わったら,もう一度修正版をテストしてみよう.どうもバッファ不足が発生していたのではないかという気がする.CARDBASEのサイズはMAXPARENTSによって増減するが,MAXPARENTS=8の状態でsizeof(CARDBASE)は2560にもなっている.現状MAXSTRBUF=2048だが,この値は sizeof(CARDBASE)=1240x2を基準に設定されている.いや,データベースの書き込み時に使うバッファサイズはランタイムに計算している.

下記のエラーが実行時に毎回出る.そのたびにVSを再起動しているが,かなりおかしい.VSを単独で走らせているだけなのにEXEが使えないというのはどういうことだろう?EXEを使っているのはVSだけだ…

image

▲結婚枠データの保存でMAXMARRIAGEでループしている.

image

いずれにしてもこのパッケージは放棄するしかないかもしれない.もう一度バックアップから入れ直してみよう.MAXSTRBUFは4096に増量した.⇒作り直してみたが,やはりMAXPARENTSを32まで増やすと同じような状況になる.どこか分からないが,何かしらまずいことが起きているように思われる.データサイズを大きくしているので,どこかで脚が出ているのに違いない.しかし,アプリのエラーならまず捕捉できないということはないと思われるのだが…MAX=8なら問題ない.あるいは,システムから与えられたヒープを使い切っているということも考えられる.MAX=16でも障害が生じる.

◎VAIOが2台も入ってきたので,分散処理が組めるのではないだろうか?ただし,incredibuildは有償だったはずだ.⇒2万円くらいだ.買えない値段ではない.いや,違う.それは「Acceleration Solutions」の価格で端末にインストールする「Agent」は4コアでも87,000円だ.

MAX=12なら動く.⇒「EXEを開始できない」というエラーは出るが,VSを再起動してやればMAX=32でも動作する.原因はまったく不明だが,もう少し動かしてみよう.noduleの親の登録数が13を超えてから,noduleを子どもとして登録しようとすると氏名欄が赤色表示され,別カードとして新規登録されてしまう.カード合併してやれば父母数を増やすことができる.VBでブレークポイントが効かない.⇒リリース版でテストしていた.⇒NAME_PAGEOVERが発生している.⇒MAXPARENTSがVBでは12になっている!VBではヘッダファイルを読めないのでInportExport.hで記述した内容を転記しなくてはならない!

▲VBとC++で定数が一致していることを確認する.

大体できた!ゼルコバの木システム構成図の下半身だ.

image

とりあえず,ゼルコバの木ではこれ以上にはならない.

▲クラス部分図を全選択→反転してTREEVIEW::selectAllで (topology->ActiveList->count) という理由で停止した.

▲クラス部分図で全選択→反転→部分図登録で作った部分図に女性カードのCOUPLINGが入っていた.

▲部分図をリネームして登録したのに部分図が3つになってしまった.そのうちの一つを削除して部分図の選択メニューが壊れてしまった.

image

▲ここまでのところを構成図6で保存した.このファイルを開き直そうとして,nodule::Sansyoで停止した.previous->Refcount()–;を実行していて例外が発生している.previousが無効になっている模様だ.対象オブジェクトはPARTIALNAME.枝番号は2.このスロットはlongtable *SavePartialListと思われる.この障害はPARTIALNAMEのデストラクタの中でCleanSlotを実行中に発生している.アプリアボート後,再起動してこのファイルを開いたところ,一部不具合がありましたが,修復しましたが出た.部分図は1個だけ残っている.

▲要素包含図で全選択したのに一覧画面ではごく一部のカードしか選択されていない.今度は動くようになった.

男性ノードの要素部分図はまだバラバラで木になっていない.

image

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA