喫茶XRAYトップページ

[スレッド全体
]

[7895] Googleでオンラインヘルプを検索返信 削除
2014/9/6 (土) 08:30:10 Mr.XRAY
Delphi XE7 のリリースを記念して,
とっておきの「技」(*) を紹介します.

[Google 検索エンジンでオンラインヘルプを検索]
http://mrxray.on.coocan.jp/Delphi/Others/A_Delphi_OnlieHelphtm.html#08

(*) 個人の見解です(^^;


[8014] 検索の例?返信 削除
2014/9/25 (木) 19:09:02 Mr.XRAY
> [Google 検索エンジンでオンラインヘルプを検索]
> http://mrxray.on.coocan.jp/Delphi/Others/A_Delphi_OnlieHelphtm.html#08


例えば,
[TListViewの名前列の空白箇所クリック時選択させない]
http://hpcgi3.nifty.com/e-papy/DelphiBBS/wwwlng.cgi?print+201409/14090009.txt

という問題の場合,
VCL TListView 選択 site:http://docwiki.embarcadero.com/Libraries/XE7/ja/
で検索してみます.
https://www.google.co.jp/search?num=50&site=webhp&q=VCL+TListView+%E9%81%B8%E6%8A%9E+site%3Ahttp%3A%2F%2Fdocwiki.embarcadero.com%2FLibraries%2FXE7%2Fja%2F&oq=VCL+TListView+%E9%81%B8%E6%8A%9E+site%3Ahttp%3A%2F%2Fdocwiki.embarcadero.com%2FLibraries%2FXE7%2Fja%2F&gs_l=serp.12...0.0.2.67.0.0.0.0.0.0.0.0..0.0....0...1c..54.serp..4.0.0._9j-lsA0ShY

そして,ヒットしたページで「選択」を検索してみる.といった具合でしょうか.
Google で検索する際,「空白」という語句は入れていません.
質問の文章における「空白」意味は少し(かなり?)曖昧な表現です.

あたり前ですが,検索したページを読んだだけでは,
問題の解決になるわけではありません.
あくまでも「検索の例」です.

大抵の場合,調べるのはプロパティ,メソッド,イベントのことが多いと思います.
したがって,しつこいようですが,あくまでも「検索の例」です.


[8016] ランイムテーマ有効時の再描画の問題返信 削除
2014/9/26 (金) 01:26:11 Mr.XRAY
> あたり前ですが,検索したページを読んだだけでは,
> 問題の解決になるわけではありません.
> あくまでも「検索の例」です.


深読みしてしまう方もいるかも知れませが,本当に「検索の例」です.
質問の文章だけでは,私には状況が理解できません.

某掲示板での質問の内容とは直接は関係ありませんが,
参考までに,「テーマをWindow7ベーシック」で思い出したのですが,
TListView に限らず,ランイムテーマを有効にすると,TButton 等でも
再描画の問題が発生することがあります.
そういう時は,コントロールに対して Invalidateとか Refresh を実行するしか
ないでしょうね.
掲示板等のスレッドを読んで,こういうことを思い出せば,知識の再確認が
できます.


[8027] :ランイムテーマとは返信 削除
2014/9/27 (土) 20:52:47 Mr.XRAY
大変失礼しました.
当店のお客様の中には,ランタイムテーマには全く関係ない,
ふる〜い Delphi を使っている方もいらっしゃいます.
そこで...

ランタイムテーマは,Windows XP 以降のビジュアルスタイルに対応した機能です.
ランタイムテーマを有効にすると,下図のようになります.
最初の図が,ランタイムテーマが無効の時,その下が有効な場合です.
Windows 7 U64(SP1) + Delphi XE5 Pro です.

えっ? 何ですか? 嫌味に聞こえる? それは多分気のせいです(笑)


[8028] Re::ランイムテーマとは返信 削除
2014/9/27 (土) 20:54:05 Mr.XRAY
> ランタイムテーマを有効にすると,下図のようになります.
> 最初の図が,ランタイムテーマが無効の時,その下が有効な場合です.
> Windows 7 U64(SP1) + Delphi XE5 Pro です.


Windows 8.1 で実行した場合です.


[8029] ランイムテーマの設定返信 削除
2014/9/27 (土) 20:55:26 Mr.XRAY
Delphi XE5 Pro の場合です.
[プロジェクト] [オプション] ダイアログの [アプリケーション] で設定します.


[8030] :ランイムテーマが有効かを判定返信 削除
2014/9/27 (土) 22:03:31 Mr.XRAY
実行時にランタイムテーマが有効かを判定する方法です.
uses に Themes を追加して,例えば以下のコードで判定できます.

procedure TForm1.Button1Click(Sender: TObject);
begin
  if Themes.ThemeServices.Enabled then begin
    ShowMessage('テーマ有効');
  end else begin
    ShowMessage('テーマ無効');
  end;
end;

stackoverflow に次のようなコードがありました.
これを利用したコードです.
同じく uses に Themes が必要です.

http://stackoverflow.com/questions/2879820/importing-specific-in-my-case-themes-themesservice-themesenabled-function

function ThemesEnabled :Boolean;
const
  ComCtlVersionIE6 = $00060000;
var
  ThemeLib      : THandle;
  IsThemeActive : function: Boolean; stdcall;
  IsAppThemed   : function: Boolean; stdcall;
begin
  Result := GetFileVersion('comctl32.dll') >= ComCtlVersionIE6;
  if not Result then exit;

  ThemeLib := LoadLibrary('uxtheme.dll');
  try
    if ThemeLib > 0 then begin
      IsAppThemed   := GetProcAddress(ThemeLib, 'IsAppThemed');
      IsThemeActive := GetProcAddress(ThemeLib, 'IsThemeActive');
      Result := IsAppThemed and IsThemeActive;
    end else begin
      Result:=False;
    end;
  finally
   FreeLibrary(ThemeLib);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  if ThemesEnabled then begin
    ShowMessage('テーマ有効');
  end else begin
    ShowMessage('テーマ無効');
  end;
end;


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82