VB的に覚える TypeScript その1 〜 Visual Studio 2015

  • 2017.03.09 Thursday
  • 22:34

 

さて、そろそろ自分もWeb開発でもしようかと思い立ったが、

もはや追いついていけないレベルな今日この頃。

 

せいぜいしーた朗を作るのが限界

 

   1:  //度->ラジアン変換
   2:  function fcDegToRad(srcValue) {
   3:      "use strict";
   4:      if (srcValue === 0.0) {
   5:          return 0.0;
   6:      } else if (srcValue === 1.0) {
   7:          return Math.PI / 180.0;
   8:      } else {
   9:          return (Math.PI * srcValue) / 180.0;
  10:      }
  11:  }

 

こんな程度の簡単なスクリプトを書ければ良い方で、

 

ずいぶん前に投稿したが、

このソースの=== の部分でも始め警告の意味が分からなかった。

 

今どきのJavaScriptのソースを読むと、

(function () {} ()) ってどういうこと?

 

   1:  (function () {...}());

 

$ってなんだよ、(function ($) {}(jQuery))ってどうなっているんだ?

 

   1:  (function ($) {}(jQuery));

 

とか

 

こちらの記事が分かりやすい

(function($) {})(jQuery);って何?って思ったからいろいろ試してみた記録

 

 

しばらくホームページとか作っていない間にずいぶんと言語が進化(?)していて、

原始人にはもはや追いつけないレベル。

 

 

さて、長い前置きはこのくらいにして、

何かWeb開発(といっても、自分の中ではしーた朗レベルがサクッとできればよいのだが)で入り込める余地はないかと、

この2年くらい模索していたのだが、

 

TypeScriptという言語がなんだか良さそうに思えたので、

ちょっと勉強してみることに、

 

この言語、MicrosoftによってJavaScriptの代替言語として開発されたもので、

ここでもおなじみVisual Studioでももちろん開発が可能である。

 

 

ということで、早速勉強してみようと思ってはみたが、

全く文献がない(特に日本語で)のが欠点かもしれない。

(いや、最近の開発は英語ができないともはや開発できないのかもしれない)

 

ある文献といっても2014年とかで完全に停滞とか

本当に大丈夫なのか?と不安もよぎるが、

 

まぁ、Google(Angular)もTypeScriptで開発を、今のところ、進めているので、

しばらくは大丈夫だろうと言うことで。

 

 

ただ、本当に文献が少なくて分からないのだが、

ゴリゴリ書いてみたところ、

これはVB(VBA)の感覚と似ているなと思ったので、

 

もし自分のようにWeb開発をしてみたいけれど、

VBなどのフォームアプリしか書いたことが無いという人が

これをきっかけにゴリゴリ書けるようになればいいなと

 

ちなみに、先日作ったみはるちゃん

すべてTypescriptで書いたものです。

 

 

■Visual StudioでTypeScriptを開発する

さて、前置きの前置きも長くなりましたが、

Visual Studioのどのプロジェクトで開発しようかということで、

TypeScriptを使用したHTMLアプリケーションでまずは書いてみることに

 

 

プロジェクトができたら、チューニング

ずいぶん前に書いた、デザインビューが表示されないという件と同じで、

HTMLファイルを普通に開くとタグをゴリゴリ書くソースモード(下)になってしまうので、
 

 

デザイナーモードを既定にしておくとよい(かも)

 

htmlファイルを右クリックして、ファイルを開くアプリケーションの選択

プログラムから開く の中からHTML(Webフォーム)エディターを選択

ついでに、既定値として設定しておいても良い。

 

 

これでフォームをデザインしながらソースをいじれるように

 

それと、ちょっと前に書いた、

デバッグができなくなる場合があるので、

設定を書き換える

 

 

今回はとりあえずここまで

 

 

追記

プロジェクトの作成ついでで、TypeScriptのコンパイラのバージョンを調べたいときは、

ヘルプメニュー→Visual Studioのバージョン情報

 

インストールされている製品の中から現在のコンパイラのバージョンが分かる。

 

 

ちなみに、SDKのインストール先は、

C:¥Program Files (x86)¥Microsoft SDKs¥TypeScript

¥は半角

 

に歴代のバージョンが並んでいて、

仮に、インストールされている古いバージョンでコンパイルしたいときは、手動で修正するしかないようだ

 

プロジェクトファイルをテキストエディタで開いて、

 

TypeScriptのバージョンをコンパイルしたいバージョンに変更する。

 

 

 

参考

Which Version of TypeScript is Installed and Which Version is Visual Studio Using?

 

 

関連記事

VB的に覚える TypeScript その1 〜 Visual Studio 2015

VB的に覚える TypeScript その2 〜 Visual Studio 2015

VB的に覚える TypeScript その3 〜 Visual Studio 2015

VB的に覚える TypeScript その4 〜 Visual Studio 2015

 

HTMLアプリのデバッグができない?〜VS2015 + HTMLアプリケーション

XAMLデザイナーのデザインビューが表示されない?〜Visual Studio 2015

 

NullをReplaceできるのか?〜VB2015

  • 2017.03.08 Wednesday
  • 21:57

 

Null文字("")を文字置換できるのか?

という質問をもらったので、試して見た。

 

つまり、第1引数に""を入れて、第2引数に置換するという感じ。

 

まず、なにも入っていない文字列を置換してみると

 


 

エラー

適当な文字を入れて見ても

 

 

同じエラー

つまり、Replaceの第1引数に Null ("") を入れることはできないようだ。

 

ちなみに、""文字を""以外で置換するのは

 

問題なさそう

 

話ついでに、Nothingを入れて見ると

 

 

違うエラーが出るので、事前に判別が必要だ

 

おまけ、当たり前だけれど、文字を""に置換することは可能

 

 

 

関連記事

Replace関数って・・・

 

HTMLアプリのデバッグができない?〜VS2015 + HTMLアプリケーション

  • 2017.02.07 Tuesday
  • 13:10

 

HTMLの開発はBracketsやAtomなどを使ってゴリゴリ書いているのだが、

 

VBをずっと使い続けている自分としてはVisual Studioで書きたい

 

Visual Studio Codeでも良いのだが、VS自体があるので、

あえてCodeを選択するのも今さらな

 

まぁ前置きはこのくらいにして、VSに入っているWeb系のプロジェクトはいろいろあるが、

 

ちょっとHTMLアプリケーションのプロジェクトで書いてデバッグしようとしたら・・・

 

Web.configファイルでデバッグが無効なため、

このページをデバッグモードで実行できません。

以下のオプションから選択してください。

 

デバッグ実行ができないよと警告

 

そして、ラジオボタンを選択してOKしても、

 

操作を完了できませんでした。

エラーを特定できません。

IIS Express Webサーバーを起動できません。

 

とか立て続けに警告

 

あれ、保存する前は起動できたのに・・・。

(プロジェクトを任意のフォルダに書き出す前はデバッグはできた)

 

Web.configには、debug="true"と書いてあるし、

ネットで調べてもdebug="true"を書くみたいな内容しか出てこない

 

とりあえずデバッグならプロパティの設定も見て見ようと探してみたところ、

どうやら、この辺を直すといいらしい。

 


 

プロジェクトのプロパティを開いて、Webタブを選択

 

ページを指定するにチェックを入れて、直接 index.html と打つか、ページを選択する

※index.htmlを選択した場合、テキストボックスが空になることがあります。

 

これで再度デバッグでようやくデバッグ起動できました。

 

ちなみに、登録しても上のエラーが出る場合は、一度プロジェクトを閉じて、

開き直すとうまくいいくようです。

 

 

関連記事

XAMLデザイナーのデザインビューが表示されない?〜Visual Studio 2015

 

 

ブレークポイントが突然現れる!?位置ズレ?

  • 2017.01.13 Friday
  • 06:25

 

プログラムをゴリゴリ書いて、早速デバッグ!

と思ったら、変なところでブレーク

 

 

!?

 

こんなところにブレークポイントを貼った覚えはないぞ???

 

デバッグを停止すると確かにブレークポイントはない

 

 

とりあえず、クリーンして、リビルド!

 

改善しない・・・

 

 

ネットで調べると、改行コードが混在しているとかで、解決できると書かれている記事もあったので、

調べてみたが、それらしい誤りはなさそう。

 

 

ムムム、お手上げ・・・か?

 

 

そういえば、ブレークポイントを貼り付けた一覧がどこかで見られるはず・・・

と調べてみると、ありました。

 

デバッグ→ウインドウ→ブレークポイント

 

 

この一覧からそれっぽいもの(該当しそうな行)をチェックを入れたり切ったりしながら調べてみる。

 

すると、該当する箇所がありました。

しかもダブルクリックすると、見つかりませんとか出る・・・。

 

ブレークポイントへ移動できません。指定されたパスが見つかりません。

 

 

チェックを外すとブレークが消えるので、明らかにここが原因であると言える。

 

要らないので削除してみたら・・・

 

 

ようやく解決できました。

 

 

ちなみに、今回の大きな原因は、

ファイル名を変更したことにあるようです(図中、ソースファイル名を小文字から大文字に変更)。

 

 

なお、DLLなどで正しく引っかからない場合は、

クリーン→リビルドでだいたいなおるはずです。

 

 

参考

ブレークポイントの使用

 

関連投稿

ブレークポイントは現在の設定ではヒットしません〜ソリューションのデバッグ

 

 

ReportViewが表示されない?〜Visual Studio 2015

  • 2016.08.26 Friday
  • 20:06

 

Visual Studio 2008からアップグレードしたプロジェクトをゴリゴリ修正して、

いよいよ終盤ということで、印刷機能を修正しようとしたら

 

ファイルアセンブリ Microsoft.ReportDesigner Version=9.0.0.0 〜〜〜 またはその依存関係の1つが読み込めませんでした。

見つかったアセンブリのマニフェスト定義はアセンブリに一致しません。

 

となってしまった。

 

参照を見ると、アップグレードしたプロジェクトは9.0.0.0のReportViewが使われており、

2015のReportViewは12.0.0.0なので、バージョンの不一致により正しく表示できないようである。

 

VS2008をアップグレードしたプロジェクト

 

プロジェクト上では12.0.0.0となっている

 

VS2015で新規に作った場合は12.0.0.0が参照されている


 

とりあえず、新規にプロジェクトの参照を確認しながらバージョンを変更してみることに

 

参照の追加から、参照マネージャーを開き、

アセンブリの拡張を選択、Microsoft.ReportViewerを探して、

バージョンの9.0.0.0はすべてチェックを外し、12.0.0.0にチェックを入れ、参照ボタンをクリックして

バージョンの入れ替えが完了するはず。

 

 

ちなみに、Commonというのはこのダイアログにはないので、

もし必要があれば、

 

C:¥Windows¥assembly¥GAC_MSIL¥Microsoft.ReportViewer.Common¥12.0.0.0__89845dcd8080cc91¥Microsoft.ReportViewer.Common.dll

※¥は半角

 

あたりを参照すれば良い

 

 

追記

さて、コンパイルも終わり、クライアントに導入しようとしたら・・・

ランタイムがないというエラーが

 

ああ、すっかり忘れていたということで、

Microsoft Report Viewer 2015 Runtime

を落としてきて入れようとするが・・・

 

 

Microsoft SYstem CLR Types for SQL Server 2014がないからインストールできないよ

という案内が・・・

しかも不親切にURLとかないし・・・。

 

仕方がないのでキーワードで検索したところ、どれを落とすの的な感じに・・・。

 

とりあえず、Microsoft® SQL Server® 2014 SP1 Feature Packと検索されているダウンロードページを開き

※SP1を適用しない場合は、SP1無しの方

 

ダウンロードボタンを押してみると、SQL関連のリストがズラズラと表示される。

 

 

その中から SQLSysClrTypes.msi というのを探し出す。

※OSが64bitならx64 32bitならx86のSQLSysClrTypes.msiにチェックを付ける。

 

ダウンロードしたインストーラのプロパティが「Microsoft SYstem CLR Types for SQL Server 2014」と書かれているので、

