お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"タイトルバーの高さなどを変える"



 ディスプレイドライバの不具合等で画面のプロパティがうまく保存できない
場合に、その場しのぎで自分で変えてしまう例です。
 どうしてもだめなマシンだけRegEditを使ってレジストリに書いておけば、
普通に不具合なく動いている機械では勝手に値を変えてしまわないで済みます。



// フォームを作ってからだとハングすることあり。
// これでもうまくいかない場合(ものすごく時間がかかる)原因不明
// Key   HKEY_CURRENT_USER\Software\MyApps\Machineに
// 値    CAPTIONHEIGHT(文字列で) 16 とか書く

var
  NonClientMetrics: TNonClientMetrics;  //NONCLIENTMETRICS構造体
  inif: TRegInifile;

initialization
  inif := TRegInifile.Create('Software\MyApps');
  try
    NonClientMetrics.cbSize := Sizeof(TNONCLIENTMETRICS);

    SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0,
                         @NonClientMetrics, 0);
    NonClientMetrics.iCaptionHeight :=
        inif.ReadInteger('Machine','CAPTIONHEIGHT', 0);
    if NonClientMetrics.iCaptionHeight <> 0 then begin
      NonClientMetrics.iMenuHeight := NonClientMetrics.iCaptionHeight;
      SystemParametersInfo(SPI_SETNONCLIENTMETRICS, 0,
                         @NonClientMetrics,
                         SPIF_UPDATEINIFILE or SPIF_SENDWININICHANGE);
    end;
  finally
    inif.Free;
  end;



                                                  TN(CQJ01721)
 


- FDELPHI  MES(16):玉石混淆みんなで作るSample蔵【見本蓄積】 00/12/03 -

Original document by TN            氏 ID:(CQJ01721)


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum