☆Edit1.SelTextが・・・。

以前、XPmanを貼り付ける等により、XPテーマを有効にした時には、 SelTextの値がおかしくなると書きました。 (APIの仕様変更によるものらしいですが)

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テーマを無効にするには、メニューの
プロジェクト→アプリケーション →アプリケーションの設定 ランタイムテーマを有効にする
のチェックを外します。

|

★XPmanコンポ

XPmanコンポをフォームに貼り付けると、Edit1.SelTextの返す値がおかしくなります。
マニフェストを作成した場合でも同じです。
(Delphi7でもDelphi2005でもBDS2006でも)

|

その他のカテゴリー

ADO | ADT | API | ArrayList | ASP.NET | BDE | BDP.NET | BdpConnection | Borland Developer Studio 2006 | CAPICOM | class | ClipBoard | CodeEditor | Convert.ToString | Custom component | DBExpress | Delphi 2005 | Delphi 2006 | Delphi 2007 | Delphi XE2 | Delphi7 | Delphi8 | Device Driver | Dialog | Docking | DocuWorks | Docuworks SDK | Drag&Drop | Evernote | EXCEL | Firebird | FireMonkey | Game | General | Generics | Google Earth COM API | Google Maps | Google SketchUp | Graphic | IDE | Imm | Indy | InstallAware Express6 | InterBase Admin | JWW | Microsoft SQL Server | MyBase | OnMouseDown | Oracle XE | Paradox | PreviewHandler | PrintDialog | PrintPreviewDialog | PropertyGrid | PSDファイル | Ribbon Controls | RichTextBox | Servers | SubClass | TAction | TActionList | TAnimate | TButton | TCategoryButtons | TClientDataSet | TComboBox | TComboBoxEx | TCustomEdit | TDBGrid | TDockTabSet | TDrawGrid | TEdit | TExcelApplication | TFont | TForm | third party | TImage | TLabel | TList | TListBox | TListView | TMemo | TOpenDialog | TOutlookApplication | TPageControl | TPanel | TRichEdit | TShellResources | TStringGrid | TTabControl | TToolBar | TToolButton | TTreeView | TWebBrowser | Update | VCL Styles | WinInet | XE2 | XPman | オープン配列パラメータ | グループ化 | トランスレーションマネージャー | ファイル処理 | ファイル名処理 | 動的配列 | 投票 | 文字列処理 | 日本語入力 | 暗号 | | 音声合成利用