[delphi-users:5203] TreeView1の表示の仕方を変更することはできませんか?

61 views
Skip to first unread message

nagao

unread,
Jun 18, 2019, 7:23:53 AM6/18/19
to delphi...@freeml.com
nagaoです。いつも教えて頂きありがとうございます。

TreeView1: TTreeViewのShowButtonsプロパティが true の場合,各親項目の左側にボタンが表示されるのですが、環境によって、このボタンの表示の仕方が異なるようです。
私が所有するパソコンでは、Window10+Delphi10.1 Berlinの環境では、このボタンの表示は展開しているときには>、閉じている時はVです。
Window7+Delphi2010の環境の場合と同じように、展開しているときには[-]、閉じている時は[+]に変えることはできないでしょうか?



MLホームページ: https://www.freeml.com/delphi-users

----------------------------------------------------------------------
【重要】必ずお読みください
■freeml byGMOサービス終了のお知らせ■
2019年12月2日(月)12:00をもちまして、
サービスの提供を終了させていただきます。
詳しくはこちら
http://ck.freeml.com/rd.php?cid=11272
------------------------------------------------------[freeml byGMO]--

あなたの街のチラシがいつでも無料で見放題!
チラシをクリックしてチラシが拡大されたらポイントゲット♪
まずはかんたん登録♪ -ポイントタウン-
https://www.pointtown.com/ptu/rd.cgi?cid=8912
----------------------------------------------------------------------

Mr.XRAY

unread,
Jul 3, 2019, 3:11:38 AM7/3/19
to delphi...@freeml.com
[delphi-users:5203] TreeView1の表示の仕方を変更することはできませんか?
へのレスです.

Mr.XRAY です.

> Window7+Delphi2010の環境の場合と同じように

Windows 7 + Delphi 2010 の環境では,デフォルトでは,
TTreeView の展開 / 折りたたみのボタンは矢印 (三角形) になるハズです.
つまり,テーマによる描画となるハズですが・・・


動作確認に使用したコード
新規にプロジェクトを作成して TTreeView (ティー・ツリービュー) を配置

procedure TForm1.FormCreate(Sender: TObject);
var
LRoot : TTreeNode;
LNode : TTreeNode;
LLoopI : integer;
LLoopJ : integer;
LLoopK : integer;
begin
for LLoopJ:= 0 to 4 do begin
LRoot:=TreeView1.Items.Add(nil,IntToStr(LLoopJ));
for LLoopI:= 0 to 2 do begin
LNode := TreeView1.Items.AddChild(LRoot, Format('Child %d.%d',
[LLoopJ,LLoopI]));
if LLoopI = 1 then begin
for LLoopK := 1 to 3 do begin
TreeView1.Items.AddChild(LNode, Format('Child-Child %d',
[LLoopK]));
end;
end;
end;
end;
end;

nagao

unread,
Jul 3, 2019, 7:36:00 AM7/3/19
to delphi...@freeml.com
Mr.XRAYさん、こんばんは。nagaoです.
レスくださいましてありがとうございます。

お知らせくださいました動作確認コードを私の持っている
Windows 7 + Delphi 2010 のパソコンで動作テストした結果は、
TTreeView の展開 / 折りたたみのボタンは[-][+]であります。
Mr.XRAYさんのWindows 7 + Delphi 2010 の環境のパソコンでは
矢印 (三角形) なのでしょうか?

また、お知らせくださいました動作確認コードを私の持っている
Window 10 + Delphi 10.1 Berlinのパソコンで動作テストした結果は、
TTreeView の展開 / 折りたたみのボタンは矢印 (三角形) であります。
これを[-][+]に変わることは、できないということでしょうか?




MLホームページ: https://www.freeml.com/delphi-users

----------------------------------------------------------------------
スマホアプリ版で100万ダウンロード突破の
「キャプテン翼ZERO~決めろ!ミラクルシュート~」
HTML5ゲームプラットフォーム「ゲソてん byGMO」にて、
PCブラウザ版を好評配信中!
https://gesoten.com/games/genre/sports/tsubasa-zero

Mr.XRAY

unread,
Jul 6, 2019, 3:04:25 AM7/6/19
to delphi...@freeml.com
[delphi-users:5221] Re:TreeView1の表示の仕方を変更することはできません
か? へのレスです.

