Ticket #24 (closed タスク: 修正済み)
Win高速化 PC+ v1.93 の開発
| Reported by: | attosoft | Owned by: | attosoft |
|---|---|---|---|
| Priority: | 普通 | Milestone: | Win高速化 Classic version 1.0.x |
| Component: | Win高速化 Classic | Keywords: | |
| Cc: |
Description (last modified by attosoft) (diff)
2005 年 11 月以降更新がストップしている Win高速化 PC+ のメンテナンスとして Win高速化 PC+ v1.93 を開発する。
- UI デザインを全体的に見直す
- コントロールレイアウト、ロゴ画像、配色など
- 独特な UI を Windows 標準スタイルに近づける
- 機能追加
- ウィンドウリサイズ (最大化)
- XP テーマスタイルへの対応
- カテゴリタブのデフォルト非表示
- フォームの遅延作成
- 機能改善
- 設定項目実装 (読込/設定、保存/復元) を一通りチェック
- Windows Vista, 7 対応 (エラー回避のみ、正式には対応しない)
- 低解像度、256 色表示対応
- 各種リソース (バージョン、文字列、URL、画像、プロパティ) の更新
- リソーススクリプトによる文字列、画像、アイコンリソースの外部ファイル化
- Borland Delphi 開発環境の構築
- Delphi 7.1 にアップデート
- SVN リポジトリレイアウトの構築
- win-accel-classic
- branches, tags, trunk
- win-accel-classic
- リリース ZIP の作成 (公開しない)
※ Win高速化 PC+ v1.93 は一般には公開しないが、Win高速化 Classic version 1.0 開発のベースとする。
Attachments
Change History
comment:4 follow-up: ↓ 42 Changed 22 months ago by attosoft
- Description modified (diff)
- Summary changed from Win高速化 Classic version 1.9.3 リリース to Win高速化 Classic version 1.0 リリース
特に問題が発覚しない限りは原則 Win高速化 PC+ の実行コードは変更しない。
方針を変更し、操作性や可読性などを改善するため以下の機能を追加および削除する。
- 追加する機能
-
- 標準のタイトルバーおよびメニューバー
- ウィンドウリサイズ
- ステータスバー
- 解説文の外部リソース化
- 削除する機能
-
- 独自タイトルバーおよびツールボタン
- タスクトレイへの収納
- コンパクト表示モード
- 透明度や配色、タブスタイルのカスタマイズ
comment:10 Changed 22 months ago by attosoft
comment:11 Changed 22 months ago by attosoft
comment:12 Changed 22 months ago by attosoft
comment:13 Changed 22 months ago by attosoft
comment:14 Changed 22 months ago by attosoft
comment:15 Changed 22 months ago by attosoft
comment:16 Changed 22 months ago by attosoft
comment:17 Changed 22 months ago by attosoft
comment:18 Changed 22 months ago by attosoft
comment:19 Changed 22 months ago by attosoft
comment:20 Changed 22 months ago by attosoft
comment:21 Changed 22 months ago by attosoft
(In [301]) オプションダイアログによる設定周りの実装改善。
- アプリケーションの配色を clBtnFace に統一
- 従来の独特な配色から Windows 標準に準拠
- 以前の配色はカラースタイルの一つとして提供
- カラースタイル選択時にリアルタイムにカラーパネルを更新
- 設定読込/適用時の再描画処理の方法を改善
- フォームの再表示をやめ、TForm.Refresh およびタブスタイルの変更を行う
- ※ タブコントロールの枠が再描画されない問題への対応
- 色選択ダイアログ (TColorDialog)
- 表示トリガーを TLabel.Click から TPanel.Click に
- 色を表すために用いていた TEdit を TPanel に差し替え
- 未作成のカスタム色を選ぶとエラーとなる問題の修正
- 表示トリガーを TLabel.Click から TPanel.Click に
- 文字の大きさの設定を「保存と復元」ダイアログにも適用
- 透明度に数値以外が入力された場合の考慮
- 設定読込/適用時の処理のリファクタリング
(see #24)
comment:22 Changed 22 months ago by attosoft
comment:23 Changed 22 months ago by attosoft
(In [303]) ソースコードやコンポーネントに埋め込まれている文字列の外部リソース化。
- リソーススクリプトファイル (resources/texts.rc) の作成
- 以下の箇所で表示されるテキストをテキストファイルとして抽出
- 解説エリアに表示される初期内容
- チェックリストボックスの設定項目名一覧
- 設定項目選択時に表示される解説
- 保存と復元ダイアログの解説 (パソコンの状態、Outlook Express)
- リソースファイルからテキストを読み込む LoadTextFromResourceName 関数の作成
- ソースファイル (*.pas) やフォームファイル (*.dfm) に記述されていた文字列の削除
- ※ 保守性や可読性の低下を招いていた
(see #24)
comment:24 follow-up: ↓ 25 Changed 22 months ago by attosoft
(In [304]) XP テーマスタイル (視覚スタイル) への対応。TXPManifest コンポーネントを配置して、XP テーマが有効な場合はコンポーネントに視覚スタイルが適用されるようにする。
※ Delphi 7 のコンポーネント (VCL) は視覚スタイルや Unicode などへの対応に問題があるため、以下の回避コードを実装する。
- TPanel.Color や TLabel.Color などが反映されない
- 明示的に TPanel.ParentBackground = False や TLabel.Transparent = True を指定する必要がある
- ※ オプションで設定したカラースタイルが適用されない。またカラースタイル選択時にカラーパネルが更新されない。
- TPageControl のタブ切替えボタン下の領域にある一部のコントロール (ボタンなど) が描画されない
- コントロールの背面 (親) に ParentBackground = False な TPanel を配置する
- ※ ユーティリティタブやパソコン情報タブの右端に位置するボタンの右半分が描画されない
- TCustomEdit.SelText が正しい選択文字列を返さない
- Unicode 文字を考慮して選択文字列を取得する GetSelText 関数を作成
- ※ 右クリックからの検索で選択文字列が正しく認識されない
- TImage のサイズ拡大部分の領域にあった一部のコントロール (ボタンなど) が再描画によってクリアされない
- コントロールの背面 (親) に ParentBackground = False な TPanel を配置する
- ※ カラースタイルを変更した状態でウィンドウサイズを拡大すると、拡大部分の領域にツールボタンの描画が残る
- IME の再変換が正しく機能しない
- 選択文字列が正しく認識されないためと思われる。重要でないため対応しない。
(see #24)
comment:25 in reply to: ↑ 24 Changed 22 months ago by attosoft
comment:24 への返信
※ Delphi 7 のコンポーネント (VCL) は視覚スタイルや Unicode などへの対応に問題がある
TXPManifest コンポーネントやマニフェストファイル (AppName.exe.manifest) を適用すると、Windows コモンコントロールのバージョンが強制的に更新される。そのためコントロールの外観はリッチになるが、VCL はコントロールの仕様変更に追従できていないため、一部のコントロールで問題が発生する。たとえばコントロールが Unicode ベースとなることで、バイト単位で文字列処理を行う VCL で問題が発生し、選択文字列の判定などに失敗する。問題のいくつかは Delphi 2006 でも残っており、多くは Delphi 2009 の VCL を使用することで解決する。
comment:26 Changed 22 months ago by attosoft
comment:27 Changed 22 months ago by attosoft
comment:28 Changed 22 months ago by attosoft
comment:29 Changed 22 months ago by attosoft
comment:30 Changed 22 months ago by attosoft
comment:31 Changed 22 months ago by attosoft
comment:32 Changed 22 months ago by attosoft
comment:33 Changed 22 months ago by attosoft
(In [312]) メインダイアログ以外のフォームの遅延作成。アプリケーション起動時に全てのフォームを自動作成せずに、初回表示時に Create する。
- フォーム参照箇所で、フォームが未作成の場合を考慮
- 設定ファイルの設定読込/保存
- 一括読込をやめ、各フォームの FormCreate で個別に設定を読み込む
- 右クリックからの選択文字列の検索
- イベントハンドラを TPopupMenu.OnPopup から TMemo.OnContextPopup に
- フォームメンバの参照方法
- Create 関数内ではフォーム変数ではなく self 修飾に
- フォーム変数は Create 関数内では初期化前
- 冗長なフォーム変数経由の参照を削除 (リファクタリング)
- NTFS変換ボタンクリック時のドライブ指定の誤りを修正
- Create 関数内ではフォーム変数ではなく self 修飾に
(see #24)
comment:34 Changed 22 months ago by attosoft
comment:35 Changed 22 months ago by attosoft
(In [314]) 設定項目実装 (読込/設定、保存/復元) を一通りチェック。
- システム(2), システム(4): 安全のためデフォルトで設定不可に
- オプションから設定項目の無効化を解除できる
- システム(4): 設定無効時は値指定ではなく値を削除する
- システム(10): XP SP2 用の設定から全てのサービスパック用の設定に
- Windows XP の場合に設定不可としないように変更
- デスクトップ(10): スタートアップの種類の保存・復元に対応
- 設定変更時/設定復元時のダイアログ表示の抑制
- エクスプローラ(8), サービス
- 復元時にバックアップ値がない場合は値削除ではなくデフォルト値を指定
- 起動・終了(6), (7), その他(1)
- その他(1): WMP 7.1, 9.0, 10.0, 11.0 への対応
- サービス停止時のスタートアップの種類を「無効」から「手動」に変更
- 復元時に システム(4) や その他(8) が正しく復元されない場合がある問題を修正
- 復元の対象から「パソコン情報」の項目 (使用者、会社名、コンピュータ名) を除外
- 復元関数:バックアップ値が NULL の場合はレジストリ値を削除する
(see #24)
comment:36 Changed 22 months ago by attosoft
comment:37 Changed 22 months ago by attosoft
comment:38 Changed 22 months ago by attosoft
comment:39 Changed 22 months ago by attosoft
comment:40 Changed 22 months ago by attosoft
(In [319]) 各種リソース (文言、URL、プロパティなど) をまとめて更新。
- メッセージダイアログ
- s/環境設定/オプション/g
- 解説文
- s/Attosoft/attosoft/g
- s/[詳しい解説]欄/[解説] エリア/g
- s/[e]ボタン/[i] ボタン/g
- s/Win高速化 PC+.exe/win_accelerator.exe/g
- オプションダイアログ
- 自動バックアップしない設定が非推奨である旨を追記
- URL の更新
- Win高速化 PC+ 公式サイト
- チケット登録 URL のパラメータ指定 (component, version, mileston)
- 補足情報 URL
- s/u-netsurf.ne.jp/attosoft.info/g
- 冗長なプロパティ指定の除去 (ParentFont, ParentColor)
- 使用されていない変数の削除
(see #24)
comment:41 Changed 22 months ago by attosoft
(In [320]) TForm.BorderStyle = bsNone 指定時のフォームのサイズと配置に関する VCL のバグへの対応。
- TForm.WindowState = wsMaximized でタスクバーを覆うサイズに最大化される
- ClientHeight に Screen.WorkAreaHeight (ディスプレイの作業領域) を設定
- TFrom.Position = poScreenCenter で画面中央より下にずれて配置される
- ※ タスクバー (あるいはアプリケーションのタイトルバー) の幅を考慮していないと思われる
- 十分な画面の高さがない場合にデスクトップ領域内にフォームを収める処理 ([315]) をより適切な形に修正
- 数値指定ではなく Screen.WorkAreaHeight を使用するように変更
- ※ 十分なデスクトップ領域がある場合は、ずれに気づきにくいため対応しない
(see #24)
comment:42 in reply to: ↑ 4 Changed 22 months ago by attosoft
- Description modified (diff)
- Summary changed from Win高速化 Classic version 1.0 リリース to Win高速化 PC+ v1.93 の開発
comment:43 Changed 22 months ago by attosoft
comment:44 Changed 22 months ago by attosoft
リリース ZIP を Windows Live SkyDrive にバックアップ。
※ Delphi 7 ではデバッグビルドとリリースビルドの設定を別々に管理することができない。リリースビルドを行う際はプロジェクトオプションを次のように変更しておく必要がある。
- コンパイラ
-
- コード生成
- [最適化] ON
- [スタックフレームの生成] OFF
- デバッグ - すべて OFF
- [デバッグ情報]
- [ローカルシンボル]
- [シンボル情報]
- [アサートの使用]
- ![デバッグ版 DCU を使う]
- コード生成
- リンカ
-
- マップファイル
- [なし] を選択
- EXE/DLL オプション
- [TD32 デバッグ情報を含める] OFF
- [リモートデバッグ情報を含める] OFF
- マップファイル
comment:45 Changed 22 months ago by attosoft
- Status changed from new to closed
- Resolution set to 修正済み
comment:description のタスクが完了したためチケットをクローズします。

(In [270]) Win高速化 Classic 向けのリポジトリレイアウトの構築 (see #24)