Delphi Programming / Object Pascal
サイトのトップページへ リンクのページへ ロゴマーク
[掲載 2022年11月10日] [更新 2022年11月10日] Delphi 一般・その他
   
ヒントと警告のメッセージ
動作確認等 Windows 10 ビルド 19043 Pro 64 bit + Delphi XE5(UP2) Pro VCL-32
[整理番号 - 0922]







ヒントと警告のメッセージ


プロジェクトをコンパイルすると,メッセージペインに,エラー以外にも以下のようなヒントや警告が表示されることがあります.本ページは,それらのヒントや警告を表示しないようにする方法についての記事です.
それらのヒントや警告を非表示にすることが必ずしも適切な対処方法とは限りません.参考リンクの最初の記事で確認してください.


ユニット 'Vcl.FileCtrl' は特定のプラットフォームに固有のものです
文字列の暗黙のキャスト ('AnsiString' から 'string') '
'Point' はユニット 'System.Types' が USES リストで指定されていないため展開されません
FFilePath:private 部で宣言されていますが、クラス内でまったく使用されていません



オンラインヘルプの,エラー,ヒント,警告メッセージの一覧です.メッセージの番号でページ内を検索すると便利です.






01_コンパイルの進行状況とコンパイル終了時のダイアログ


プロジェクトをコンパイルすると,コンパイル中に以下のようなダイアログが表示されます.これは,コンパイルの進行状況を表すダイアログです.
コンパイルでエラーが発生しなくても,ヒントや警告があると,コンパイル終了後もこのダイアログが表示された状態になり,ヒントや警告の存在を確認することができます.これが,Delphi の IDE のデフォルトの設定です.
ヒントや警告は,[Shift] + [F9] でビルド (再構築) すると確認しやすくなります.



図1
コンパイル終了時のダイアログ

上のダイアログは,[ツール] [オプション] のダイアログで,[環境オプション] の右ペインの [コンパイルの進行状況を表示] のチェックを外すと現れなくなります.
上のダイアログで,[コンパイルの終了時に自動的に閉じる] をチェックしても,このダイアログは現れなくなります.



図2
[コンパイルの進行状況を表示] のチェックを外す

[コンパイルの終了時に自動的に閉じる] をチェックしてヒントダイアログを非表示にした場合は,レジストリの以下のキーの [ Auto Close Progress Dialog ] の値を False にすると,再度,進行状況のダイアログが現れるようになります.この時,[ツール] [オプション] のダイアログの,[環境オプション] の右ペインの [コンパイルの進行状況を表示] のチェックも確認します.
以下のキー名の 12.0 は,Delphi XE5 の場合です.


HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\12.0\Compiling







02_ユニット単位 / コード単位でヒントと警告のメッセージを非表示


ヒントや警告メッセージをメッセージペインに表示しないようにするには,コンパイル指令を記述します.警告全体,または警告の種類ごとにも設定できます.ヒントは種類別にできません.
メッセージの識別子の後に OFF を記述すれば,その警告のメッセージを表示しなくなります.ON にすれば,その警告メッセージを表示します.

対象のユニット全体で設定するには,ユニットの先頭にコンパイル指令を記述します.



全てのヒントメッセージと警告メッセージの表示を抑制する例です.
{$WARNINGS OFF} 指令と {$WARNINGS ON} 指令は,ユニット単位,関数や手続き単位だけで有効です.コード単位では使用できません.


{$HINTS OFF}
{$WARNINGS OFF}
unit Unit1;

interface

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

type
  TForm1 = class(TForm)


特定の警告メッセージの表示だけを抑制する例です.
{$WARN 識別子 OFF} という形式で記述します.


{$WARN SYMBOL_PLATFORM OFF}
{$WARN UNIT_PLATFORM OFF}
unit Unit1;

interface

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

type
  TForm1 = class(TForm)


コードまたはコードのブロック単位で制御するには,次のように,警告メッセージの OFF, ON のコンパイラ指令を記述します.


procedure TForm1.Button1Click(Sender: TObject);
var
  LText     : string;
  LAnsiText : AnsiString;
begin
  LAnsiText := 'ABC';
  {$WARN IMPLICIT_STRING_CAST OFF}
  LText := LAnsiText;;
  {$WARN IMPLICIT_STRING_CAST ON}
end;




03_プロジェクト単位でヒントと警告のメッセージを非表示


プロジェクト全体でヒントと警告のメッセージの表示 / 非表示を設定するには,[プロジェクト] [オプション] のダイアログで行います.
[ヒントと警告] の [ヒントの出力] を False にすると,ヒントメッセージを表示しくなります.[警告を出力] を False にすると,警告メッセージを表示しなくなります.
[警告を出力] の [+] ボタンをクリックすると,警告メッセージのリストが展開されます.そのリストで,警告のメッセージごとに表示 / 非表示の設定かできます.ヒントは,メッセージごとの設定はできません.




図3
プロジェクト全体の設定
  • [警告を出力] を [+] ボタンで展開すると,メッセージ単位で設定可能




04_[警告] W1030 間違ったコンパイル指令 : 'true'


この警告は,Delphi XE5 以降で表示されることがあります.
警告として,「[警告] W1030 間違ったコンパイル指令 : 'true」が発生した場合は,[プロジェクト] [オプション] でダイアログを表示して,コンパイルオプションを変更します.[コンパイル] の右ペインの [デバッグ情報] か True になっています.これを [デバッグ情報] に変更します.リストから選択できます.
以下の記事を参考にしてください.


 

図4
プロジェクトオプションを変更
  • [デバッグ情報] の値が [True] になっている
  • リストから [デバッグ情報] を選択する

Delphi XE5 よりも前ののバージョンの Delphi では,コンパイルオプションの [デバッグ情報] の値が [True] でした.Delphi XE5 からは [デバッグ情報] に変更されました.その結果,Delphi XE5 よりも前のバージョンで作成したプロジェクトを,Delphi XE5 以降でコンパイルすると警告が表示されます.