Mr.XRAY です.

> Mr.XRAYさんのWindows 7 + Delphi 2010 の環境のパソコンでは
> 矢印 (三角形) なのでしょうか?

> 新規にプロジェクトを作成して TTreeView (ティー・ツリービュー) を配置

ですから,当たり前と言うか,当然です.{+] [-] になるのは,
おそらく全世界で nagao さんの Delphi 2010 だけです.

※ Windows 7 の Aero が無効の時は [+] [-] になることがあります.
※ 私の場合は,「・・・の環境のパソコンでは」ではなく
 「・・・の環境では」です.Windows 7 での動作結果です.
 


MLホームページ: https://www.freeml.com/delphi-users

----------------------------------------------------------------------
【重要】必ずお読みください
■freeml byGMOサービス終了のお知らせ■
2019年12月2日(月)12:00をもちまして、
サービスの提供を終了させていただきます。
詳しくはこちら
http://ck.freeml.com/rd.php?cid=11272

Mr.XRAY

unread,
Jul 8, 2019, 10:45:32 AM7/8/19
to delphi...@freeml.com
[delphi-users:5221] Re:TreeView1の表示の仕方を変更することはできません
か? へのレスです.

Mr.XRAY です.

>これを[-][+]に変わることは、できないということでしょうか?

いちいち書く必要はありません.
Delphi 2007 以降,この仕様に関する動作は全て同じです.
Delphi 2010 の問題が解決すれば解決します.

dacho

unread,
Jul 8, 2019, 11:16:08 AM7/8/19
to delphi...@freeml.com
こんにちは。

Windows 10 / Delphi XE7 ですが、プロジェクトオプションの
「アプリケーション」で「ランタイムテーマ」を「未指定」に
変更すると[+][-]のボタンに変わりました。

ただし、アプリケーション内の他のコントロールも立体的な
古いデザインになりました。

nagao

unread,
Jul 8, 2019, 6:23:36 PM7/8/19
to delphi...@freeml.com

Mr.XRAYさん、dachoさん、こんにちは。nagaoです。
色々と教えて頂きありがとうございました。



MLホームページ: https://www.freeml.com/delphi-users

----------------------------------------------------------------------
スマホアプリ版で100万ダウンロード突破の
「キャプテン翼ZERO~決めろ!ミラクルシュート~」
HTML5ゲームプラットフォーム「ゲソてん byGMO」にて、
PCブラウザ版を好評配信中!
https://gesoten.com/games/genre/sports/tsubasa-zero

Mr.XRAY

unread,
Jul 9, 2019, 1:41:44 AM7/9/19
to delphi...@freeml.com
[delphi-users:5224] Re: TreeView1の表示の仕方を変更することはできません
か? へのレスです.

dachoさん、こんにちは,Mr.XRAY です.

>Windows 10 / Delphi XE7 ですが、プロジェクトオプションの
>「アプリケーション」で「ランタイムテーマ」を「未指定」に
>変更すると[+][-]のボタンに変わりました。

既に書きましたが Delphi 2007 以降では Theme (テーマ) による描画が
デフォルトで,矢印 (三角形) になりますが,テーマを無効 (未指定)にすると
[+] [-] になります.

nagao さんの場合も

> 新規にプロジェクトを作成して TTreeView (ティー・ツリービュー) を配置

で,10 分もあればデフォルトの描画を確認できると思ったので,
そこから説明しようと考えていました.
しかし,残念ですがデフォルトのテーマによる描画にならないと言います.
本人の主張ですからどうにも・・・

>ただし、アプリケーション内の他のコントロールも立体的な
>古いデザインになりました。

そうなんです.配置した TTreeview の名前が Treeview1 の場合
フォームの OnCreate イベント等で以下のコードを実行してみてください.
テーマを有効にしたままで Treeviwe1 のテーマだけを無効にできます.

SetWindowTheme(TreeView1.Handle, nil, nil);

もし興味があけば [ delphi TTreeview SetWindowTheme ] のキーワード等で
ネット検索してみてください.

nagao

unread,
Jul 9, 2019, 3:37:40 AM7/9/19
to delphi...@freeml.com
Mr.XRAYさん、こんにちは。nagaoです。

