GW開発4

abdev 3 Comments »

クラスビュー、お試し機能としてはほぼ完成です。今後は、メンバ・メソッドの追加機能やその他クラス操作に関する機能をつけていければいいかなと。。。できれば、肥大化したクラスを適切に分割させるような、リファクタリング機能の一部でも搭載できれば大満足なのですが、そこまでがんばれるか、オレ

さてさて、今日はコード解析部分が一段落したので、アイコンなど、ビジュアル面の強化を行っております。ちなみに、おいらはアイコン屋ではないので、いかしたフルカラーアイコンを作成することができません。そこで、Petite Priereというサイトからアイコンを頂くことにします。

http://snow.if.tv/index.php

管理人のSiya*ara様、ありがとうございますm(__)m

あ゛ー、そうそう、

下のアイコンをかっちょいいフルカラーに手直ししていただける方、いらっしゃいましたら、どうかどうかお願い致しますm(__)m

dai_optimistic:20060506154457j:image

亀田兄弟サイコ〜

abdev 亀田兄弟サイコ〜 はコメントを受け付けていません

いやぁ〜、家族全員で見ちゃいました。亀田三兄弟の世界前哨戦・最終章。シャァーって感じですわ。

もう長いことスポーツというスポーツをしておりませんが男の戦い、いいっすよね〜。なんかパワーをもらえたって感じです。この若造めぇ〜

それにしても、ハウンドドッグの大友さん、嬉しそうだったな〜

GW開発3

abdev 112 Comments »

クラスビューの開発、着々と進んでおります。

コーディング中、エディタ画面と平行して動的に変わるようなクラスビューが出来上がってきました。

せっかくなので、アイコンのほうをフルカラーに変えちゃったりしてます

やはり、どんなに処理を軽量化させても、大量のソースコードを含むファイルを編集しようとすると、クラスモジュールの解析にCPU労力を費やしてしまうという問題が発生しています。これ以上、どのように回避すればいいものか…。

とにかく、次期バージョンで皆様に公開できそうですので、お待ちくださいませ!

GW開発2

abdev 1 Comment »

