misc.log

日常茶飯事とお仕事と

プログラミング

Serialize/Deserialize失敗が稀に発生

設定情報をクラス化して、Serialize、Deserializeを使ってXMLファイルに記録、読み込みしているのだが、ソースを軽くいじったり、また、設定情報じゃない部分をちょっといじっただけで、ビルド後のアセンブリが「シリアライズ失敗」というエラーを出すことが…

文字列→日付型への変換

文字列として表記された日付情報を、データベース上の日付フィールドと照合する必要があるため、方法を模索。すると、意外や意外... [イミディエイトウィンドウでの実験] ?cdate("2005/01/02") #1/2/2005# ?cdate("2005/02/02") #2/2/2005# ?cdate("20050202…

VB.NETでのLTrim、RTrim

忘れないようにメモ。VB.NETで、VB6.0にあった「LTrim」(先頭の空白を除去)、「RTrim」(末尾の空白を除去)を行う場合、String型が持つTrimStartおよびTrimEndメソッドが使える。以下のような感じ。 Dim Result as String Dim Source as String = " ABC "…

イメージビューワ作成(ほぼ完成?)

特定の条件に基づくイベントを受け、定義テーブルに設定された検索条件にマッチするイメージを表示するアプリケーションほぼ完成。イメージストレージとしては、自社製品のイメージ管理システムと、SQL Serverに対応することになっているが、SQL Serverへの…

ShowDialogでフォームが勝手に...

ShowDialogで表示したログイン画面、キャンセルを押された際にメッセージボックスで「本当にキャンセルする?」という質問を出し、「いいえ」なら抜けずにそのままログイン画面を表示し続ける、というロジックを書いたつもりだった。が、うまくいかない。 キ…

別スレッドから親スレッドのコントロールをいじる

別スレッドで動くC++.NETで作成したライブラリから発生するイベントを受けて、自作ビューワコントロールに「タブを追加して複数のイメージを各タブに表示」という処理を行うと、下記のエラーが発生した。 System.ArgumentExceptionのハンドルされていない例…

読み込んだイメージがロックされる

発生するだろうな、とは思っていたが、やはり。ImageオブジェクトにFromFileを使ってイメージを取り込むと、何も考えずに元のファイルを読もうとしたときに「別のプロセスが使用中」とのエラーが出て削除できない。おそらく、 ファイルを閉じる ファイルスト…

次のエラー

こんなのが出た。 'System.Runtime.InteropServices.InvalidComObjectException' のハンドルされていない例外が HASL_Viewer.exe で発生しました。 基になる RCW から分割された COM オブジェクトを使うことはできません。現象はまだ特定できていないが、COM…

COMコンポーネントの利用がうまくいかない

VB6以前のライブラリを使うアプリを開発中。だが、処理がうまくいかない。問題のコンポーネントにデータベースからのデータ取得を依頼し、取得した結果を取り出したり戻したりするところで、 ’System.Runtime.InteropServices.COMException’; のハンドルされ…

Sortメソッドを使えるオブジェクト(IComparableの実装)

自分で作ったクラスを、簡単に並べ替える必要があったので、IComparableをインプリメントしてArrayListやArrayオブジェクトのSortメソッドを適用可能にする方法を調べる。 '比較されるデータを実現するクラス Public Class EachObj Implements IComparable '…

ウィンドウの点滅を制御する

背後に回ってしまったプログラムのウィンドウ(タスクバーのボタンと、ウィンドウのタイトルバー)が点滅するというのは、Windowsが持っている機能の1つだ。これについて、顧客から「点滅を何とかできないか」という問い合わせが。今は別のもっと重たい問題…

VB6のエラー処理から呼んだ処理でエラー

いつも忘れてサンプルを作ってしまうので備忘録。 VB6.0で、エラートラップ処理の中から呼んだ関数内のエラートラップ、どうなるんだっけ?と思って試行。 'エラーを起こして、エラー処理からさらにエラーが出る処理を呼ぶ Private Sub Command1_Click() On …

COMのバグ?

顧客より、先日発生した原因不明の問題に対して埋め込んだログ機能が活きて、ログが出力されたとのメール。内容を確認したところ、以下のような記録が。 '~' メソッドは失敗しました: '~' オブジェクト 問題が発生したと思われる関数内に仕掛けておいたError…

文字列操作の速度比較

XMLの設定ファイルを読む共通モジュールを作るうえで、XPath文字列の作成に、既存コード(別の開発者が作ったもの)では「配列で渡された各タグを、スラッシュで連結する」という方式を採っていた。さらに、その中でFor Each〜In〜 を使ったループと文字列連…

DataGridを編集禁止に

DataGridを編集禁止にする方法については、 http://www.atmarkit.co.jp/fdotnet/dotnettips/108dgallownew/dgallownew.html に情報があったので適用してみた。問題ないようだ。ソースは下記のとおり。 'メイングリッドのデータソースを設定 'MainGrid.DataSo…

DataGridとCurrencyManager

DataGrid上での選択位置切り替えに応じてCurrencyManagerで管理されたコントロールの状態を切り替えるには、CurrentCellChangedイベントの処理内で、CurrencyManagerのPositionプロパティを下記のように変更する。 'CurrencyManagerの選択位置を変更する Cur…

コンボボックスのデータバインド

下記のような状況でのデータバインドについて(参考文献: ドットネットマガジン、2003年2月号)。 メインテーブルの内容をデータグリッドに表示 メインテーブルの1項目の選択肢をコンボボックスに 選択肢の内容は、IDで連携する別テーブルに記述されている …