☆Edit1.SelTextが・・・。
以前、XPmanを貼り付ける等により、XPテーマを有効にした時には、
SelTextの値がおかしくなると書きました。
(APIの仕様変更によるものらしいですが)
Delphi2007では、XPmanを貼り付けなくても、デフォルトでテーマが有効になっています。
既存のアプリケーションをDelphi2007でコンパイルし直す時には、ご注意を・・・。
(エラーが出ないので、なかなかわかりにくい部分ですよね)
SelText部分を書き直す一例としては、下記のような処理ですね。
ちなみにDelphi2007の場合、XPテーマを無効にするには、メニューの
プロジェクト→アプリケーション →アプリケーションの設定 ランタイムテーマを有効にする
のチェックを外します。
Delphi2007では、XPmanを貼り付けなくても、デフォルトでテーマが有効になっています。
既存のアプリケーションをDelphi2007でコンパイルし直す時には、ご注意を・・・。
(エラーが出ないので、なかなかわかりにくい部分ですよね)
SelText部分を書き直す一例としては、下記のような処理ですね。
// XPテーマ有効時、Editで選択された文字列を返します。
function GetSelText(Edit: TEdit): String;
var
S, Str: WideString;
I, Start, Len: Integer;
begin
S := WideString(Edit.Text);
Start := Edit.SelStart + 1;
Len := Start + Edit.SelLength -1;
Str := '';
for I := Start to Len do
Str := Str + S[I];
Result := Str;
end;
ちなみにDelphi2007の場合、XPテーマを無効にするには、メニューの
プロジェクト→アプリケーション →アプリケーションの設定 ランタイムテーマを有効にする
のチェックを外します。
| 固定リンク
