2007/06 |
2007/07
|
2007/08
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2007/06 |
2007/07
|
2007/08
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
あまりに湿度が高かって、耐え切れずに昨夜は除湿モードで夜を過ごす。
雨が降るんか、降らんのかはっきりせん天気やったもんで、録り溜めた番組を消化。
その間に扇風機を組み立て、夏対策完了。今年も、できるだけエアコンなしで参ります。
投稿者 ただ : 19:03 | トラックバック (0) カテゴリー ; mein Erbe
ベンダー独自技術への依存が引き起こす問題---経産省が「相互運用性フレームワーク」を正式公開(ref. ITPro)
出ましたね。前に公開されたときにも書きましたが。
「情報システムに係る相互運用性フレームワーク」の公表について(ref. 経産省)
前の記事にトラバが来たけど、これが問題の記事か。
NHK、どこをどう読み間違えてこんな報道したんやろう。インタビューしたにしても、公表された資料をちゃんと確認していれば誤報道なんかにはならんかったやろうに。いや、MSのソフトは出ていないにしても、別の有名ワープロソフトメーカーの話は出てるんですよ、これ。
『中立性確保のための記述例』として、
機能による記述
日本語文書処理が可能なワードプロセッサソフトウェアで、罫線機能を持つもの。機能による記述と特記事項
以下のi.~ii.の何れかを提供すること
i. 一太郎9 で作成された文書ファイルの読み込み、編集及び書き出しの機能を持ち、罫線機能を持つ日本語ワードプロセッサソフトウェア。
ii. 一太郎9 で作成された文書ファイルを直接読み込む機能を持たない日本語ワードプロセッサソフトウェアと、一太郎9 で作成された文書を、当該ソフトウェアが読み込めるフォーマットに変換するユーティリ
ティーソフトウェア等、一太郎9 で作成された文書ファイルを当該ソフトウェアに読み込ませるための手段との組合せ。オープンな標準の参照
OASIS 公開文書形式標準に準拠した文書の読み込み、編集、印刷及び書き出しが可能な日本語ワードプロセッサソフトウェア。
しっかし、WWWブラウザを、
W3C HTML 標準、ECMA スクリプト規格に規定された機能を用いて作成されたWeb コンテンツの表示及びフォームを通じての入力が可能なWeb ブラウザソフトウェア。JPEG規格及びGIF 標準フォーマットの画像データの表示機能を持つこと。通信プロトコルとして、HTTP 標準、HTTPover TLS 標準及びFTP 標準が利用できること。
こんな風に書かれても、具体的に何が使えるのか分からん。IEバージョンいくつ以降、Netscapeバージョンいくつ以降、Safariバージョンいくつ以降、CSS2.0に対応していること、とか書いてくれる方がよっぽど分かりやすいと思うが。要はIEでのみ動く、とかそんなブラウザ依存の技術を使わなければいいだけの話なんやから。
第3回 トラブルシューターは一匹狼 有害な“正論”を盲信するな(ref. ITPro)
「トラブルシューター」という役回りの人の話ですけどね。上の2点は『有害』指定らしいです。システムの守護神となった人は、自分が最後の砦という意識でトラブルをリカバーしなければならなず、しかも他人に容易く自分の技術を提供することを避ける(ことで自らの地位を保全する)必要があるからと。
この境地に達せるのはいつのことか。
「2011年の市場規模は7520億円」---経産省が“Web 2.0”の調査報告書を公開 (ref. ITPro)
もう1つ、最後に気になる記事。
投稿者 ただ : 22:55 | トラックバック (0) カテゴリー ; mein Erbe , 仕事関係
あるのかもしれないけど、今んところどうしようもないってんで『見当たら』ないにしてみた。
盲目的に信じているがゆえに、自分の誤りを認めない、いや理解できない画。
どうしたもんやろう…試用期間が終わった新人。問題は一向に快方に向かわず。それどころか、せっかく良くなる方向に向かっていそうな気がしたのに逆戻りの傾向さえも見られる。
研修終われない。なんで塾みたいなことしてんだろ。
そんな疑問が沸々と。
返信するときに人の書いてる内容勝手に書き換えるわ、本筋の内容に触れない返信をしたらそれを『本筋から外そうとしてる』と勝手に解釈するわ、無論本筋に触れる以前の問題点を指摘してることに気が付いてないわ、メールの内容に疑問を感じても真意を問おうとしないで勝手に解釈した上で人の非難をするわ、挙句に、問い質したら自己を正当化する内容だけを話して歩み寄ろうとしない。聞くのに疲れて「そう、わかった」で締めたった。分からんけど。
上長にCC入れといてよかった。明日にでも相談しよう。
前に書いた仮説(Erbe07.06.15)のうち、
"!"で始まる項が真であると実証できた。約半月経ったけど、それらについて改善の兆しも見えない。
投稿者 ただ : 23:45 | トラックバック (0) カテゴリー ; mein Erbe , 仕事関係
SaaSモデルはなぜ儲からないか?(ref. ITmedia オルタナティブ・ブログ)
結構前の記事やけど。最近いろいろなところが手を出し始めているSaaS(Software as a service)が儲からないビジネスモデルだ、という話があった。
いや、前期の数字ですが、売上高に占める開発費の比率は9%と新興企業にしては低いぐらいです。一方で、販管費の比率は76%にも達しており、粗利の75%を上回ってしまっています。
販管費が76%ってどんなけ広告に使ってるんやろ…知名度が命、という点は否定できないけども…。Googleとかも、ウェブアプリケーション(オフィスソフト)の無料公開してるし、有料サービスで戦える土台って、意外と狭くなってくるんちゃうかなぁなんて思ったりもするのですが、これからこの領域のサービスってのはアイデア勝負になってくるんやろうねぇ。
実証した仮説と共に上長にぶっちゃけた内容。話をする前から、理解はして貰えていた様子でよかった(CC入れてて)。
なんか、ここまで書くとなんですが、SEとしての素質が欠落している、としか思えん。特に昨日の文の、
メールの内容に疑問を感じても真意を問おうとしないで勝手に解釈した上で人の非難をするわ、挙句に、問い質したら自己を正当化する内容だけを話して歩み寄ろうとしない。
曖昧な要求を具現化して、文章と図絵にまとめて形にする(そして必要があれば提案する)のが仕事なのに、こんなこと客に向かってされたらと思うと…オソロシヤ。
『裸の王様にはならんようにし』…誰かの言葉を思い出す。
中越典子カワイイ、と思った(ぷっすま見て)。
投稿者 ただ : 22:43 | トラックバック (0) カテゴリー ; mein Erbe , 仕事関係
最近あんまりやってなかったけど。
ピロリ菌の祖先が深海の微生物、というのもまたおもしろい発見やね。海底火山の噴火とかで地表に出てきたのが、他の細菌と混ざったんやろうか。
アステラス製薬と京大、免疫分野の新薬を共同開発(ref. NIKKEI)
アステラスもなかなか思い切ったことを。
投稿者 ただ : 03:41 | トラックバック (0) カテゴリー ; 仕事関係 , News , News
システムの要求仕様書を適切に作成するためのガイドライン,JUASが公開(ref. ITPro)
ほぉ、これはなかなか。いい試みですね。要求仕様書の構成要素を、
の大きく3つに分けています。1つめの「狭義の要求仕様書」をさらに『上位の要求』『下位の要求』の2つに分け、それらが発生する理由をはっきり(明記)させ、そして、その要求を満たす仕様を書く。要求・理由・仕様の3つは、Excelのファイルで管理される形にするようです。キモはこの1つめの狭義の要求仕様書の策定にあるよう。
なかなか良さそう。
要求定義ガイドライン2007(ref. JUAS出版)
要求仕様書のガイドラインをJUASが公開(ref. あるSEのつぶやき)にも、書かれていますね。
投稿者 ただ : 23:23 | トラックバック (0) カテゴリー ; 仕事関係 , News , News
「やってみせ、言って聞かせて、させてみせ、ほめてやらねば、人は動かじ」
という言葉があるので、要約のサンプルを作ることに。ていうか、サンプルを作るには相手の選んだ記事に合わせる必要がある(でないと比較できない)んで、自分で好きな記事を選べない。これは結構キツイ。
パターンを覚えたところで、肝心な解釈と作文ができないんじゃ、あんまりなぁ…とも思うんですが。どんなシステム(制度)でも、ハードウェアをしっかり作ったところで、ソフトウェアがダメなら価値半減以下なんですよ。…てことをね。
不信解消へ与野党は最善の策を競え(7/6)(ref. NIKKEI)
…これを選ぶところがまたチャレンジャーというか、なんで意味段落が分かりやすいのを選ばないのか、そこが疑問。3時間ぐらい段落区切るのに悩んだで、これ(小見出しが意味段落無関係に段落ぶった切るし)。
投稿者 ただ : 23:10 | トラックバック (0) カテゴリー ; mein Erbe , 仕事関係
先日行きそびれた浜松旅行の、お土産をもらいに、ボーリング。
指摘されるまで分からんかったが、デフォルトで梅田、現地集合となっていたため、『どこに集まればええん』という質問は有り得なかった。07.07.07なので、ラッキー7とか懐かしいイベントやってるかと思ったけど、そんなのはなかった。
うなぎパイはボロボロに崩れていた。悲しいかな。
同じ辞めるなら、有休が出たあとに有休を消化して辞められるように、計画しましょう。
投稿者 ただ : 21:37 | トラックバック (0) カテゴリー ; mein Erbe , お出かけ
±0円
今週の信用取引結果。
±0円
今週のFX結果。
☆信用取引の詳細
なし
特になし。
★FXのいいわけ
【デイトレ口座版】 - (2007年通算)無。
7/2 - 7/6 取引なし
【通常口座版】
[AUD/USD 258.04(249.00+9.04)USD](保有中)
[AUD/JPY 12,723(11,800+923)USD]
[NZD/USD -516.16(-494.00-22.16)USD]
[NZD/JPY 54,261(49,000+5,261)USD]
[ZAR/JPY 27,001(23,800+3,201)USD]
より円安になってゆく。もうそろそろか? 逆回転。
投稿者 ただ : 21:48 | トラックバック (0) カテゴリー ; 投資 , 投資
最近、起きても全然すっきりしないんよね…疲れが取れない、っていうどころじゃなくて逆に体が痛いというか。
で、ついに今日は午前半休。
上長に、『大丈夫か?』と問われ、『朝が弱いってわけじゃないんですけどね…』と答えると、
『30前に来るって言うけど、結構来るらしいよ』
と。え、それですか!? いや…否定するにも根拠ないしな…
『心しときます』
と意気込みだけは表明しといた。
投稿者 ただ : 21:28 | トラックバック (0) カテゴリー ; mein Erbe
「見せる書類」のテクニック<第4回>(ref. NBOnline)
『食事バランスガイド』、CMでよくやってたんで、厚生省にしてはなかなか面白い(なじみやすい)と思ってたけど…やっぱりこんなところにも立役者がいてましたね。やけに米飯を主張してたのが気になってたけど、農水省も絡んでた(というかこっちがメイン?)のか。
See also,
栄養バランスで朝の集中力(ref. YOMIURI Online)
食事バランスガイド(ref. 農水省)
各地の食事バランスガイド(和泉市版)
投稿者 ただ : 21:37 | トラックバック (0) カテゴリー ; mein Erbe
端末はほとんど寝ている?(ref. ITPro)
2時間のうち、ケータイは1秒しか起きていない、という話。
ずっと電波を受信しようとしている状態を保とう(起きていよう)とすると、電池がいくらあっても足りないから、数秒間のうち0.3ミリ秒しか電波を受信しないようにしているのね。ずーっと薄目を開けてイベントが起こるのを待っているより、いつでも飛び起きられるように仮眠状態で眠りを浅くして、一定間隔で起きる方が、エネルギーの効率からいうといいということか。
面白い工夫があってこその文明の利器なんやね。
投稿者 ただ : 23:28 | トラックバック (0) カテゴリー ; News , News
阪急がJR新大阪駅北口に再開発ビル(ref. asahi.com)
Google Mapsによる表示を見ると、阪急新大阪駅の予定地(御堂筋線のホーム上にある土台)が垣間見れたりする。「新大阪阪急ビル」(仮称)は、この、阪急新大阪駅の線路(予定)上にできるような気がするんやけど…??
投稿者 ただ : 23:55 | トラックバック (0) カテゴリー ; News , News
マイクロソフト、医療情報システムの標準化呼び掛け(ref. NIKKEI)
日経で発見した記事。もちろん、別のところでも。
「医療ITに本腰を入れる」、マイクロソフトが医療向けIT協議会を設立(ref. ITPro)
ついにマイクロソフトが動き出したか…という感じですな。富士通・日立に呼びかけをしてコンソーシアムを作るところまでいっているのがすごい。しかもこのコンソーシアムには済生会熊本病院、杏林大学医学部付属病院、国立成育医療センター、聖路加国際病院、等々結構大きなところが絡んでるところに、組織の大きさが窺える。NTTデータはどう出るんやろうか。
データの互換性がほとんどない現状を、打開できるのはやはり大きな組織でないと難しいと思う。フレームワークを策定して共通の基盤を確立することで、基本的なシステム部分に関しては手間をかけずに作り上げることが可能になる。その上で、サービス(付加価値)により注力したシステムの構築が行いやすくなるであろう、という予想ができるので僕は大賛成。データの匿名化提供までちゃんと仕様の取り決めをやって欲しいところ。もちろん、システム構築費が下がって、診療費の抑制につながるのであればもっといいわけやけど。新聞には、医療費の抑制まで書いてあるけど、MSのプレスにはそこまで触れられてない。
医療現場におけるIT利活用の推進を目指し、協議会を設立、およびIT体験プログラムを展開(ref. Microsoft)
医療情報システムをオープンソースソフトで構築することの研究会みたいなものも(学会主導で?)行われているみたいですが…(PostgreSQLユーザー会が協力しているのが特徴かも)。ちょうど今週末にセミナーが。
第7回医療オープンソースソフトウェア協議会セミナー(ref. 医療オープンソースソフトウェア協議会)
ちなみに、その中に
ベンダのSEに聞くと......
「SSL って、何ですか?」
「XSS って、何ですか?」
「SQL いんじぇくしょん って、何ですか?」ウェブ・セキュリティの「イロハ」も「ホヘト」も知らなさ杉
それは、ケチって小さい企業に発注しようとしてるからでは…? ていうか、みんながそんなんだと思われたくない。
投稿者 ただ : 23:21 | トラックバック (0) カテゴリー ; 仕事関係 , News , News
マッシュアップがもたらすシステムの破壊と創造(ref. ITPro)
電子化が進むに連れてシステムは大きくなり、肥大化したシステムの開発に起因する開発の遅れ、テストの遅れ、納期の遅れ、そして不具合の頻発…それらを分散させるべく浸透してきたのが、システムの構造化とコンポーネント化になるわけですが。ようやく、その動きも『相互運用フレームワーク』という形であらかた定着を見たと思えます。1つのシステムをスクラップアンドビルドする世界から、機能分散をさせて、相互にコンポーネント化されたシステムを呼び出すことで、全体のシステムとして見せる、そんな世界がようやく主流になれる時期が来たと言えましょう。
コンポーネントを作ることは、これまで自社で1つのシステムを作る、という意識があったために弱かったと思いますが、今後、こういった機能を分散したシステムを中心に作っていくことが主流になっていくのであれば、上記記事にあるような、マッシュアップがどれだけ迅速にできるか、そしてそのネタを見つけるかというところが重要になってくるのではないでしょうか…。複数の企業が部分部分の機能を担当してシステムを作るとなれば、その接点は自ずとネットワークになるわけで、使われるプロトコルとしては、手軽に使えるTCP/IP、とりわけXMLになるだろうし、WebAPIで使われるSOAPにすれば、パラメーターの仕様さえ決めておけばいいだけ、複雑なプロトコルの策定から考えて余計な経費(予算)を使わなくても済む(これは開発側にとっても余計な開発費を抑えることができる点で便利)。
そして、その機能はSaaSとして提供可能なものであれば、もちろん、公開していくことで生活が便利になる&さらなるマッシュアップ開発者による機能アップも望める。と。
投稿者 ただ : 01:30 | トラックバック (0) カテゴリー ; mein Erbe , 仕事関係
広島の運賃ICカード、「パスピー」に(ref. asahi.com)
広島にもフェアライドICカードシステムができるのか。どうせならPiTaPaと共通とか、そんなんにしてくれてるほうが嬉しいんやけど…。読み取り機だけを着脱式にして設置するんやろうかね、市電に付けるのなんてそうでもせんとできんやろうし。
投稿者 ただ : 23:14 | トラックバック (0) カテゴリー ; News , News
また某O大学に行ってきた。
ようやく仕事がひと段落。
そんでもって、いつものように研究室に寄って駄弁る。そして帰宅。実験から遠ざかってしまっているので、もうそんな話できなくなってるけど。
経費削減の煽りでキットや消耗品の購入中止と代替法の利用をするらしいけど、二酸化炭素排出削減と同じで、代替手法を利用した際の経費の計上と作業時間の増加分はちゃんと計算に含まれているのか疑問…。動物扱ったり顕微鏡扱うから、温度と湿度を一定に保つ必要があるんで空調費の削減は厳しいとしても…。
モノレールから帰るのに、駅に行ったら、駅が終点じゃなくなってた。知ってはいたけど。千中までの直通便があるのは良い。
投稿者 ただ : 23:23 | トラックバック (0) カテゴリー ; mein Erbe
Open XMLとOpenDocumentの双方向変換ツール
MSが世界標準化を進めるOpen XML、OpenOfficeで読めるようになるんやね。こうなると、もうMS製品って結構立ち位置微妙になるんかなぁ…。それともAdobeのPDFのように、ツールとして正統路線を保っていられるのだろうか。
tracで結構できるもんなんやね。
健康診断でした。
最後の診察で、『体調悪いみたいなんですよー』と訴えてみた。
『大丈夫でしょう』と取り合ってもらえなかった。
金を払わない人の相手はしないということなんでしょうか。
少なくとも、対応からして検査値に異常はないということでしょう。
投稿者 ただ : 18:47 | トラックバック (0) カテゴリー ; 仕事関係 , News , News
2週連続のボーリング。
台風がもうすぐそこに来そうやのに。言うても、大阪は普通に雨風はまだ弱かった…。傘を持っていったけど、結局地下通ったりして、傘をさすことは避けられ、また外を歩くときには風が弱まって痛んで風に煽られることもなく。
投稿者 ただ : 19:39 | トラックバック (0) カテゴリー ; mein Erbe , お出かけ
さっき、NHKのCMでパフュームが…と思って検索してみた。
エコ(NHK×AC)=パフューム(ref. 桃猫温泉三昧)
動画もあった。
公共広告機構「だからはじめよ、エコ。」(ref. CMまとめ)
http://www.youtube.com/watch?v=iXKmUdgcYMY
9月に新曲として出るのか…。いやしかし。Perfumeまだちゃんと活動していたのね。
ACがこの手のCMを増産しだしたのも、同系列のAKB48(ref. みっちぃ氏んとこ)が好評やったからかな。今回のも(?)、NHKらしくも、ACらしくもない。
投稿者 ただ : 00:57 | トラックバック (0) カテゴリー ; mein Erbe
±0円
今週の信用取引結果。
±0円
今週のFX結果。
☆信用取引の詳細
なし
日経平均頭重そうやな…。
★FXのいいわけ
【デイトレ口座版】 - (2007年通算)無。
7/9 - 7/13 取引なし
【通常口座版】
[AUD/USD 387.22(377.00+10.22)USD](保有中)
[AUD/JPY 17,126(15,100+2,026)USD]
[NZD/USD -560.46(-534.00-26.46)USD]
[NZD/JPY 49,390(42,800+6,590)USD]
[ZAR/JPY 24,061(19,800+4,261)USD]
逆回転がきたものの、同じ週に戻した。いや、戻した勢いをそのままに、より円安にいきそう…。
投稿者 ただ : 14:38 | トラックバック (0) カテゴリー ; 投資 , 投資
台風が南に逸れ、そのまま過ぎ去って朝から雨も降ってなくてよかった。というのも、祇園祭に行く予定があったもんで…。集合時間が正午から15時に変更になっていたものの、別に変更する必要は結果的にはなかったねぇ…。
まぁ、食器の始末ができたので良しとしまして。
長刀鉾。
祇園祭に行ったメンツがみんな初祇園祭やったんで、手探り的であんまり楽しむ、という雰囲気ではなかったな…。いやでもいい経験にはなった。人ごみもまだマシなようやったし。写真の四条通、奥の信号が全部青(!)。
投稿者 ただ : 21:36 | トラックバック (0) カテゴリー ; mein Erbe , お出かけ
よく揺れた日だ。
この日だけで、中越沖、奈良、十勝(京都府沖)…。大雨が降った後だけに怖い上に、そのまま日本が割れていきそうな感覚にも陥りそう(んなわけないのは解っているが)。
若カマキリ、ナイスショット。
投稿者 ただ : 23:55 | トラックバック (0) カテゴリー ; mein Erbe
『記録的短時間大雨情報』 がテロップで流れてるところなんて初めて見た。気がする。
I'd be Interested in~(ref. NBOnline)
「~したいのですが」、「~させていただきたいのですが」という意味合いの英語なんだってさ。で、そこにあったコラム、
リスクのある表現 『I want to~』
wantをwantedと過去形にするだけで、相手への気配りが感じられる柔らかい表現に変わる
あぁ…。なる。
~でよろしかったですか?
というのはここから来てるのか?
新人が書いた出張報告、リビジョン7くらいまで行った。うち3回、リニューアル。メジャーバージョンアップ1回とSP2回…。Tさんが、僕が書いたのを見て僕が出張行ってきたみたいや、と…これって一体。
投稿者 ただ : 23:11 | トラックバック (0) カテゴリー ; mein Erbe
ネプ理科(関東より1時間遅れ)見てたんやけど、体重が270Kgの目黒君っていう人がいてて…大量に食べてるのに、腸年齢が実年齢より若いらしく、便を採って菌を増やしてみたら、世界で初めて人の腸での新種の菌がDNA検査で見つかったらしい。
この菌の解析とかめちゃ面白そう。無菌マウスに入れてみるらしいけど。ゲノム解析だけでもペーパーになると思うんやけどなぁ。機能解析までして結果が出ればNatureやろうね。(『やらせ』でないことが前提)
投稿者 ただ : 21:46 | トラックバック (0) カテゴリー ; mein Erbe , 仕事関係
PropertyGridの値欄は、そのままSelectedObjectにオブジェクトを代入すると、デフォルトの設定が使われる。なもんで、コンボボックスを表示したり、ダイアログを表示したり動作を変更したいなぁ…と思ってたんやけど、ようやく思い切ってやってみることに。
最初に、PropertyGrid関連で操作したいと思って検索をすると出てくるところがここ。
説明としては、一番ここが集約されているところなわけやけど、大雑把過ぎてよく分からん。これが取っつき難い原因。次の記事から実際のコードを書いてみることにしたい。
その前に、@ITにある、PropertyGridコントロールTips一覧。DOBON.NETさんとこにも情報は集約されている。
プロパティ名(左側)のテキストが、普通はオブジェクトのプロパティ名そのまま(英語とか)なのを、PropertyDescriptorをいじって日本語にしたりする方法も書いてある。
投稿者 ただ : 23:21 | トラックバック (0) カテゴリー ; プログラミング単語帳 , リンク , プログラミング
PropertyGrid.SelectedObjectにあるオブジェクトを入れると、そのオブジェクトのPublic Property...で宣言されたプロパティが表示される。
とまあ、簡単に分かる属性はさておき。
ここでは、あるクラスSampleClassを、PropertyGridでプロパティを編集するクラスとして、利用する。このSampleClassに、いろいろプロパティを宣言して遊ぶ。
Class SampleClass
End Class
この状態で、 PropertyGrid1.SelectedObject = New SampleClass としても、何も表示されないのは当然。この状態から、プロパティを追加する。
<DefaultValue(...)> もしくは、ShouldSerialize...メソッドを使うことで既定値を設定すると、既定値のときは太字にならない。『常に太字にならない』ようにするには、DefaultValueAttributeをいちいち操作することよりも、ShouldSerialize...メソッドを使った方が遥かに簡単。
Private _dat As String
Public Property SampleData1() As String
Get
Return _dat
End Get
Set(ByVal value As String)
_dat = value
End Set
End PropertyPrivate Function ShouldSerializeSampleData1() As Boolean
Return False
End Function
もちろん、シリアライズされなくなるのでシリアライズが必要な場合には適当な条件分岐が必要。
<Category("categoryName")> でカテゴリを指定できるけれども、カテゴリ名を多言語化する必要がある場合、CategoryAttributeから派生させたLocCategoryAttributeといったクラスを宣言し、GetLocalizedString()をオーバーライドする。
Public Class LocCategoryAttribute
Inherits System.ComponentModel.CategoryAttributePublic Sub New(ByVal category As String)
MyBase.New(category)
End SubProtected Overrides Function GetLocalizedString(ByVal value As String) As String
Dim resman As Resources.ResourceManager = New Resources.ResourceManager("MyRes", Me.GetType.Assembly)
Dim res = resman.GetString(value)
If IsNothing(res) Then res = MyBase.GetLocalizedString(value)
Return res
End FunctionEnd Class
プロパティの説明は、<Description("...")> でできると簡単に分かるんやけど、これが多言語化となるとCategoryのようなオーバーライドする関数がないからどうすればいいのか困る。けど、やり方としては同じ。DescriptionAttributeを派生させて、Descriptionプロパティをオーバーライドする。
Public Class LocDescriptionAttribute
Inherits System.ComponentModel.DescriptionAttributePublic Sub New(ByVal description As String)
MyBase.New(description)
End SubPublic Overrides ReadOnly Property Description() As String
Get
' Localizing process will be written hereReturn MyBase.Description
End Get
End PropertyEnd Class
同様の解説が、コンポーネント開発者のための Tips その2(ref. 失われたアークを求めて)にもある。
投稿者 ただ : 03:14 | トラックバック (0) カテゴリー ; さんぷるライブラリー , PinMarch Samples , VB, VB .net , プログラミング単語帳 , リンク , プログラミング
PropertyGridをカスタマイズしたい、そんな貴方に送るヒント集。
今回はこの3つについて。またネタができたら追加するということで。
一番よくある「やりたいこと」だと思うんですが。この、一番単純そうなカスタマイズでさえも、別に派生クラスを定義してやらなければならないというのが、ハードル高いと思わせる原因だと思われ。めんどくさそう。
<TypeConverter(GetType(MyPropertyValueListConverter))> _
Public Property TextValue() As String
GetEnd Get
Set(ByVal Value As String)End Set
End Property<Security.Permissions.PermissionSet(Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
Friend Class MyPropertyValueListConverter
Inherits StringConverterPublic Overloads Overrides Function GetStandardValues(ByVal context As System.ComponentModel.ITypeDescriptorContext) As System.ComponentModel.TypeConverter.StandardValuesCollection
Dim arr As New ArrayList' you can use "context.Instance" to get the owner object including this property.
Return New StandardValuesCollection(arr)
End FunctionPublic Overloads Overrides Function GetStandardValuesSupported(ByVal context As System.ComponentModel.ITypeDescriptorContext) As Boolean
Return True
End Function
End Class
1つのTypeConverterにまとめておけるように、TypeConverterAttributeから派生クラスを作って、その中に必要なConverterを全部入れてしまう、というのもなくはないと思うけど…やっぱりめんどいことには変わりない。
なお、よくサンプルに出ているのはクラスに対してTypeConverterAttributeを指定して、GetStandardValues()メソッド中でcontext.PropertyDescriptorを使って分岐して各プロパティに対応した値の配列を返す方法。そっちの方がTypeConverterをたくさん作らなくていいけど、その分TypeConverterの中身が大きくなる。
Windows.Forms.Design.FileNameEditorを使うと、ファイルを選択するコモンダイアログを表示し、選択されたファイルを自動的に設定することができるようになる。ただし、Windows.Forms.Design名前空間を呼び出すために、System.Design.dllを参照する必要がある。
Private _filename As String
<EditorAttribute(GetType(System.Windows.Forms.Design.FileNameEditor), GetType(System.Drawing.Design.UITypeEditor))> _
Public Property testFilename() As String
Get
Return _filename
End Get
Set(ByVal Value As String)
_filename = Value
End Set
End Property
FileNameEditorクラスを派生させて、InitializeDialog()メソッドをオーバーライドすることで、ダイアログの設定を変更することも可能。また、ファイル選択ダイアログのほかにも、フォルダを選択するダイアログを表示するFolderNameEditorクラスもある。ちなみに、FolderNameEditorクラスと同等のクラスを作るとすれば、下のようになる(IWindowsFormsEditorServiceのサンプルを改変)。
<Editor(GetType(MyFolderNameEditor), GetType(UITypeEditor))> _
Public Property FolderName() As String
Get
Return _folderName
End Get
Set(ByVal Value As String)
_folderName = Value
End Set
End Property<Security.Permissions.PermissionSet(Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
Friend Class MyFolderNameEditor
Inherits UITypeEditorPublic Overloads Overrides Function GetEditStyle(ByVal context As System.ComponentModel.ITypeDescriptorContext) As System.Drawing.Design.UITypeEditorEditStyle
Return UITypeEditorEditStyle.Modal
End FunctionPublic Overloads Overrides Function EditValue(ByVal context As System.ComponentModel.ITypeDescriptorContext, ByVal provider As System.IServiceProvider, ByVal value As Object) As Object
Dim edSvc As IWindowsFormsEditorService = CType(provider.GetService(GetType(IWindowsFormsEditorService)), IWindowsFormsEditorService)
If edSvc Is Nothing Then
Return Nothing
End IfDim folderbrowser As New FolderBrowserDialog
If folderbrowser.ShowDialog() = DialogResult.OK Then
Return folderbrowser.SelectedPath
End If' If OK was not pressed, return the original value
Return valueEnd Function
End Class
ちなみに、自分で作ったコードの方が、
Dim folderbrowser As New FolderBrowserDialog
With folderbrowser
.ShowNewFolderButton = False
.SelectedPath = CStr(value)
.Description = "Choose the folder."
End With
ということができる分、自由度が高い。
Showing verbs in a PropertyGrid at Run-Time(ref. MBR IT/.NET 247)
System.ComponentModel.Design.DesignerVerbを利用することでできるらしい。
あと、
.NET Framework Visual Designers におけるコード生成のカスタマイズ (ref. MSDN)
というのもあった。Formとかを保存するときにデザイナが作るコードについての解説やけど、意外とPropertyGridとのつながりが深くて、それでいてPropertyGridの普通の解説よりも分かりやすい。
投稿者 ただ : 23:50 | トラックバック (0) カテゴリー ; さんぷるライブラリー , PinMarch Samples , VB, VB .net , プログラミング単語帳 , リンク , プログラミング
夕方くらいから雨が降り始めた。…今日雨降る予報やっけ??
仕方なく、小康状態になるのを待とう、と雨雲レーダー(の予想)を見たら…雨雲が通り過ぎるのは日付が変わるころらしい。
待ったさ、23時半くらいまで。会社で。まぁ、お陰でちょっとだけ仕事が余計に進んだからいいんやけど。にしても雨降り過ぎ。
自分がやるって決めたことを、突如として「やらない」と主張するのはそれなりの理由があってのことだろうと思う。納得ができなくなったから、とかそんなんであっても。納得ができないのなら、その納得ができない理由を聞かれるまで言わないのではなく、自分から言うことが「相談」なのにそれが解っていないと思われる。
というか、「伝わらなかったらなかったことにする」病という病気が判明している時点で、納得がいっていないのかどうかも分からない。
投稿者 ただ : 23:57 | トラックバック (0) カテゴリー ; mein Erbe
+33,307円
今週の信用取引結果。
±0円
今週のFX結果。
☆信用取引の詳細
CTS(4345) 購入: 164,000円x2 決済: 184,000円 → +40,000円
とりあえず確保ということで。自社株買いがあるからしばらくは18万円以下をウロウロするんやろうなぁ…。
★FXのいいわけ
【デイトレ口座版】 - (2007年通算)無。
7/16 - 7/20 取引なし
【通常口座版】
[AUD/USD 480.43(469.00+11.43)USD](保有中)
[AUD/JPY 23,834(20,700+3,134)円]
[NZD/USD -671.87(-641.00-30.87)USD]
[NZD/JPY 58,837(50,900+7,937)円]
[ZAR/JPY 28,325(23,000+5,325)円]
なんか知らん間に円安がすごいことに…。
投稿者 ただ : 12:00 | トラックバック (0) カテゴリー ; 投資 , 投資
続報です。
.NET コンポーネントのためのカスタム デザイナの作成にある、一般的なタスクの単純化(ref. MSDN)が、コマンドペインにコマンド(動詞)を追加する方法を簡単に示している。
Windows フォームのプログラミング カスタム デザイナ(ref. MSDN2)
より詳細な情報はこちらに。ただし、旧MSDNではなく、2.0以降に対応したバージョンになってるけど。1.1でも使えそうな情報あるし。
文字列として「空("")」を入力したときは数値の0として入力させる、というStringConverterの派生クラスを作って対応可能。
<TypeConverter(GetType(DefaultParamValueConverter))> _
Public Property SomeProperty() As Single
Get
Return _value
End Get
Set(ByVal Value As Single)
_value = Value
End Set
End Property<Security.Permissions.PermissionSet(Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
Friend Class DefaultParamValueConverter
Inherits StringConverterPublic Overloads Overrides Function CanConvertTo( _
ByVal context As System.ComponentModel.ITypeDescriptorContext, _
ByVal destinationType As System.Type) As Boolean
If destinationType Is GetType(String) Then Return True
Return MyBase.CanConvertTo(context, destinationType)
End FunctionPublic Overloads Overrides Function ConvertTo( _
ByVal context As System.ComponentModel.ITypeDescriptorContext, _
ByVal culture As System.Globalization.CultureInfo, _
ByVal value As Object, _
ByVal destinationType As System.Type) As Object
If (destinationType Is GetType(String)) AndAlso (CDbl(value) = 0.0#) Then Return ""
Return MyBase.ConvertTo(context, culture, value, destinationType)
End FunctionPublic Overloads Overrides Function CanConvertFrom( _
ByVal context As System.ComponentModel.ITypeDescriptorContext, _
ByVal sourceType As System.Type) As Boolean
Return MyBase.CanConvertFrom(context, sourceType)
End FunctionPublic Overloads Overrides Function ConvertFrom( _
ByVal context As System.ComponentModel.ITypeDescriptorContext, _
ByVal culture As System.Globalization.CultureInfo, _
ByVal value As Object) As Object
Dim tc As TypeConverter = TypeDescriptor.GetConverter(context.PropertyDescriptor.PropertyType)
If CStr(value) = String.Empty Then Return tc.ConvertTo(0.0#, context.PropertyDescriptor.PropertyType)
If tc.CanConvertFrom(context, value.GetType) Then
Return tc.ConvertFrom(context, culture, value)
End If
Return MyBase.ConvertFrom(context, culture, value)
End Function
End Class
オーバーライドしたConvertFrom、ConvertToメソッドで、空文字列に対応したコードを記述する。太字の部分が今回「デフォルト」とした数値0なので、その部分をDefaultValueAttribute属性をcontext.PropertyDescriptorから取得するとかをすれば、デフォルト値なら空文字列を表示し、空文字列が入力されればデフォルト値を設定、とできる。
投稿者 ただ : 22:58 | トラックバック (1) カテゴリー ; さんぷるライブラリー , PinMarch Samples , VB, VB .net , プログラミング単語帳 , リンク , プログラミング
タイムリープって、使い時が難しい。
ちゃんと、録っておきました。
投稿者 ただ : 23:59 | トラックバック (0) カテゴリー ; mein Erbe
親戚一同(自分はメインの系統ではなく結構外れの方)が集まって、法要の後食事。
食事会(宴会)の場所としては御用達の場所なんやけど、今まで僕は数回しか行ったことがない。
その食事は会席料理やったんやけども、最初に先付から焼物、替り鉢くらいまで(例えば、11品のコースなら先付・前菜・造り・椀物・煮物・焼物・酢物・替り鉢・御飯・赤出し・デザートとかいう流れ)は出してあって、その後、食事(ご飯、汁物、漬物)、水物(デザート)となるんやろうな…と思ってたんやけど、なかなか「次」が出てこない。
何やってるんやろう…とか思ってる間にも時間は過ぎ、目の前の食べ物は消え、皿は回収されていく。皿は回収されるも、次が出てこない。そして、最終的に目の前には紙の敷物だけになった。することない。
で、しばらく何もない状態が続いて、出てきたと思ったらそうめんの「つゆ」。それだけ。本体が出てこない。出てこないまで、またしばらくそのまま。
そうめん本体が出てきたときには、そうめん硬くなってるんですけど。水とかフツー底にちょっとくらい入れとくでしょ。
そんで、食事は食事でまた全然出てこない。ちょっと待っていたら、先にご飯だけ持ってきて「お吸い物はもうすぐ来ますので」と。待てども出てこないんですが。
その間、お茶すら出されなかったので、自分で酌みに行くことに。ポットにお湯が入っていて、急須にお茶パックが入っているので、急須にお湯を入れて、湯呑みにお茶を入れなければならん。急須にお湯を入れてたら、お湯がなくなった。隣でご飯をよそっていた係の人が「お湯なくなりました?もう1つのポットはどうですか?」と、もう1つあったポットを渡すと、そのポットのお湯を急須に入れてくれた。そしたら、ポットを2つ持って、消えてしまった。
…お茶は入れてくれんの!?
もうショックどころか唖然とするしか。
鱧のお吸い物も、なんかおいしいとも思えず。
ただ、メロンは甘かった。
6ヵ月くらいの赤ちゃんがいて、その子に腕時計を近づけると口に入れようとするから間に手を挟んで妨害すると「なめさせて」と言わんばかりの視線を送ってくるのが面白かった。
最後、メロンの汁をなめさせるべく(離乳食段階なのでまだメロンは無理)竹フォークを使ってがんばってみたが、竹フォークを口の奥まで吸い込むのを見てびっくりした。けど、そのメロン汁の甘さが甚く気に入ったのか、完全に虜になってしまいメロンを見るやよだれが出る出る。結局、「硬い方なら食べられんだろ」ということで皮に近い方を口に近づけてやる。そしたら、「パクッ」とかぶりついて吸う吸う。面白い。
後で調べたら、そうめんが替り鉢なのか、と判明。
投稿者 ただ : 21:50 | トラックバック (0) カテゴリー ; mein Erbe , お出かけ
PropertyGridコントロールをカスタマイズするコーナーも既に4回目。
コレクションや配列のプロパティの場合、PropertyGridではダイアログが現れて、「追加」「変更」「削除」が各配列の要素に行うことができるようになる(ただし、文字列配列の場合はテキスト編集用ダイアログ:文字列リストの編集ダイアログが出る)。
しかし、このダイアログを出さずに"オブジェクト"のプロパティのように「入れ子」の形式(ExpandableObjectConverter)で表示したい。というときのコード。
<TypeConverter(GetType(ObjectsConverter)), _
Editor(GetType(ObjectsEditor), GetType(UITypeEditor))> _
Public Overridable Property Objects() As Object()
Get
Dim _obj() As Object = Me.GetSomeObjects()
If Not IsNothing(_obj) Then _obj = New Object() {}
Return _obj
End Get
Set(ByVal Value As Object())End Set
End Property<Security.Permissions.PermissionSet(Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
Friend Class ObjectsConverter
Inherits ExpandableObjectConverterPublic Overloads Overrides Function GetProperties( _
ByVal context As System.ComponentModel.ITypeDescriptorContext, ByVal value As Object, ByVal attributes() As System.Attribute) As System.ComponentModel.PropertyDescriptorCollection
Select Case context.PropertyDescriptor.Name.ToLower
Case "objects"
Dim s() As Object = value
If IsNothing(s) Then s = New Object() {}
Dim c As Integer = s.Length
Dim props(c - 1) As ObjPropertyDescriptor
For i As Integer = 0 To c - 1
props(i) = New ObjPropertyDescriptor(s(i).Text, attributes, s(i))
Next
Return New PropertyDescriptorCollection(props)
End SelectReturn MyBase.GetProperties(context, value, attributes)
End Function
Public Overloads Overrides Function GetPropertiesSupported(ByVal context As System.ComponentModel.ITypeDescriptorContext) As Boolean
Return True
End FunctionPublic Overloads Overrides Function CanConvertTo(ByVal context As System.ComponentModel.ITypeDescriptorContext, ByVal destinationType As System.Type) As Boolean
If destinationType Is GetType(String) Then Return True
Return MyBase.CanConvertTo(context, destinationType)
End FunctionPublic Overloads Overrides Function ConvertTo(ByVal context As System.ComponentModel.ITypeDescriptorContext, ByVal culture As System.Globalization.CultureInfo, ByVal value As Object, ByVal destinationType As System.Type) As Object
If destinationType Is GetType(String) Then Return ""
Return MyBase.ConvertTo(context, culture, value, destinationType)
End FunctionPrivate Class ObjPropertyDescriptor
Inherits PropertyDescriptorPublic Sub New(ByVal name As String, ByVal attrs() As Attribute, Optional ByVal val As Object = Nothing)
MyBase.New(name, attrs)_valProp = val
End SubPrivate _valProp As Object
Public Overrides Function CanResetValue(ByVal component As Object) As Boolean
Return True
End FunctionPublic Overrides ReadOnly Property ComponentType() As System.Type
Get
Return Me.GetType()
End Get
End PropertyPublic Overrides Function GetValue(ByVal component As Object) As Object
Return _valProp.SomeProp
End FunctionPublic Overrides ReadOnly Property IsReadOnly() As Boolean
Get
Return False
End Get
End PropertyPublic Overrides ReadOnly Property PropertyType() As System.Type
Get
Return GetType(String)
End Get
End PropertyPublic Overrides Sub ResetValue(ByVal component As Object)
_valProp.SomeProp = _valProp.DefText
End SubPublic Overrides Sub SetValue(ByVal component As Object, ByVal value As Object)
_valProp.SomeProp = CStr(value)
End SubPublic Overrides Function ShouldSerializeValue(ByVal component As Object) As Boolean
Return False
End FunctionEnd Class
End Class<Security.Permissions.PermissionSet(Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
Friend Class ObjectsEditor
Inherits UITypeEditorPublic Overloads Overrides Function GetEditStyle(ByVal context As System.ComponentModel.ITypeDescriptorContext) As System.Drawing.Design.UITypeEditorEditStyle
Return UITypeEditorEditStyle.None
End Function
End Class
PropertyDescriptorの派生クラスObjPropertyDescriptorをプロパティ情報の表示窓として利用し、ExpandableObjectConverterから派生させたObjectsConverterで、オーバーライドしたGetProperties()メソッドの戻り値に表示窓であるObjPropertyDescriptorの配列を返している。実際のプロパティ値変更は、ObjPropertyDescriptorが行っている(引数componentが、対象プロパティの配列を示しているからそれを利用してプロパティ値の変更をすればいいんやけども、今回は1つのPropertyDescriptorに1つのオブジェクトを最初に割り当てているので、別に使う必要がない)。
太字の部分(Editor)を書き加えると、入れ子にしている親分の値に{Object}とか出なくなる(親分のところは編集もできない)。
投稿者 ただ : 21:51 | トラックバック (0) カテゴリー ; さんぷるライブラリー , PinMarch Samples , VB, VB .net , プログラミング単語帳 , プログラミング
ようやく、個人情報保護士の黄金カードと賞状を渡された。賞状デカっ!!
資格保持者の特権として、このロゴがダウンロード可能らしい。別にどこからでもコピペできるやん、とか思ったりもするけど。名刺とかに印刷するんだとさ。2009年までの期間限定ですが。
投稿者 ただ : 23:32 | トラックバック (0) カテゴリー ; mein Erbe
VB.NET2003まだ使ってます。
VB2005で作れるのが.NET Framework 2.0以降用のアセンブリだけなので、1.1を生かすためにはやはり2003を使うしかないのでして…。Erbe2006.02.02で、VB.NET2003 Standardでクラスライブラリを(強引に)作る方法を見つけたということを書きましたが、それをようやくやってみた。
変更前のプロジェクトのプロパティを見ると、出力の種類が「Windows アプリケーション」、出力名が~.exeとなっている。
vbprojファイルを開き、OutputType = "WinExe"(ハイライト部分)→"Library"に変更する。
変更後のプロジェクトのプロパティを見ると、出力の種類が「」、出力名が~.dllとなっている。
ちなみに、VS上でプロジェクトが開いていても、この変更は可能。それから上のvbprojファイルで、StartupObject = ""とすると、スタートアップの設定が「(なし)」になる。
これで外部から参照可能なdllファイルを作れる…!!
投稿者 ただ : 20:54 | トラックバック (0) カテゴリー ; さんぷるライブラリー , mein Erbe
仕事メモ。
(1)部下を便利な作業者と思ってはいけない。あくまで自分で考えて,自分の責任で部下に任せなくてはならない。
(2)短い期間でも放っておいてはいけない。報告,相談,連絡を密にしなくてはならない。
(3)部下とのルールを決めなくてはならない。
(4)指導の際には何が悪いのか,良いのかを納得させる説明をしなくてはならない。
(5)仕事上の思想を持たせるようにしなくてはならない。
(5)仕事上の思想を持たせるようにしなくてはならない。
僕はこれが一番大事だと思う。つまり,大きな思想をもって仕事を考えてほしいということだよ。自立した仕事をするということ。ミッションを正しく捉える力を身に付けるように指導しなくてはならない。
一番大事なのは下線部なのは分かるが、実際どうすんねん、って話なんよね。問題は。
よくある指摘項目が分類されてて使いやすいかも(指摘する側として)。
出張に行った。
タクシーの運ちゃんに逆切れされた。ていうか、伝えた行き先が「わからない」って言うのはまだしも「行かれたことないんですか!?」って、そんなこと聞くなよ。「『○○化学』なら分かるんですがね…ちょっとそこで聞いてみますわ」と聞きに行って帰ってきたら「やっぱり○○化学ですわ」、と出発して「どこだったんですか?」と質問すると「は?」とか言われるし。
到着すると、確かに敷地は○○化学やった。プレートがたくさんあって、そのうちの1枚に目的地の文字が。いやだからって、逆切れはしたらあかんわ。
投稿者 ただ : 22:26 | トラックバック (0) カテゴリー ; mein Erbe
出張のときも、上長と新人の問題点についてどうするか…と。一貫して、「自分で考えさせたい」とは言っているものの、これまで、それが一向に快方へ向かわない。
認知的不協和を引き起こさせればよい、ということは十分分かっている。ただ、本人は"そこから考えない"んよ。不協和を解消する矛先を自分に向けようとはしない。
これらから、「3次元の世界で生きている」と考えた。4次元世界(時間軸)がないので、何かを聞いても「今」の説明しかされない。そして、自分のこと(認識・意思)をどう思っているのかを言わない。それが、根本的なところを指摘したくてもできなかった要因にもなって、なかなか快方に向かわない原因になっていたと思った。
とりあえず、「行動の一貫性」には非常に敏感なようで、この手の指摘をすると表情が固まるのでここしか突破口はなさそうだと思った。
(これがなかったら、行動の一貫性を植え付けるところからしないとあかんかったんやけど。…ただ行動の一貫性はあまり強要しすぎると危険。
金儲けするつもりがどんどんお金を使ってしまう仕組み(ref. 副業の金儲けノウハウ教えます))
まだ現実問題としてスタートラインから進んでいない(その原因が「結果」にあるのではなく「プロセス(根本)」にある)ということを、ミーティングにて分かってもらおうとして…。本人が「目的に向かって進んでいる」と主張しているところを「進んでいると(進もうと)思っているだけ」ということを認識させた。ようやく。
どつけば済む問題を、そうしないでやるっていうのは非常に頭が痛い。
この手の話は過去数回あったけど…学生のときと違って自分の権限という縛りもあるからより難しい。頭疲れる。いつもやけど。でも、例によって問題が解決したわけじゃない。問題を改善するためのスタートラインに立ったところ、これから変化を見ないといけないうえに課題も再考せねばならん。
投稿者 ただ : 22:41 | トラックバック (0) カテゴリー ; mein Erbe
±0円
今週の信用取引結果。
-22,864円
-176.45USD
今週のFX結果。
☆信用取引の詳細
なし
★FXのいいわけ
【デイトレ口座版】 - (2007年通算)無。
7/23 - 7/27 取引なし
【通常口座版】
AUD/USD 293.41USD(281.00+12.41)
NZD/USD -469.86USD(-435.00-34.86)
AUD/JPY -22,111円(-26,200+4,089)
NZD/JPY 10,810円(1,700+9,110)
ZAR/JPY -11,563円(-17,800+6,237)
[ZAR/JPY -1,624(-1,700+76)円](保有中)
なんと、ここにきてサブプライムが響いてくるとは…。ここ2日で、十数万も評価額が下がって、この様ですよ。日経平均も恐ろしいことになるし…。これで3月時点に逆戻り。
投稿者 ただ : 19:47 | トラックバック (0) カテゴリー ; 投資 , 投資
日曜、参院選。
票を入れる先がない。
ていうわけで、部屋から出なかった…。ひっきーと言うよりかは、暑くて出る気にならん。テレビも夜は面白いのないし。
自民が勝とうと、民主が勝とうと、自民優勢なのは変わらんしな…とY氏と話をしていたのは今月前半。今は圧倒的に自民不利ですな。ていうか、自民が勝とうと、民主が勝とうと、株式市場にはいい要素にならん気が。
こんな日は、そこまで言って委員会を観てるのがいい。今日は田嶋さんがえらくフィーチャーされてた。
投稿者 ただ : 20:31 | トラックバック (0) カテゴリー ; mein Erbe
お昼も過ぎて、夕方になろう頃。ドアから入ってきたのは与四郎さん(仮名)46歳。
青森から来たんです。
思わず笑ってしまった。
いやぁ、この建物回ったけど、笑ってくれたのはあなたが初めてだよ。
そう言って、おもむろにりんごジュースのビラを渡し、説明を始めた。
もうすぐねぶた祭も始まるし、1ケースでも、100ケースでも。
いやぁ~。申し訳ないです、結構です。
与四郎さん(仮名)はビラを持って去っていった。
実際応対したのはTさんで、僕は顔も姿も見えなかったのでどんな人かは知らないですよ。
投稿者 ただ : 20:16 | トラックバック (0) カテゴリー ; mein Erbe
先日、コマンドペインに動詞(リンク)を表示する方法についていくつかリンクを張りましたが、より詳細な情報が出てきましたので、書いておきます。
前に紹介していた方法は、<Designer()>属性を使うデザイン時の拡張についてでした。Designer属性を使うと、確かにデザイン時にはプロパティウィンドウのコマンドペインにコマンドが表示されますが、実行時にPropertyGrid.SelectedObjectに代入した場合、表示されません。それは、TabControlオブジェクト等でも同じです。これを、実行時に表示するには、原理的には同じですが、別の方法を利用しなければなりません。
ようやくたどり着いたのは、このページ。英語ですが。このページで紹介している内容とサンプルファイルに、やりたそうなことは一通り書いてあります。
しかし、
『うそをつかせる』とはまたすごい表現やと思うけど…ICustomTypeDescriptorを実装すると、自分でPropertyGridに表示するプロパティを創作できるってことです。
ここに書いてあるとおり、この方が行った実装方法はICustomTypeDescriptorで完全にプロパティまでも自分で実装しています。ので、動詞を表示することだけをするには分離が必要になります。
調べた結果必要なのは、
の4つのインターフェースを実装した4つのクラスです。IComponentを実装するクラスが、PropertyGridに動詞を表示するクラスになります。
Public MustInherit Class VerbsComponent
Implements IVerbsComponent<System.ComponentModel.Browsable(False)> _
Public MustOverride ReadOnly Property Verbs() As System.ComponentModel.Design.DesignerVerbCollection Implements IVerbsComponent.VerbsPrivate _siteObj As System.ComponentModel.ISite = New VerbsSite(Me, Nothing, New VerbsMenuCommandService(Me))
Public Event Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Implements System.ComponentModel.IComponent.Disposed
<System.ComponentModel.Browsable(False)> _
Public Property Site() As System.ComponentModel.ISite Implements System.ComponentModel.IComponent.Site
Get
Return _siteObj
End Get
Set(ByVal value As System.ComponentModel.ISite)
_siteObj = value
End Set
End PropertyPublic Sub Dispose() Implements IDisposable.Dispose
RaiseEvent Me.Disposed(Me, EventArgs.Empty)
End Sub
End Class
このクラスはMustInheritとし、IVerbsComponentを実装しています。派生クラスでVerbsプロパティを実装する方式(MustOverride)にしています。派生先のクラスでDesignerVerbを生成して、クリックされたときの処理も派生先で書くようにします。以下がその実装例です。PropertyGrid1.SelectedObject = New SampleClassとすると、動詞がPropertyGridに表示されると思います。
Public Class SampleClass
Inherits VerbsComponentPrivate _dat As String
Public Property SampleData() As String
Get
Return _dat
End Get
Set(ByVal value As String)
_dat = value
End Set
End PropertyPrivate Sub SampleEvent(ByVal sender As Object, ByVal e As EventArgs)
MessageBox.Show("Click!!")End Sub
Public Overrides ReadOnly Property Verbs() As System.ComponentModel.Design.DesignerVerbCollection
Get
Dim arr As New System.ComponentModel.Design.DesignerVerbCollection
arr.Add(New System.ComponentModel.Design.DesignerVerb("sample1", AddressOf SampleEvent))
arr.Add(New System.ComponentModel.Design.DesignerVerb("sample2", AddressOf SampleEvent))
Return arrEnd Get
End Property
End Class
残りのコードは最後に。以下の記事も参考になります。
Third (and last) EntLib hack, gathering requirements(ref. ^(?:[^$]*)$ -- Matches everything, captures nothing)
Public Interface IVerbsComponent
Inherits System.ComponentModel.IComponentReadOnly Property Verbs() As System.ComponentModel.Design.DesignerVerbCollection
End Interface
Public Class VerbsExtenderService
Implements System.ComponentModel.Design.IExtenderProviderService, System.ComponentModel.Design.IExtenderListServicePrivate _extenderProviders As New ArrayList
Public Function GetExtenderProviders() As System.ComponentModel.IExtenderProvider() Implements System.ComponentModel.Design.IExtenderListService.GetExtenderProviders
Return _extenderProviders.ToArray(GetType(System.ComponentModel.IExtenderProvider))
End FunctionPublic Sub AddExtenderProvider(ByVal provider As System.ComponentModel.IExtenderProvider) Implements System.ComponentModel.Design.IExtenderProviderService.AddExtenderProvider
_extenderProviders.Add(provider)
End SubPublic Sub RemoveExtenderProvider(ByVal provider As System.ComponentModel.IExtenderProvider) Implements System.ComponentModel.Design.IExtenderProviderService.RemoveExtenderProvider
_extenderProviders.Remove(provider)
End Sub
End ClassPublic Class VerbsSite
Implements System.ComponentModel.ISitePrivate _component As IVerbsComponent
Private _container As System.ComponentModel.IContainer
Private _menuCommandService As VerbsMenuCommandService
Private _ve As New VerbsExtenderServicePublic Sub New(ByVal component As IVerbsComponent, ByVal container As System.ComponentModel.IContainer, ByVal menuCommandService As VerbsMenuCommandService)
_component = component
_container = container
_menuCommandService = menuCommandServiceEnd Sub
Public ReadOnly Property Component() As System.ComponentModel.IComponent Implements System.ComponentModel.ISite.Component
Get
Return _component
End Get
End PropertyPublic ReadOnly Property Container() As System.ComponentModel.IContainer Implements System.ComponentModel.ISite.Container
Get
Return _container
End Get
End PropertyPublic ReadOnly Property DesignMode() As Boolean Implements System.ComponentModel.ISite.DesignMode
Get
Return False
End Get
End PropertyPublic Property Name() As String Implements System.ComponentModel.ISite.Name
Get
Return Me.GetType().Name
End Get
Set(ByVal value As String)End Set
End PropertyPublic Function GetService(ByVal serviceType As System.Type) As Object Implements System.IServiceProvider.GetService
If Not IsNothing(serviceType) Then
If serviceType Is GetType(System.ComponentModel.Design.IMenuCommandService) Then
Return _menuCommandService
ElseIf serviceType Is GetType(System.ComponentModel.Design.IExtenderListService) Then
Return _ve
End If
End If
Return Nothing
End Function
End ClassPublic Class VerbsMenuCommandService
Implements System.ComponentModel.Design.IMenuCommandServicePrivate _component As IVerbsComponent
Public Sub New(ByVal component As IVerbsComponent)
_component = component
End SubPublic Sub AddCommand(ByVal command As System.ComponentModel.Design.MenuCommand) Implements System.ComponentModel.Design.IMenuCommandService.AddCommand
End Sub
Public Sub AddVerb(ByVal verb As System.ComponentModel.Design.DesignerVerb) Implements System.ComponentModel.Design.IMenuCommandService.AddVerb
End Sub
Public Function FindCommand(ByVal commandID As System.ComponentModel.Design.CommandID) As System.ComponentModel.Design.MenuCommand Implements System.ComponentModel.Design.IMenuCommandService.FindCommand
End Function
Public Function GlobalInvoke(ByVal commandID As System.ComponentModel.Design.CommandID) As Boolean Implements System.ComponentModel.Design.IMenuCommandService.GlobalInvoke
Return True
End FunctionPublic Sub RemoveCommand(ByVal command As System.ComponentModel.Design.MenuCommand) Implements System.ComponentModel.Design.IMenuCommandService.RemoveCommand
End Sub
Public Sub RemoveVerb(ByVal verb As System.ComponentModel.Design.DesignerVerb) Implements System.ComponentModel.Design.IMenuCommandService.RemoveVerb
End Sub
Public Sub ShowContextMenu(ByVal menuID As System.ComponentModel.Design.CommandID, ByVal x As Integer, ByVal y As Integer) Implements System.ComponentModel.Design.IMenuCommandService.ShowContextMenu
End Sub
Public ReadOnly Property Verbs() As System.ComponentModel.Design.DesignerVerbCollection Implements System.ComponentModel.Design.IMenuCommandService.Verbs
Get
Return _component.Verbs
End Get
End Property
End Class
投稿者 ただ : 20:25 | トラックバック (0) カテゴリー ; さんぷるライブラリー , PinMarch Samples , VB, VB .net , プログラミング単語帳 , リンク , プログラミング
珍しく、9時前に出社。なんか、早く起きれたので。
フツーに9時間会社に居たら18時に帰れる! とか思いながら仕事できた。新人の世話なんか知らん。そしたら…「レッドカーペット予約するの忘れた!」とか昼休みに言い出すし。
牛と引き換えに、レドカの録画をすることに。18時に会社出て、家に帰って録画、かい。
結局レドカはみる気になれんくて、会社でどうしてもできんかったことを家で再現してた。…なんてこった。
投稿者 ただ : 21:58 | トラックバック (0) カテゴリー ; mein Erbe