問題なさそうだ

 

 

あとは、このランタイムを入れて、ReportViewerランタイムを入れれば動作するはず。

 

あれ?登録できない〜VS2015

  • 2016.02.29 Monday
  • 18:59

自作プログラムを作って、他のパソコンに入れたのだが、
何度やってもタスクバーに登録できない。

何でだろうとグーグル先生に聞いたところ、
次の記事が見つかった。

Windows 7 でタスクバーにピンで留めれないプログラムの名前
Application that won’t Pin to Taskbar in Windows 7

なるほど、制限されている文字があるのか。
プログラム名を変えるか、タスクに止めるのを諦めるかである。


ちなみに、Win8以降のOSは登録できるようになっているので、
Win7とか以前の制限のようだ。
 

新規行に入力すると2行追加される?〜DataTableとAllowUserToAddRows

  • 2016.02.29 Monday
  • 12:51

しばらくぶりのDataGridViewな話題

これまでDataGridViewのプロパティにある、AllowUserToAddRowsをFalseにしていることが多かったので、
これまで気にもしなかったのですが、
(追加は別入力画面で入力→登録ボタンでDataTableにNewRowして追加)

たまたま作っているプログラムで新規追加をAllowUserToAddRowを利用してみることにしたのだが、

DataTableにNewRowしてAddすると・・・
 