今日は昼前にムクッと起きましたf(^^;;;

で、タラタラとコーディングをしているわけですが、クラスビューに関しては、なんとか見通しが立ちそうです。

今は実家に帰ってきて、レゲエを聴きながら本当にタラタラとコーディングをしております。何度も言いますが、こういう開発スタイルはGWしかできません(ちょっと前までは学生の特権がどうのこうのとか言っておりましたが…)。

なんかこの記事、abdevというカテゴリに設定しておきながら、内容については何も触れてませんね。。。

今からジモッティー(地元の友達)と飲みに行ってきます!

Windows Vista、更に発売延期が色濃くなった!?

abdev 1 Comment »

今年のリリースが無理で、来年正月にリリース予定とされていた次期Windows OS「Windows Vista」。また更に3ヶ月遅れそうだということです。

CPUのシフトが加速されるVista発売延期なので、ちょっと残念です。このままズルズルいって、2007年末とか、2008年頭になる予感を持ってしまうのはおいらだけでしょうか。。。

それにしても、この情報が流れてからMS株が22%の下落したらしいんですけど、ソフトウェア(しかもWindows)のリリース延期がもたらすインパクトはかなり大きいってことなんですね。

GW開発

abdev 2 Comments »

普段の仕事を離れて、思い切りAB開発ができる期間、それがGWなのです!

さてさて今日はクラスビューワの開発第一日目ということで、早速作業に取り掛かっています。すぐにクラスの解析コードを書くわけにはいかないので、まずは下準備から入ります。

現状のABのプロジェクトビューで表示されるプロシージャは、リアルタイム性に欠けています。というのも、ビュー内をクリックしなければ最新の情報が表示されないため、コーディングをしているときにビュー内の最新情報を見たい場合はマウスを触らなくてはならないのです。これじゃ、コーディングモードに入ったプログラマーに易しい仕様だとは言い辛いですよね。

そこで、キー入力などでエディタの内容が変更されたときに、クラスビューをリセットできるような基本部分を作るのを今日の作業に見据えています。

でも、それを実現するためには一つ問題があるんです。それはコード解析に時間がかかるということ。せっかくサクサク動くようになってきたエディタが、またカチコチ仕様になってしまっては意味がありません。

対処方として、下のようなものを掲げてみます。

  • エディタモジュールとコード解析モジュールを別スレッドで動作
  • コード解析モジュールにウェイトを設置し、処理内容に遊びを作る
  • プロジェクト単位での解析はかなり長い時間がかかってしまうので、ファイル単位での解析を行い、差分管理を行う

これでうまく動いてくれればいいのですが…。

まぁ、なにより実装で示せるのが一番ですので、がんばってみます。

クラスビューワ

abdev クラスビューワ はコメントを受け付けていません

はいそれでは、最近サボりがちの開発関係の話題、第2段。

ProjectEditorでなんらかのプロジェクトファイルを開くと、プロシージャ類をプロジェクトビューから見ることができますね。あれのクラス版を作ってみようかと思っているところなのです。

というのも、最近、仕事の関係で、ちょっとしたデータベース構造をクラスに持たせるということを日常茶飯事のようにやっておるわけなのですが、こうするとデータの種類だけクラスが増えることになるんですね。

色々なファイルに散らばったクラスを一つのリストで確認でき、更にメンバ・メソッドの追加や編集ができれば言うことなしです。

真夏日

abdev 真夏日 はコメントを受け付けていません

今日はとある用事で都内へ出ていたのですが、昼間の気温にびっくり。30度を軽くこしておりました(目視で確認できたのは最高33度)。

5月になったばかりだというのに、この気温はあり得ないでしょ。。。

自動マインスイーパー

abdev 3 Comments »

友達のmizu君の日記を見ていたら、マインスイーパーを自動で解いてしまうプログラムのことが書かれていました。

下のリンク先をクリックすると、そのプログラムを紹介しているブログサイトへ飛ぶのですが、いやはやあっぱれです。

http://ishi.blog2.fc2.com/blog-entry-184.html

(ダウンロードもできるみたい)

たしかに、マインスイーパーというのはプログラマが毛嫌いする単調な作業をいかに効率よく、早くやるのかというのがポイントになります。こういう動きこそ、プログラム化すべきという作者の意図は同感できるものがあります。でも、これじゃ一生懸命ゲームやってたのがバカバカしくなるので、イマドキながらマインスイーパーにハマっている人は見ないほうが良いですf(^^;;;

エディタエンジンの最適化

abdev 4 Comments »

「AB開発日記」というタイトルに変更したものの、肝心の開発ネタが疎かになっていました。ということで、本日はエディタのネタを語ります。

ABに付属するProjectEditorは独自のエディタエンジンを搭載しており、通常のエディットコントロールと比べると下記のような相違点があります。

・部分的に色が変えられる

・アンドゥ・リドゥでかなり前の状態に戻せる

・Shift-JIS、EUC-JP、UTF-8などの文字コードに対応する

・CRLF、LF、CRなどの改行コードに対応する

このほか、コード補完機能がついていたり、複数のファイルを統合するツールがついていたりするのですが、ProjectEditorエディタエンジンの特徴というとこんなもんです。

しかし、最大のデメリットもあります。

それは重いということ。

数十キロバイトであれば問題ないのですが、数百キロバイト、数メガバイトになってくると、スクロール機能がカチコチになってしまいます。

これではマズイッ、ということで、本日はエディタエンジンの最適化を行います。

独自のエディタエンジンというくらいなので、自前で描画モジュールを抱えておりまして、当然、その中からTextOut関数なんかが呼び出されているワケです。コードエディタという位置づけから、色が変わる恐れがあるので、一文字単位での処理になるのですが、文字数の分だけTextOut関数を呼び出すのはあまり効率が良くありません(現状はこの状態f(–;;;)。

そこで、基本事項ではありますが、下記のような改良を行ったんです。

  • 文字色が同一のものは、まとめてTextOut関数に送る(TextOut関数の呼び出し回数を最小限に留める)
  • いきなりオリジナルのウィンドウDCに描画を行うと、古い情報を消さなければならない(ヘタすると、チラツクし…)。そこで、再描画テクニックの基本事項であるメモリデバイスコンテキストを採用する。

メモリデバイスコンテキストを利用した再描画は、下記のような手順で行えます。

※hdcはウィンドウDC

※memdcはメモリDC

  1. CreateCompatibleDC関数でhdcをコピーし、memdcに格納
  2. CreateCompatibleBitmap関数でhdcと互換性のあるビットマップを生成
  3. memdcに今生成されたビットマップをSelectObject関数で適用する
  4. memdcに向かって、TextOut
  5. BitBlt関数を使って、hdcにmemdcの内容を描画
  6. memdc、ビットマップを破棄

なんか、べた書きになってしまいましたが、まぁ、無難なテクニックです。今まで、ProjectEditorの再描画部分がこの手法じゃなかったのがコワいです…(おっと、因みにRADツールなんかはココらへん、きちんとしております)。

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS ログイン