スポンサーサイト

--年--月--日 --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

にゅーてきすとえでぃたー3

2006年07月18日 22:50

やっとこさ3回目です。

っていうのも、3連休をしっかり休んだからあまり進んでなかったんですねヽ(°▽、°)ノ
映画「サイレントヒル」見てきたよ~。シーンを細かく作ってたりとナカナカですた。


さて、今日は先週の続きです。
アレから2、3日で入れないといけない機能は大体いれました。
・・・んが!大事な項目を飛ばしてるのに気づきました。・゚・(ノД`)・゚・。

この前書いた ToDo リスト、選択処理が入っていませんでした・・・。


結構面倒なのが選択処理。
文字ごとに処理しないといけないからです。
しかも、今現在は単語ごとに描画処理を行っているので単語の中間から選択されている場合などの場合、(処理を変更しないなら)別処理にしなければいけません。
とうしたことか・・・。。。悩むこと数時間。。


結局単語ごとに処理することは変わらず、単語描画部分だけを違う関数にすることで落ち着きました。
こうすれば後々他の強調表示を入れたい場合(たとえば検索で引っかかった文字のバックグラウンドの色を変更したり など)クラスを派生してオーバーライドすればいくらでも処理を入れることが可能だからです。

描画部分を分離したことでソースも見やすくなったし役割もすっきりしました。



これで「拡張することを念頭に置いた設計」に変更しちゃったので、全体の拡張性も見直しました。
今までドキュメント関連のクラスのインスタンスを作る時、単純に New してたところをファクトリークラス経由で作成するようにしたり、タブ描画処理も一緒に単語描画処理を担当しているクラスに委譲したりと。


そんなわけで軽く全体修正を施した結果!選択処理もできました~(´ー` )


後は選択時の再描画で背景が明滅しないように OnEraseBkgnd で背景の消去を行うようにしたり、現在指している文字がマルチバイト文字だった場合、キャレット大きさをマルチバイト用に大きくしたりしました。

デバックで必要だったついでに行番号表示も追加したので見栄えはバッチリになりましたよこれ(・∀・)



後入っていない処理は、、、
 ・置換処理(複数行対応の)
 ・WordBreak 処理
が最低限。


他に必要なのは、、、、
 ・検索(単語単位も)
 ・置換(単語単位も)
 ・キーワード登録
ってところ。

うーん、、、、木曜までには検索処理ぐらいまで絶対終わらせないと。
がんばるですよ( ・`ω・´)



ってことで、開発中の画面ですけど、公開します。
完成してもそれほど異なった画にはならない感じ。

Editor060718.jpg

画面は開発中のモノです



どうでもいいけどオーバーライドとオーバーロードって時々わからなくなるよねw
ちなみに
 オーバーライド:親クラスの仮想関数を子クラスが上書きして定義すること
 オーバーロード:関数名は同じでも、違う引数をとることで違う関数として認識されること。戻り値だけ違う場合はダメ
だす。


blog_rank
スポンサーサイト


コメント

    コメントの投稿

    (コメント編集・削除に必要)
    (管理者にだけ表示を許可する)

    トラックバック

    この記事のトラックバックURL
    http://angra.blog31.fc2.com/tb.php/61-40448623
    この記事へのトラックバック


    最近の記事


    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。