5−1

 

 5−2

 

 5−3

  • p168 間違い:表5−8一覧画面のコントロール 不足有り

  • button ×4

  • ステップ2で実際に作成開始

 

 5−4

  • 7 プロジェクトをビルドする

    ソリューションのビルド→表示されない場合にはツール→オプションの「プロジェクト及びソリューション」で常にソリューションを表示をチェック。

  • 8 DataGridViewにデータセットを関連付ける

1  =Form.h[デザイン]を開く

 

 5−5

  • p.195の1から実際に作成開始。それまでは説明。

  • p.196 同じように「登録」「キャンセル」をダブルクリックしてList5を入力。
              間違い:List5はItemForm.h

  • p.200 間違い:frmItem -> ShowDialog(); はすでに打ち込み済み。

 

 5−6

 

 5−7

  • 〜5−9まで実際の操作なし。csvも実際に作るわけでなく、考え方の説明のみ。

  • データ型のインスタンスはToString()メソッドを持っている
    実体の変数名.ToString()で文字列変換

  • 各データ型のクラスはParse()メソッドを持っている
    データ型クラス::Parse(String型のインスタンス)で値を各データ型に変換

 

 5−8

  • array<データ型名>^ 配列名で宣言、gcnew array<型名>(添字数)で実体化

  • for ループ

  • do〜whileループ

  • whileループ

  • for each (抜き出したい要素の変数の形・タイプ 変数名 in グループ(配列/コレクション/データテーブル) 

  1. グループに要素がない時:エラー

  2. 変数にグループの要素を一つ代入してループを実行

  3. 末端まできたら次の要素を代入、なければループを抜ける

 

 5−9

  • System::IO::StreamWriter
    ファイルポインタでストリームを書き込む感じ?

  • WriteLine(データ)
    改行有りでデータ書き込む

  • p221 List2 ここで初めて入力開始(5−7〜9内で)

  • 間違い:Form1.hにformViewクラスは存在しない。これまでの知識ではどう修正していいかも分からない。p222の件と合わせておそらくここで大部分の初心者は理解できず、この本を投げ捨てるはず。
  • →作者サイトでのコメントへの作者の返信 つまり著者たちは同時進行でVBやVC#の本を作って使いまわしているから間違えが多かったということが判明。
  • じゃあどこに?→Form1クラスに記述。
    Form1.h private: System::Void Form1_Load(…){…}の後、最後の「 }; } 」の前に記述。
  • p222 動作を確認したい方は... 
    その記述で簡単にできる人はこんな本を買わないです。
    間違い: SaveDate()→ SaveData()

確認方法& 実際に保存処理を追加するためには、Form1のデザイン画面でメニュー項目のファイル→保存の部分をダブルクリック。作成されたイベントハンドラ{}内に SaveData();とだけ記述。

  • p224 間違い:Form1.hにformViewクラスは無い。p221と同様の対処でok。

  • p225 List2間違い: sr->Close()→sr->Close();

実際に読み込み処理を追加するためには、Form1.hのメニュー項目に[開く]などの項目が欲しい所だが本書では作成していない。そこでp175〜を参考にファイル→開く(&O)などを作成するか、p178のTipsの操作で追加しておく。
その上でForm1のデザイン画面でメニュー項目の追加した部分をダブルクリック。作成されたイベントハンドラ{}内に LoadData();とだけ記述。

 

 5−10

  • p229 List1 public: ItemForm(CategoryDataSet^ dsCategory)
    {
    // //TODO: ここにコンストラクタ コードを追加します
    //
    InitializeComponent();
    CategoryDataSet->Merge(dsCategory);
    } の部分の後に。改行してpublic: ItemForm(…と追加して記述していく。

  • p230 List2は上記部分なので修正不要。

  • p231 間違い:Form1.hにformViewクラスは無い。p221と同様の対処でok。実際に変更ボタンをクリックしたときの処理を追加するためには、Form1のデザイン画面で変更ボタンをダブルクリック。作成されたイベントハンドラ{}内に UpdateData();とだけ記述。

  • p233 List4間違い:public: ItemForm()
             → public: ItemForm(CategoryDataSet^ dsCategory)

  • p234 実際に削除ボタンをクリックしたときの処理を追加するためには、Form1のデザイン画面で削除ボタンをダブルクリック。作成されたイベントハンドラ{}内に DeleteData();とだけ記述。

 

 5−11

  • p236 先にList2の修正を行い、その後List1を作成する方が簡単。(p235下部の説明)

実際の操作は、現在あるbuttanAdd_Click()を探し(p199〜200で作成)、イベントハンドラ{}内を切り取り、AddData();とだけ記述。
次にForm1.h private: System::Void Form1_Load(…){…}の後、最後の「 }; } 」の前にList1を記述。中身は先ほど切り取ったものを貼り付けでok。

  • p237 ここでは「表5-32にあるイベントを作成し、イベントハンドラにサブルーチンを割り当てる」ということと、「そのためにp238のList1〜3の操作を参考にしなさい」ということらしい。具体的には以下のとおり。

  • 1、3、6、8はすでに5−9〜上記で説明済み。

  • 2、7、9、11の処理を追加するためには、p239の3の説明を参照。
    作成されたイベントハンドラ{}内に 2はAddData();、7はUpdateData();、9はDeleteData();、11はthis->Close();とだけ記述。

  • 4、5の処理を追加するためには、p238の1の説明を参照。
    作成されたイベントハンドラ{}内に 4はSaveData();、5はLoadData();とだけ記述。

  • 10の処理を追加するためには、Form1のデザイン画面でそれぞれのボタンをダブルクリック。作成されたイベントハンドラ{}内にthis->Close();とだけ記述。

 

 5−12

  • p240 集計内容の格納するデータセットを作成する
    間違い:集計内容「を」格納する…
    p241表5-33及びその下の画像のようにデータセットを作成したら、p185の7を参考にプロジェクトをビルドしてから続けること。

  • p248 List1 3の囲っている範囲が間違い。正しくはp250表5-34のように2の範囲を含む。
    p248 7/8行目の間(for each(…)の後、expressionの前) }が抜けている。これが無いと永遠にビルドエラー。