newRow = dtTable.NewRow '新規行を作成
newRow(0I) = CObj("bbb"'データ書き込み
Call dtTable.Rows.Add(newRow) 'データテーブルに行を追加
 
DataGridView DataTable AllowUserToAddRows 2行追加されてしまう DataGridView DataTable AllowUserToAddRows 2行追加されてしまう

!?
追加した行に加えて謎の行出現

何となく、AllowUserToAddRowであらかじめ追加されている行とDataTableの行が一致していないために
追加と同時にDataTableでAddした行+AllowUserToAddRowの空欄行が追加されてしまうのではないかと想像される。

解決方法がないかと検索してみたところ、次の記事が見つかった。

DataGridView(バインド)の追加行のCell値をPGから設定した時、DataGridViewに行を追加する方法

これを参考にゴリゴリ書き直してみる
 
If e.RowIndex = Me.NewRowIndex Then '新規行に追加しようとしている
    Dim cmTable As CurrencyManager = BindingContext(dtTable) 'CurrencyManagerを取得
    Call cmTable.EndCurrentEdit() '編集を終了
End If
‌ 
DataGridView(0I, e.RowIndex).Value = "bbb" 'データを追加

これで、謎の行が追加されなくなりました。

関連投稿
DataGridViewのボタンにアイコンを付ける
DataGridView と DataTable と Combobox(コンボボックス)
DataViewのデータ(抽出結果)からDataTableの位置を検索
DataSource(DataTable)を検索する
DataGridViewの固定とエラー
DataGridViewの選択レコードからDataTableのレコードを見つける
DataGridViewが右揃えにならない?〜VB2008
DataViewの検索フィルタ〜VB2008
Comboboxは何を入れるのか?DataGridView編〜VB2008
 

アナライザーエラーって何ライザー?〜VS2015

  • 2016.01.24 Sunday
  • 23:28

VS2015を使い始めて気になるエラーがある。

AD0001 アナライザー 警告
 
AD0001    アナライザー
'Microsoft.CodeAnalysis.VisualBasic.CodeFixes.SimplifyTypeNames.
VisualBasicSimplifyTypeNamesDiagnosticAnalyzer' が
型 'System.ArgumentNullException' の例外をメッセージ '値を Null にすることはできません。
パラメーター名:source' 付きでスローしました。

ネットで調べてみてもこの警告がなんで起こるのかよく分からない

とりあえず、この記事をヒントに、

Visual Studio 2015 Analyzer threw an exception

一からソースを確認して見たところ(自分のソースではApplication.Designer.vbは関係なかった)、
私のソースの場合、PictureBoxを継承したクラスの処理にある、この部分に対しての警告であることが判明した。

アナライザー 警告

Me.Image = Nothingと書いた部分これをコメントアウトすると、
警告が全くなくなった。

もう一度戻すと再び警告復活!
最終的に、Me.と書いた部分に問題があることが分かった。

Image = Nothing ならOK
 
上は継承クラスでしたが、フォーム上にある、例えばPictureBoxに対しても同じエラーが出ます。

Me.PictureBox1.Image = Nothing 'エラーが出る
PictureBox1.Image = Nothing    'エラーがでない


VBAくらいから、自分がどこの誰という書き方をしてきたので、
(特に継承の場合は、MeなのかMyBaseなのか区別したいときなど)

VSのバージョンアップとともに、ちょっとした書き方の違いでアナライザが反応してしまったようだ。

特にVS2008からVS2015に更新し、ソースを書き換えているので、
古いソースをバージョンアップするとこのエラーがこれでもかと出てしまう。

ひー!


とりあえず、コンパイルもできそうだし、例えば上程度の書き方に対する
警告であれば、警告表示を消してしまいたい。


ということで、ソリューションの参照からアナライザーを右クリックして、
アクティブなルールセットを開くを選択

AD0001 アナライザー 警告

ルールセットの中から、例えば今回であればAD0001を探してチェックを外す

AD0001 アナライザー 警告

これで保存して、プロジェクトを再起動すればたぶん警告はなくなる。


この方法は、あくまで警告を出さなくする一時しのぎであるので、できればソースを見直して警告を潰していく方が良いと思う。


ちなみに、VB6までは、set hoge = nothing という書き方(オブジェクトを破棄する)が一般的だったが、
VB.netの世界ではNothingで初期化(破棄)すること自体があまり良い書き方とは言えないので、
(破棄する場合は、DisposeやClose、Clearなどの破棄メソッドでおこなう)
こういったNothing代入は極力控えたいところである。

そういった意味での警告であると受け取ってソースを変更した方が望ましいと思う。

参考
変数に Nothing をセットしてもリソースは解放できません
Nothing (Visual Basic)
第34回 値型と参照型
Nothingの代入は暗黙的な初期化と同じ


追記190126
■解決方法
ソースを見直すことで、解決できそうです。
特に自作のクラス等で初期値、または、初期化でNothingを入れているところがキーになります。
 
あるコントロールクラスに、例えば、
 
Public Property Test() As String()

見たいなプロパティを作って
フォームなどに貼り付けると、そのフォームのdesigner.vbにコントロールが自動生成され、
 
Me.HogehogeCtrl.Test = Nothing

というのも生成される。
これもこの警告の原因となるようだ。

デザイナーの中なので、コメントアウトしたとしても、例えば新たにコントロールを追加したりすると
初期化されてしまう場合がある。
デザイナーで初期化しない、つまり非表示にしてしまうには、

プロパティに、<DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)>を付けて非表示設定してあげれば良いようである。
 
<DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)>
Public Property Test As String()
   

上の場合は配列だったが、
 
Public Property Test() As String

というのも警告の対象で、上のようにDesignerSerializationVisibilityで初期化を回避しても良いし、
 
Public Property Test() As String = ""

とNothing以外で初期化してあげても良い。
とにかく警告の通りNothingによってThrowしているので、何かしら値を入れてあげれば解決できるようだ

プロジェクトを開いた段階では警告がなく、
ソースファイル(ドキュメント)を開いたら警告が表示された・・・、という場合は、
そのソース内に、不具合箇所があります。

なので、ドキュメントを全部閉じて、プロジェクトをいったん閉じ、
再度開き直して、一つずつソースを開いていくと、対象箇所の判別がしやすいです。
(開いても警告が出ないファイルは今回の問題には関係ない)

ちなみに、開いたとたんに警告が出る場合は、
スタートアップフォームに登録されているフォーム自身に対象があると考えられます。
 

 

ファイル直下のフォルダ名(パスではない)を知りたい〜VS2008

  • 2016.01.23 Saturday
  • 16:40

ファイルのパス(フルパス)を知りたいときは、
一番単純にGetDirectoryNameで取得できると思う。
 
Dim myPath As String = IO.Path.GetDirectoryName("C:¥aaa¥bbb¥ccc.txt")


