∵ なぜならば

映画とかネットとかパソコンとかコミックとか音楽とか……

開発日記ってか?

2012-03-27 23:53:48 | NanaTerry
独り言乙なのでスレ(http://anago.2ch.net/test/read.cgi/software/1332169510/)ではなくここに書きます

とりあえず今日娘に指摘されたバグ二つは手元の版で修正しました
・「起動時にIMEをONにする」が機能しなくなっていたのを修正
・「ウィンドウサイズ固定」が再起動しないと効かなくなっていたのを修正

■■■■----------独り言ここから------------■■■■

さて、Nana さんのソースはとても読みやすくオープンソース化のためか結構丁寧な
コメントも入っていて手続き間のジャンプもわかりやすいです

ソースを追ったり機能を追加したりする時につらい点は二点だけ
・細かいことですがコンポーネントの命名規則が真逆なことと
・ユニット越しの処理方法が違うことくらいです

「命名規則」の方は
ActionCopy
ActionPaste

とされていること(こうする利点もわかるのですが)
私は全く逆の
CopyAction
PasteAction
です
こうするとオブジェクトインスペクタで探しやすいわかりやすい
キーボードで「C」と打つだけで飛べるなどの利点もあります

「ユニット越し」
わたしはメインフォームから設定ダイアログを呼び出す時ダイアログ側では基本
その中だけで完結するようにするため Create 時にメインから初期設定をして
ModalResult=mrOk の時に変更処理をしますが
Nana さんは設定ダイアログ側が生成された時に Ini から直接読み込んで
OK した時に書き込んでメインに戻って mrOk ならまた IniFile を読み込む
Dlg := TSettingDlg.Create(Self);
try
if mrOK = Dlg.ShowModal then
begin
LoadSetting;
EditorForm.ActionSetEditRectExecute(Sender);
UpdateCursorPos;
end;
finally
Dlg.Release;
end;
といった方法をとられています
ですから LoadSetting(Ini 読み込み)手続きがメインと設定ダイアログの両方に存在します
すると設定事項が増えた時に両方に同じようなことを書き足さないといけないことになり
凡ミスを招くことになると私は考えてしまうわけです
とはいっても私の方法だと安易にグローバル変数とかに走ったりすることがあるので
セキュアではないことに問題あるかも知れません

あ、もういっこありました
ちょっと生数字や生文字が気になりました


私は自分が一番信じられないので、後でミスしないように自分で罠にはまらないように
していくタイプです
かといって決して読みやすいソースを書いているとも思えませんが
事実一年も前のモノなど何をやっているのかわからないものが希に沢山あったりします




オリジナルで問題なかった部分がソースをさわっていないのにエラーや不具合の出る部分があります
表の挿入や階層テキストの読み込み(こちらは現在調査中)などです

前者はまったくもって Delphi 内部の「文字列」が全て UniCode で処理されるようになったため
オリジナルが作成された時代の Delphi と同じコードでは期待する処理がされないことによります

おそらく後者もそうなんだと思いますがとにかくオリジナル NanaTree の全ての機能をまだまだ
テストし切れていないのでもしかしたらこのほかにも出てくるかも知れません

ダラダラと書きましたが私自身は現在 Delphi が楽しくてしようがありません
昼間も仕事しながら思いついたらメモをとったり(PC など一切無い職場です(^^;)
まさに「安西先生、Delphi がしたいです」状態です
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする