none
テキストエディタープログラムについて

    質問

  • 本をもとにテキストエディターのプログラミングをしているのですが、MainPage.xaml.cppの一部抜粋

      bool e = !TextBoxMain->Text->IsEmpty();
      ButtonSaveAs->IsEnabled = e;
      e = e && TextFiles->GetAt(ComboBoxFilePath->SelectedIndex)->SFile != nullptr;
      ButtonSave->IsEnabled = e;
      TextBoxMain->Focus(Windows::UI::Xaml::FocusState::Programmatic);

    だと!TextBoxMainでテキストに入力が無ければ(真)、ButtonSaveAs(名前を付けて保存)が真になり項目

    が黒くはんてんしできるようになり、またButtonSave(保存)は先ほどの条件にFilePathがnullでないとき

    に(真)黒くはんてんし保存できるようになるという矛盾した考えが浮かびます。

    普通であればテキストに何か入力されていれば、名前を付けて保存ができまた、FilePathがnullでないとき

    に保存(上書き保存)ができるという内容になるはずであり、プログラムもそうなってるはずなのですが、こ

    のプログラムを自分で考え読み込むとどうしても上記の最初の矛盾した考えが浮かびます。このプログラム

    がどういう構成なのか教えて欲しいです。

    何卒よろしくお願いいたします。

    2017年4月8日 15:51

回答

  •   bool e = !TextBoxMain->Text->IsEmpty();

    (略)

    だと!TextBoxMainでテキストに入力が無ければ(真)

    TextBoxMain->Text->IsEmpty() は言われているとおり「入力がなければ真」ですが、その直前に !(否定)がついているので、逆になります。
    よって、「テキストの入力があれば真」になります。
    2017年4月8日 16:08
    モデレータ

すべての返信

  •   bool e = !TextBoxMain->Text->IsEmpty();

    (略)

    だと!TextBoxMainでテキストに入力が無ければ(真)

    TextBoxMain->Text->IsEmpty() は言われているとおり「入力がなければ真」ですが、その直前に !(否定)がついているので、逆になります。
    よって、「テキストの入力があれば真」になります。
    2017年4月8日 16:08
    モデレータ
  • 返答、ありがとうございます。

    私、勘違いしていました。

    とても助かりました。

    2017年4月8日 22:33