では、ファイル直下のフォルダ名、上で言うところの bbb を取得したいときはどうしたらよいのか。
検索の仕方(キーワード)が悪いのか、出てこないので覚え書き。


例えば、上のmyPathをGetFileNameを使って
 
flParent = IO.Path.GetFileName(myPath)

という方法もあるのだが、あまりいいやり方とは言えない。

ファイルの情報を知りたいときに使うFileInfoを使う方がよい。
 
Dim fiFile As IO.FileInfo = New IO.FileInfo("C:¥aaa¥bbb¥ccc.txt")
Dim flParent As String = fiFile.Directory.Name

fiFileにファイル情報が展開され、その中に、DirectoryというDirectoryInfoクラスのプロパティが同時に作成される。

Directoryプロパティは、自分のフォルダの情報となるので、C:¥aaa¥bbb の情報が入る。

このプロパティのNameプロパティを呼び出してあげることで、
目的の自分直下のフォルダ、ここでは bbb を受け取ることができる。

ちなみに、ドライブ直下でやると、C:¥としてくれる。

同じようにフォルダの直下を知りたいなら、
IO.DirectoryInfo("C:¥aaa¥bbb") して、そのParentプロパティから aaa が取得できる。
なお、ドライブ直下の場合は、ParentはNothingとなる

 

XAMLデザイナーのデザインビューが表示されない?〜Visual Studio 2015

  • 2016.01.21 Thursday
  • 13:00

 

 

アップデートをかける前に、追記161214のエディタの既定値を確認してみてください。

 

 

もしこの方法で正しく開けない場合は、アップデートを行って見てください。

 

 

 

記事はここから>>>>>

 


ちょっとユニバーサルアプリに興味があって
VSでプロジェクトを作ってみたのだが、

確か、WPFをやったときは(VS2008ではあるが)、
デザインとコードのビュアーが分割されて表示さていたはずなのに、分割表示してくれない。

XAMLデザイナー 表示されない

オプション設定を見ても問題はなさそうだし、
XAMLデザイナー 表示されない

ネットで調べてもあまり良さそうな情報はなかったが、
とりあえず、設定のリセットをやってみろというのがあったので、やってみるが効果はなし

参考URL
XAMLデザイナが表示されない件とMicrosoft.VisualStudio.Xamlがロードできない件について


たぶんやらかしたといえば、VS2015のUpdate1を適用したくらいなのだが、
VS2015でXAML(UWP)は初めてなので、その前がどうだったかは不明。

いろいろ考えていたところ、ふとVSの左上のフラグに気づく
普段は無視しているのだが、何かヒントがあるかもと開いてみると、

既存OSのバージョン(Win10 1507)の上でVS2015をUpdate1にしたため、
デザイナーが表示されないのだよと注意書きが書かれていた。

XAMLデザイナー 表示されない

確かに、OSを1511にしていなかったので、アップデートして、

XAMLデザイナー 表示されない

再起動したら、

XAMLデザイナー 表示されない

XAMLのデザインが表示されるようになりました。

OSとVS2015のバージョンが一致していないと表示されないことがあるようです。

 

追記161214

すっかりこの操作を忘れていましたが、

 

対象のxamlファイルを右クリックして、ファイルを開くアプリケーションの選択をクリック

 

 

ダイアログの既定が、自動エディターセレクター(XML)になっているか確認。

もし、これで開いても表示されない場合は、XAMLデザイナーで開いてみて、再度確認。

 

もしデザイナーモードが正しく開けば、もう一度ダイアログを開いて、

正しく開いた項目を選択し、既定値として設定をクリックすれば、問題解決

 

もし、この方法でも開かなければ、上のようにアップデートを行ってみましょう。

 

 

calendar

S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  
<< August 2017 >>

search this site.

よく使う、検索される投稿

categories

アマゾン

楽天

selected entries

archives

recent comment

recent trackback

profile


※当ブログはリンクフリーですが、 取材や雑誌等で掲載される場合は、事前にお知らせください

others

mobile

qrcode

powered

無料ブログ作成サービス JUGEM