>そうなんです.配置した TTreeview の名前が Treeview1 の場合
>フォームの OnCreate イベント等で以下のコードを実行してみてください.
>テーマを有効にしたままで Treeviwe1 のテーマだけを無効にできます.
>SetWindowTheme(TreeView1.Handle, nil, nil);
お知らせいただきました、上記の方法で[+] [-]に変わることを確認しました。
ありがとうございました。




MLホームページ: https://www.freeml.com/delphi-users

----------------------------------------------------------------------
スマホアプリ版で100万ダウンロード突破の
「キャプテン翼ZERO~決めろ!ミラクルシュート~」
HTML5ゲームプラットフォーム「ゲソてん byGMO」にて、
PCブラウザ版を好評配信中!
https://gesoten.com/games/genre/sports/tsubasa-zero

Mr.XRAY

unread,
Jul 9, 2019, 6:38:37 AM7/9/19
to delphi...@freeml.com
[delphi-users:5227] Re:TreeView1の表示の仕方を変更することはできません
か? へのレスです.

>お知らせいただきました、上記の方法で[+] [-]に変わることを確認しました。
>ありがとうございました。

nagao さんにレスしたわけではないのですが・・・
でも折角また現れたのですから,nagao さんに確認したいことがあります.
過去にも何回かありましたが,

> 新規にプロジェクトを作成して TTreeView (ティー・ツリービュー) を配置

と私が最初のレスに書いています.
間違いなく「新規にプロジェクトを作成」してテストしたんですよね ?


MLホームページ: https://www.freeml.com/delphi-users

----------------------------------------------------------------------
【重要】必ずお読みください
■freeml byGMOサービス終了のお知らせ■
2019年12月2日(月)12:00をもちまして、
サービスの提供を終了させていただきます。
詳しくはこちら
http://ck.freeml.com/rd.php?cid=11272

DEKO

unread,
Jul 9, 2019, 8:01:53 AM7/9/19
to delphi...@freeml.com
こんにちは。

Windows 7 + Delphi 2010 で TreeView の展開ボタンが
[+][-] で表示されるのは、

・Windows 7 の設定でクラシック表示にしている。
・Delphi 2010 のプロジェクトオプションでランタイムテーマが有効でない。

このいずれかだと思います。

また、[V][>] はテーマでの描画であり、
クラシック表示はWindows 8 以降で廃止されています。

そういった事情から、SetWindowTheme() を使って TreeView の
展開ボタンを [+][-] にするのは個人的にはオススメしません。
(むしろ Windows 7 を [V][>] にすればいいじゃないかと)

Mr.XRAY さんの言われている通り、
古いプロジェクトを持ってくるとテーマ描画がおかしくなる事があります。
IDE での設計時だとクラシックなのに実行するとテーマで描画されたり...。

新規プロジェクトでの検証は、
いわゆる "おま環" を極力排除するために必要です。

--
富永英明 (DEKO)
-----------------------------
http://ht-deko.com/
de...@ht-deko.minim.ne.jp
-----------------------------


MLホームページ: https://www.freeml.com/delphi-users

----------------------------------------------------------------------
スマホアプリ版で100万ダウンロード突破の
「キャプテン翼ZERO~決めろ!ミラクルシュート~」
HTML5ゲームプラットフォーム「ゲソてん byGMO」にて、
PCブラウザ版を好評配信中!
https://gesoten.com/games/genre/sports/tsubasa-zero

nagao

unread,
Jul 9, 2019, 7:11:37 PM7/9/19
to delphi...@freeml.com
Mr.XRAYさん、こんにちは。nagaoです。

>間違いなく「新規にプロジェクトを作成」してテストしたんですよね ?
はい。新規にプロジェクトを作成して下記のテストプログラムでテストしました。

unit Unit1;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ComCtrls;

