画面デザイン

先日、ポスター制作や動画編集を専門にされている方と、
お話をする機会がありました。
どうすれば良いデザインができるのか率直に伺ったところ、
その方は「同業他社のデザインを研究する」そうです。

ソフトウェア制作の現場においても、
お客様からデザインを指定される場合や、
新規でデザインを考えなければならない場合などがあります。

特に新規でデザインを考えなければならない場合、
他の同じような機能を持つソフトはどのような画面構成をしているのか、
実際に自分が使う立場として参考にするというのは、
非常に重要なポイントだと思いました。

ソフトウェアにおいてもユーザー目線で、
使いやすい UI / UX を心がけたいと思います。

DataGridViewに任意のコントロールを表示

今回もまたWindowsFormsのDataGridViewコントロールを拡張したお話。

任意のコントロールを表示できるセルを実装しました。

セルのValueプロパティにコントロールをセットすると、セルの描画位置にそのコントロールが表示されます。

もちろん、セルに表示したコントロールを操作することが可能です。

今回の実装により、DataGridViewで表現できる幅がさらに広がりました。

夏の幕開け

mgcです。

大変ご無沙汰をしております。
長期間現場に出ておりました。

現場に出ている間に梅雨が明け、本格的な夏へと入ってしまいました。
8月に入り熱中症で搬送される方が急増し、亡くなられている方もおられるみたいですね。

お盆は連休工事の為、出張で外出しておりますが
連休の為工場内は冷房無しでの作業となります。
十分注意をし体調管理は万全にしたいものですね。

こまめに水分補給を行い今年の夏を乗り切りましょう。

プログラム言語

mtjです。

プログラム言語は各分野、端末、行いたい事に特化しているか等で様々な言語を使用しています。
最近VB6を行って思ったことはメインで使い慣れている言語があることでいろんな言語に対応できることが可能だと思いました。

基本的なメモリの動き、スレッドの動き等が身についたため他の言語ではC#のあれが簡単に書けるとか、C#で自動でやっていることを自分で書かないといけない等
C#で置き換えて考えていけるのでどの言語もすんなり基本的なことは行えるようになりました。

1つの言語をメインで頑張るのも悪くないことだと感じました

新旧開発環境

社内のPC開発環境は、主にVisual Studioを用いてC#で開発しています。
時折お客様からVB6などで作られた、
既存ソフトウェア資産の保守を依頼される場合があり、
その場合はVB6などのコードを読んで、必要な実装を行います。

Visual Studioは非常に優れたIDEなので、
古い言語や開発環境を使ってみると、特にそれを実感します。
必要な実装部分にさっと飛んで元に戻ってきたい。
自動でインデントを付けて欲しい。
コードを色で分かりやすく表示したい。

これらは普段当然のように使っている機能のなので、
とにかく様々な事が気になってしまいました。
最近の言語や開発環境は、
それだけ改善されて使いやすくなっているということですね。

それにしてもVB6が動作しているPCは、
スタンドアローンなWindowsXPが多いと思います。
現在もまだ多く使われているかと思いますが、
そろそろハードの限界も視野に入れる必要がありそうです。

DataGridViewのホットトラッキング

今回もWindowsFormsのDataGridViewコントロールを拡張したお話。

マウスカーソル下にあるセルの背景色・前景色を自動で変更する処理(ホットトラッキング)を社内ライブラリに実装しました。プロパティの設定だけで実現できるのでコーディング不要です。

内部処理は、DataGridViewのOnCellPaintingメソッドをオーバーライドし、マウスカーソル下かによってCellStyleを変更することで実現しています。

ラダー回路のフォーマット

mgcです。

じめじめした暑さが続いておりますが
今週あたりから梅雨入りするのでしょうか?

さて、最近社内用にラダー回路のフォーマットを作成しております。
フォーマットといっても
お客様によって制御回路の仕様が異なる為
一括して同じ回路というわけにはいかないのですが、

シンプルモーション等の設定回路であったり
異常関係の回路等であればある領域を固定で確保していれば
そのままコピペで使用できるようになります。
これにより工数の削減、作業の効率化が図れるようになりました。

現在、三菱のもののみとなるので
他メーカー用のフォーマットも随時作成していく予定です。

お仕事お待ちしております。

デザインについて

ソフト関連ではデザインという話をよく耳にする
1.各UIを綺麗にするデザイン(動きをつける等)
2.使いやすく配置するデザイン(ボタン、テキスト等をみばえよくするため)
3.プログラムを効率よくするためのデザイン(設計)

自分が得意というか、それしかできないのですが3番以外はからっきしです。
2番については経験だと思います。
1については流行りをしらないと難しいと思います。
現在ではWEBのデザインはスクロールするだけで機能を読んでいけるようなデザインが多いと思います。
スマートフォン、タブレットの普及により縦長の画面が多くなり、スクロールが容易になったからでしょうか。

ひと昔前のデザインではトップ画面にメニューを並べ、その中からクリックで進んでいくような1画面にすべての情報を表示させる手法が多かったように思います。

3については勉強でなんとかなりますが、1,2、については流行っているデバイス、デザインにより変化するので普段から気を付けているかが重要になるような気がします。
自分も世の中のソフトから勉強したいと思います

プログラミングの入門書から次へのステップ

初めてプログラミングを学ぶとき、
最初は書籍による体系立った学習が重要だと以前書きました。

読みやすい、バグの起こりにくい、修正しやすい、拡張しやすいなど目的の為、
現場では様々なテクニックを用いてプログラムを作成します。
それらの技術を用いて作られるプログラムは、実際にはその多くが、
初心者~中級者向けの一般の書籍の内容でカバーできるものですが、
慣れていないと非常に難しく感じ、
学習内容と実際の現場では、大きな乖離があるように思えてしまうと思います。
最初はコードが読めない、書けないといった事態が起こります。

例えば既存のプログラムを修正する場合、
どの部分を修正すればよいかを見つけるのが最初の難関です。
コードを読む場合、クラス、メソッド、プロパティ、オブジェクト、変数など、
キーとなる部分を把握する事から始まります。
私は最初、それがうまくできませんでした。

私の場合、打開のきっかけとなったのは、
コードに色を付ける拡張機能の導入でした。
たとえばメソッドは黄色、拡張メソッドは斜体、staticメソッドは太字、
プロパティは紫色、局所変数はオレンジ色、コメントは緑色など、
自分のルールを決めて、視覚的に分かりやすくすることで、
どこでどのように使われているのか、コードの把握ができるようになりました。

あとはとにかくプログラムを少しいじって変更してみる。
動作がどう変わるか調べるというのも、当たり前の事ですがとても重要な事です。

 

DataGridViewにグラフを描画

DataGridViewコントロールにグラフ表示を行う機能を追加しました。
現在対応しているグラフは、横棒グラフ・縦棒グラフ・積上横棒グラフ・線グラフ・面グラフ・点付き線グラフなど。

既存のグラフコントロールを使用して、セルのGraphicsオプジェクトに直接描画しているので、他のグラフに対応するのも簡単です。必要があれば円グラフや3Dグラフなども対応できます。

今回の実装により、DataGridViewで表現できる幅が広がりました。