type
TForm1 = class(TForm)
TreeView1: TTreeView;
procedure FormCreate(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

uses uxTheme;

procedure TForm1.FormCreate(Sender: TObject);
var
LRoot : TTreeNode;
LNode : TTreeNode;
LLoopI : integer;
LLoopJ : integer;
LLoopK : integer;
begin
SetWindowTheme(TreeView1.Handle, nil, nil);

for LLoopJ:= 0 to 4 do begin
LRoot:=TreeView1.Items.Add(nil,IntToStr(LLoopJ));
for LLoopI:= 0 to 2 do begin
LNode := TreeView1.Items.AddChild(LRoot, Format('Child %d.%d',
[LLoopJ,LLoopI]));
if LLoopI = 1 then begin
for LLoopK := 1 to 3 do begin
TreeView1.Items.AddChild(LNode, Format('Child-Child %d',
[LLoopK]));
end;
end;
end;
end;
end;

end.

Mr.XRAY

unread,
Jul 9, 2019, 9:41:37 PM7/9/19
to delphi...@freeml.com
[delphi-users:5230] Re:TreeView1の表示の仕方を変更することはできません
か? へのレスです.

Mr.XRAY です.
>
>はい。新規にプロジェクトを作成して下記のテストプログラムでテストしました。

Windows 7 + Delphi 2010 の環境でのテストのことなんですが・・・・


MLホームページ: https://www.freeml.com/delphi-users

----------------------------------------------------------------------
スマホアプリ版で100万ダウンロード突破の
「キャプテン翼ZERO~決めろ!ミラクルシュート~」
HTML5ゲームプラットフォーム「ゲソてん byGMO」にて、
PCブラウザ版を好評配信中!
https://gesoten.com/games/genre/sports/tsubasa-zero

じゃぺ

unread,
Jul 9, 2019, 10:44:31 PM7/9/19
to delphi...@freeml.com
これってDelphi2010じゃないですよね。(ユニット名のプレフィクスはXE2からだったはずなので)
(google groupぅ…)

nagao

unread,
Jul 10, 2019, 8:08:03 AM7/10/19
to delphi...@freeml.com
こんばんは。nagaoです。

>これってDelphi2010じゃないですよね。(ユニット名のプレフィクスは
>XE2からだったはずなので)
>Windows 7 + Delphi 2010 の環境でのテストのことなんですが・・・・
私の最初の発言が不適切であったので、皆様を混乱させてしまったようで
申し訳ありませんが、私のWindows 7 + Delphi 2010 のAパソコンでは、
TreeViewの展開ボタンが[+][-]表示であるのに対して、Windows 10 +
Delphi 10.1 BerlinのBパソコンでは当初は矢印表示でした。
このBパソコンも[+][-]表示にさせたいというのが私の希望している
ことでした。
ですから、[delphi-users:5230]のテストプログラムは、この希望が叶え
られることを確認するためにBパソコンで作成し、そして希望が叶えられ
ることを確認しました。

念のためWindows 7 + Delphi 2010 のAパソコンでも、下記のテスト
プログラムを作成してみました。
そして、[表示]-[デスクトップの配置]の所は、Classic Unlocked と
Default Layoutの2つの選択肢、そして[プロジェクト]-[オプション]
-[アプリケーション]-[ランタイムテーマを有効にする(R)]の所は
チェックマークを付ける場合と付けない場合の2つの選択肢で、
計4つのケースで動作テストしたのですが、
SetWindowTheme(TreeView1.Handle, nil, nil);
を無効にしているにも拘わらず、動作結果はすべて[+][-]表示でした。

これに対して、Bパソコンでは,[delphi-users:5230]のテストプログラムの
SetWindowTheme(TreeView1.Handle, nil, nil);
の行を無効にして動作テストしたところ、[ランタイムテーマの有効]に
チェックマークを付けた時は、[クラシック(ドッキングなし)]の場合も
[デフォルトレイアウト]の場合も矢印表示であり、[ランタイムテーマの有効]
にチェックマークを付けないた時は、[クラシック(ドッキングなし)]の場合
も[デフォルトレイアウト]の場合も[+][-]表示でした。
『Delphi 2007 以降,この仕様に関する動作は全て同じ』とのことですが、
上記の通り、なぜか私のAパソコンとBパソコンは違う動きをします。

<Aパソコン用テストプログラム>
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls;

type
TForm1 = class(TForm)
TreeView1: TTreeView;
procedure FormCreate(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

{$R *.dfm}

//uses uxTheme;

procedure TForm1.FormCreate(Sender: TObject);
var
LRoot : TTreeNode;
LNode : TTreeNode;
LLoopI : integer;
LLoopJ : integer;
LLoopK : integer;
begin
// SetWindowTheme(TreeView1.Handle, nil, nil);

for LLoopJ:= 0 to 4 do begin
LRoot:=TreeView1.Items.Add(nil,IntToStr(LLoopJ));
for LLoopI:= 0 to 2 do begin
LNode := TreeView1.Items.AddChild(LRoot, Format('Child %d.%d',
[LLoopJ,LLoopI]));
if LLoopI = 1 then begin
for LLoopK := 1 to 3 do begin
TreeView1.Items.AddChild(LNode, Format('Child-Child %d',
[LLoopK]));
end;
end;
end;
end;
end;

end.



DEKO

unread,
Jul 10, 2019, 9:19:40 AM7/10/19
to delphi...@freeml.com
こんにちは。

Aパソコン:

・Windows 7 + Delphi 2010
・TreeViewの展開ボタンが[+][-]

Bパソコン:
・Windows 10 + Delphi 10.1 Berlin
・TreeViewの展開ボタンが[V][>]

Windows 7 でも Windows 10 でも TreeViewの展開ボタンが[V][>] なのがデフォルトです。
Windows 7 + Delphi 2010 で展開ボタンが[+][-] になる可能性があるのは、

・Windows 7 の設定でクラシック表示にしている。
・Delphi 2010 のプロジェクトオプションでランタイムテーマが有効でない。

このいずれかです。

> 念のためWindows 7 + Delphi 2010 のAパソコンでも、
> 下記のテストプログラムを作成してみました。

やってなかったんですね...まぁそれはいいとして、
新規作成したのであれば、プロジェクトオプションでランタイムテーマが
有効になっているハズです。にもかかわらず展開ボタンが[+][-] になるのは、
nagao さんのAパソコンでは "クラシック表示になっている" としか考えられません。

> デスクトップの配置
この "Classic Undocked" と "Windows 7 のクラシック表示" は別の話です。

nagao さんのAパソコンでは "OS が" クラッシック表示になっているのではないですか?
逆に言うとデスクトップテーマが無効なのではありませんか?

[Windows 7 をクラッシック表示にするには]
https://windowsjapan.wordpress.com/2010/04/30/windows-7-%E3%82%92%E3%82%AF%E3%83%A9%E3%83%83%E3%82%B7%E3%83%83%E3%82%AF%E8%A1%A8%E7%A4%BA%E3%81%AB%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF/

[Windowsをクラシックスタイルにする]
https://www.pc-master.jp/sousa/classic.html


繰り返しますが、[V][>] はテーマでの描画であり、
クラシック表示は Windows 8 以降で廃止されています...なので、
[+][-] にするのではなく、[V][>] に合わせる (テーマ描画に任せる) のが
いいと個人的には思います。

--
富永英明 (DEKO)
-----------------------------
http://ht-deko.com/
de...@ht-deko.minim.ne.jp
-----------------------------


MLホームページ: https://www.freeml.com/delphi-users

----------------------------------------------------------------------
スマホアプリ版で100万ダウンロード突破の
「キャプテン翼ZERO〜決めろ!ミラクルシュート〜」
HTML5ゲームプラットフォーム「ゲソてん byGMO」にて、
PCブラウザ版を好評配信中!
https://gesoten.com/games/genre/sports/tsubasa-zero

DEKO

unread,
Jul 10, 2019, 10:43:46 AM7/10/19
to delphi...@freeml.com
補足:

・"クラシック表示" は Windows 2000 以前の見た目になる。
 XP 以降ではテーマによる描画がデフォルト。

・"クラシック表示" とは Windows のデスクトップテーマ設定の
 事であり、Delphi IDE の "デスクトップの配置" の事ではない。

・"クラシック表示" は Windows 8 以降で廃止されている (常にテーマ描画)。

・テーマで描画される限り、Windows 7 / 8 / 10 のいずれも、
 TreeViewの展開ボタンは [V][>] になる。
 
・TreeViewの展開ボタンが [+][-] になるのは、
  1. OS のデスクトップテーマが "クラシック表示" である。
  2. アプリケーションが "ランタイムテーマ" に対応していない。
 このいずれか。
 
・"クラシック表示" だと OS 全体でテーマによる描画が行われない。

・OS のデスクトップテーマが有効 (クラシック表示でない) だったとしても、
 アプリケーション側に適切なアプリケーションマニフェストがないと、
 テーマによる描画は行われない。
 (Delphi IDE ではプロジェクトオプションの "ランタイムテーマ" で設定)    

・もちろん、いくらアプリケーション側でテーマ描画に対応していても、
 OS のデスクトップテーマ設定が "クラシック表示" になっていれば、
 テーマによる描画は行われない。

・SetWindowTheme(TreeView1.Handle, nil, nil);
 は、指定したコントロールのテーマ描画を行わないようにする設定。


nagao さんの環境は、


Aパソコン:
・Windows 7 + Delphi 2010
・デスクトップテーマがオフ (クラシック表示) <- デフォルトはオン
・アプリケーション (Delphi 2010) のランタイムテーマがオン
・TreeViewの展開ボタンが [+][-] になる。


Bパソコン:
・Windows 10 + Delphi 10.1 Berlin
・デスクトップテーマがオン (クラシック表示にはできないので)
・アプリケーション (Delphi 10.1 Berlin) のランタイムテーマがオン
・TreeViewの展開ボタンが [V][>] になる。

なのではないですか?だとしたら、TreeView の展開ボタンを
[+][-] に合わせるのはやめといた方がよくないですか?
VCL Style も適用できなくなっちゃいますし...

[VCL スタイルの概要]
http://docwiki.embarcadero.com/RADStudio/ja/VCL_%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB%E3%81%AE%E6%A6%82%E8%A6%81

Mr.XRAY

unread,
Jul 11, 2019, 2:14:05 AM7/11/19
to delphi...@freeml.com
[delphi-users:5235] Re: TreeView1の表示の仕方を変更することはできません
か? へのレスです.

Mr.XRAY です.

>・"クラシック表示" は Windows 2000 以前の見た目になる。

こんな感じですね.

http://mrxray.on.coocan.jp/Delphi/Others/000-001.htm


MLホームページ: https://www.freeml.com/delphi-users

----------------------------------------------------------------------
【重要】必ずお読みください
■freeml byGMOサービス終了のお知らせ■
2019年12月2日(月)12:00をもちまして、
サービスの提供を終了させていただきます。
詳しくはこちら
http://ck.freeml.com/rd.php?cid=11272

nagao

unread,
Jul 12, 2019, 1:33:29 AM7/12/19
to delphi...@freeml.com
DECOさん、こんにちは。nagaoです。お世話になります。

>やってなかったんですね...まぁそれはいいとして、
みなさんから沢山教えて頂いているのに、今回は、適格な返事を差し上げ
てきませんでした。すみませんでした。

>"クラシック表示" とは Windows のデスクトップテーマ設定の
>事であり、Delphi IDE の "デスクトップの配置" の事ではない。
私は両者を混同していました。
教えて頂いた要領で、Windows 7 + Delphi 2010の Aパソコンで正しく
"クラシック表示" でなくしたところ,Delphi 2010) のランタイムテーマ
がオンの場合は、TreeViewの展開ボタンがデフォルトの[V][>]になりました。

>そういった事情から、SetWindowTheme() を使って TreeView の>
>展開ボタンを [+][-] にするのは個人的にはオススメしません。
>(むしろ Windows 7 を [V][>] にすればいいじゃないかと)
>
>Mr.XRAY さんの言われている通り、
> 古いプロジェクトを持ってくるとテーマ描画がおかしくなる事があります。
>IDE での設計時だとクラシックなのに実行するとテーマで描画されたり...。
>
> 新規プロジェクトでの検証は、
>いわゆる "おま環" を極力排除するために必要です。
Window10 + Delphi 10.1 BerlinのBパソコンで、ランタイムテーマがオン
の環境で、[delphi-users:5230]で記載したテストプログラムを実行すると
私が希望しているようにTreeViewの展開ボタンが [+][-]表示になります。
"おま環"は極力排除すべきとのことですが、
 SetWindowTheme(TreeView1.Handle, nil, nil);
のコードで影響をうけるのはTreeView1だけで、他のコントロールはテーマ
描画が行われるので、このテストプラムと同じ方式で、Bパソコンで
不特定のユーザー向けのソフトを開発しても問題ないのではないでしょうか?

>[+][-] に合わせるのはやめといた方がよくないですか?
>VCL Style も適用できなくなっちゃいますし...
私はVCL Styleの所は手を付けず標準のままにしておきたいと思います。
例えば、Window10 + Delphi 10.1 BerlinのBパソコンで、
[プロジェクト]-[オプション]-[アプリケーション]-[表示]
で Lightを選択したところ、ランタイムテーマがオンの環境でも
-私が希望しているようにTreeViewの展開ボタンが [+][-]表示になりました。
しかし、この方式の場合は、TreeView以外のコントロールの中にもデフォルト
でない動きをするものがあるでしょうから、この方式は採用したくありません。



MLホームページ: https://www.freeml.com/delphi-users

----------------------------------------------------------------------
スマホアプリ版で100万ダウンロード突破の
「キャプテン翼ZERO~決めろ!ミラクルシュート~」
HTML5ゲームプラットフォーム「ゲソてん byGMO」にて、
PCブラウザ版を好評配信中!
https://gesoten.com/games/genre/sports/tsubasa-zero

nagao

unread,
Jul 12, 2019, 1:44:50 AM7/12/19
to delphi...@freeml.com
Mr.XRAY です.こんにちは。nagaoです。

今まで"クラシック表示" のことを誤解していました。

>こんな感じですね.
>http://mrxray.on.coocan.jp/Delphi/Others/000-001.htm
このサイトで3つのTreeViewの表示例を紹介していただきましが、
私のWindows 7 + Delphi 2010の Aパソコンでも、誤解が解けたあとは、
紹介頂きました3つのTreeViewの表示例を再現させることができました。
色々と教えて頂き、ありがとうございました。

DEKO

unread,
Jul 12, 2019, 2:00:07 AM7/12/19
to delphi...@freeml.com
こんにちは。

> このテストプラムと同じ方式で、Bパソコンで
> 不特定のユーザー向けのソフトを開発しても問題ないのではないでしょうか?

はい、問題はないのですが、テーマで描画しないという動作は
"デフォルトの動作ではない" 事は知っておくべきだと思います。


> しかし、この方式の場合は、TreeView以外のコントロールの中にもデフォルト
> でない動きをするものがあるでしょうから、この方式は採用したくありません。

SetWindowTheme() で [+][-] にするのも "デフォルトでない動き" なのですが。

--
富永英明 (DEKO)
-----------------------------
http://ht-deko.com/
de...@ht-deko.minim.ne.jp
-----------------------------


nagao

unread,
Jul 12, 2019, 5:54:45 AM7/12/19
to delphi...@freeml.com
DEKOさん、こんばんは。nagaoです。
色々と教えて頂き、ありがとうございました。

x_shinshu

unread,
Jul 12, 2019, 1:12:36 PM7/12/19
to delphi...@freeml.com
nagaoさんは「国宝級」なんですって。

https://archive.is/cp9PZ

Delphi の回答者さまがたは、こんなウラ掲示板でやり取りされていて
気に食わない質問者には容赦ないです。
ちゃんと回答を出していただくには、彼らの期限を損ねないよう、丁寧に質問しなければいけません。


freeml でのメーリングリストは終わり Google Group に切り替わるようですが、回答者様のメンツに
入れ替わりはないでしょうから、今後も連中にタダで回答してもらうためにも、ご機嫌を取り、褒めちぎり、崇めていかねばいけません。

nagaoさん以外の方も、よくネタにされていますから、みなさんもウラ掲示板や discord で嫌がられていないか、確認を怠らないようにしたほうがよろしいかと思います。

.... イジメってやだね。



MLホームページ: https://www.freeml.com/delphi-users

----------------------------------------------------------------------
スマホアプリ版で100万ダウンロード突破の
「キャプテン翼ZERO~決めろ!ミラクルシュート~」
HTML5ゲームプラットフォーム「ゲソてん byGMO」にて、
PCブラウザ版を好評配信中!
https://gesoten.com/games/genre/sports/tsubasa-zero
Reply all
Reply to author
Forward
0 new messages