? Digao Dalpiaz News on Telegram



03/25/2024(バージョン6.7)(最小dzhtmltextバージョン:6.3 )
03/16/2024(バージョン6.6)
03/10/2024(バージョン6.5)
02/23/2024(バージョン6.4)
02/22/2024(バージョン6.3)
02/20/2024(バージョン6.2)
Lib{Platform}{Config}になります。ライブラリパスを確認してください。01/21/2024(バージョン6.1)(最小dzhtmltextバージョン:5.2 )
01/12/2024(バージョン6.0)(最小dzhtmltextバージョン:5.1 )
警告!!!多くのファイルが名前と場所を変更したため、以前のDAMコンポーネントフォルダーを削除して、以前のバージョンを完全にアンインストールしてください。
12/11/2023(バージョン5.2)
07/29/2023(バージョン5.1)
04/11/2023(バージョン5.0)(最小dzhtmltextバージョン:4.0 )
DamUnitNameプロパティでサポートされているサブフォルダー09/12/2021(バージョン4.16)
07/24/2021(バージョン4.15)
06/13/2021(バージョン4.14)
03/21/2021(バージョン4.13)
03/14/2021(バージョン4.12)
03/13/2021(バージョン4.11)
03/05/2021(バージョン4.10)
02/10/2021(バージョン4.9)
12/18/2020(バージョン4.8)
11/27/2020(バージョン4.7)
11/11/2020(バージョン4.6)
10/31/2020(バージョン4.5)
10/27/2020(バージョン4.4)
10/26/2020(バージョン4.3)(最小dzhtmltextバージョン:2.6 )
10/26/2020(バージョン4.2)
10/18/2020(バージョン4.1)(最小dzhtmltextバージョン:2.04 )
10/14/2020(バージョン4.0)
備考:
09/24/2020
08/11/2020
08/07/2020
08/03/2020
07/30/2020
07/21/2020
05/25/2020
<img:nnn>を使用)。 tdzhtmltextコンポーネントを更新する必要があります。05/03/2020
05/02/2020
DamParams 。これは、XE8以下のDelphiバージョンには必要です。これは、タイプサポートとして動的配列がなかったためです。System.ImageListユニット(デザインタイムパッケージ)からのImagelistを使用します。これは、XE8以下のDelphiバージョンでサポートされていないためです。AutoWidthプロパティを削除しました。これで、TDAMMSGコンポーネントに新しいプロパティFixedWidthがあるため、メッセージごとにカスタム幅を指定できます。コンポーネントは、固定幅がゼロ(デフォルト値)の場合、自動幅内部関数を保持します。CenterButtonsプロパティをデフォルトのFalseに変更しました。04/26/2020
<imgres:{resource_name}>タグを使用して、メッセージテキスト領域に画像を含めることができます。 PNG画像をアプリケーションリソースに追加し、タグを使用してメッセージに参照してください。この実装は、DZHTMLTEXTコンポーネントで、DAMが使用しています。 dzhtmltextコンポーネントを更新するだけで、この機能が利用可能になります。詳細については、dzhtmltext画像タグセクションをお読みください。重要:デザイン時には画像が表示されません。04/19/2020
10/07/2019
10/06/2019
10/05/2019
05/03/2019
02/11/2019
02/08/2019
02/07/2019
02/06/2019
02/05/2019
TDAMコンポーネントに新しいプロパティMessageColorとButtonscolorを追加して、メッセージダイアログのカスタマイズを許可します。
構築するほぼすべてのアプリケーションでは、メッセージダイアログを追加する必要があります。
Delphiは、ShowMessage、Messagedlg、MessageBoxなどのいくつかのオプションを提供します。
プロジェクトが大きくなると、主にメッセージに多くの行を記述する必要がある場合、多くのパラメーターを使用する必要がある場合、ダイアログはコードを台無しにする可能性があります。
メッセージの一部をフォーマットする必要がある場合は、カスタムフォームにラベルを追加する必要があります。これは本当に悪いかもしれません。
このメッセージを見てください:
begin
ShowMessage( ' The task was scheduled to run at the time: ' +aTime+ ' . ' +# 13 # 10 +
# 13 # 10 +
' Please, check the schedule at main board. ' +
' If you want to change schedule, find by ID # ' +IntToStr(IDNumber)+ ' . ' +# 13 # 10 +
# 13 # 10 +
' This task was created by user ' +aUserName+ ' . Only this user can edit this task profile. ' );
end ;それで、これは本当に醜いと思いますよね? ?
ダムでは、この同じメッセージを書くことができます: ?
begin
InfoTaskScheduled([aTime, IDNumber, aUserName]);
end ;このコンポーネントを使用すると、すべてのアプリケーションメッセージを「コンテナ」で管理できます。ウィザードクリエーターを使用してメッセージダイアログを作成して、メッセージ(太字、斜体、下線、フォント名、フォントサイズ、テキストの背景色、アライメントセンター、右アライメント、タブアライメント、クリック可能なリンクなどを使用)をフォーマットできるようにします。
メッセージボタン、アイコン、フォームタイトルなどを指定できます。
次に、メッセージの名前を指定します。そのため、メッセージ名でメソッドを呼び出すだけで、アプリケーションの任意の部分でメッセージを呼び出すことができます!
メッセージテキストにパラメーターを指定する場合、メッセージメソッドを呼び出す場合、テキストで置き換えるパラメーターを指定できます。
このコンポーネントの仕組みを知るために、このドキュメントを注意深くお読みください。 ?
DFMで保存されたすべてのメッセージをリストするダムコンテナ:

メッセージウィザードクリエーター、メッセージダイアログをカスタマイズします。

メッセージダイアログ:?

ショートカット
CTRL+Cメッセージフォームで利用でき、メッセージをクリップボードにコピーします。
まず、 dzhtmltextコンポーネントをインストールする必要があります。ここで入手してください:https://github.com/digao-dalpiaz/dzhtmltext
これは、HTMLフォーマットコンポーネントを備えたラベルです。メッセージは、このコンポーネントを使用してフォーマットされたテキストを表示します。
DZHTMLTEXTとDAMを一度にインストールしている場合、コンポーネントインストーラーユーティリティを使用して、DZHTMLTEXTをインストールした後、DAMをインストールする前にDelphiを開閉する必要があります(MSBuildが使用しているライブラリパスファイルを更新するために必要です)。
LibWin32Releaseを設定します。Delphi XE3..delphi 12をサポートします
[メニューパッケージ]> [パッケージ]ファイルを開き(.lpk)、 LazDampackage.lpkをロードし、 [コンパイル]をクリックします。
[メニューパッケージ]> [パッケージファイルを開いている]ファイル(.lpk)に移動し、 LazDamdesignPackage.lpkをロードし、 [使用]>インストールをクリックします。
現時点では、メッセージには次の言語が利用できます。
言語は、OK、キャンセル、はい、いいえ、および情報、質問、警告、エラー、メッセージ(カスタム)のようなメッセージダイアログのボタンのキャプションを設定します(カスタム)。フォームタイトルはメッセージプロパティで変更でき、親フォームタイトル、メインフォームタイトル、アプリケーションタイトルなど、他のオブジェクトによって自動的に設定できます。
あなたは私に新しい言語翻訳を送ったり、最新の翻訳を正したりするために問題を開くことができます
主なアイデアは、メインフォームまたはメインデータモジュールに1つのTDAMをドロップすることです。 TDAMは、すべてのTDAMMSG(メッセージダイアログ)を備えたコンテナです。
メッセージを管理するには、TDAMコンポーネントでダブルクリックするか、右クリックしてダムメッセージの管理を選択します。
しかし、メッセージを呼び出す方法は?
TDAMには、 DamUnitNameというプロパティがあります。ここでは、すべてのメッセージメソッドを含むユニット名を定義します。関数ビルドユニットを使用すると、コンポーネントは、作成されたすべてのメッセージに基づいたメソッド(メッセージ名と同じ)に基づいてプロジェクトフォルダーでこのユニットを自動的に作成します。
したがって、どのユニットでも、このユニットに使用を追加するだけで、メッセージ名で必要なメッセージを呼び出します。メッセージにパラメーターがある場合、メソッドはアレイ内のパラメーターを自動的に要求すると宣言されます。
ええ、しかし、私が同じクラス(TFORM/TDATAMODULE)にいる場合、それはTDAMおよびTDAMMSGメッセージである場合、メッセージ名でメソッドを呼び出すと、Delphiはメッセージのオブジェクトを参照していると思います!
これは真実であり、そのため、コンポーネントにはオブジェクト隠された関数があります。 _で始まるメッセージに名前を付ける必要があります。したがって、ユニットビルダーはこのキャラクターを削除してメソッドに名前を付けます。デルファイは2つのことを混同しません。
_文字から始まるという名前のすべてのメッセージを作成することをお勧めします。
ウィザードを使用する場合、名前はこのキャラクターから自動的に開始されます。
DAMマネージャーに、選択したすべてのメッセージを非表示にするボタンがあります。
メッセージを変更するたびに、ユニットを再構築する必要があります。ボタンビルドユニットをクリックして更新してください。
わかりました、でもこのユニットを使いたくありません!別の方法はありますか?
はい、もちろん。 TDAMMSGオブジェクトの関数を使用して、メッセージを呼び出すことができます。メッセージオブジェクトのRunまたはRunAsBool関数を使用するだけです。この場合、メッセージを非表示にしないことをお勧めします。そのため、オブジェクト名で電話をかけることができます。
しかし、私は正直にあなたがより理にかなっているので、ユニットを使用することをお勧めします。
アプリケーションで複数のTDAMコンテナを使用できますか?
はい、できます。 TDAMを使用すると、メッセージフォントやサウンドなど、いくつかの構成を定義できます。したがって、この構成グループを持つために複数のTDAMがある場合があります。それに加えて、さまざまなTDAMを使用して、カテゴリごとにメッセージをグループ化できます。 TDAMを特定の形式にすることもできますが、もちろん、メッセージを発射するためにコンテナが存在する必要があることを忘れないでください。
複数のTDAMを使用している場合は、すべてのTDAMコンポーネントで同じDamUnitNameを設定することをお勧めします。そのため、ビルドユニットボタンを呼び出すと、すべてのTDAMコンテナのすべてのメッセージを含む単一のユニットが生成されます。そのため、プロジェクトの他のすべてのユニットでこの単一のユニットを使用して、メッセージを呼び出すことができます。
メッセージ結果コード:
メッセージ名でメッセージを呼び出すと、メッセージにボタンが1つしかない場合、メソッドは手順になります。
メッセージに2つまたは3つのボタンがある場合、メソッドは関数になります。 2つのボタンがある場合、関数は常にブール値を返し、左側の最初のボタンがクリックされた場合にtrueを返し、2番目のボタン(右側の最後のボタン)がクリックされた場合にfalseを返します。
メッセージに3つのボタンがある場合、メッセージダイアログで[ボタンが押された]ボタンに応じて、関数は整数値1、2、または3を返します。最初のボタンは左のボタンです。 2番目は中央のボタンです。 3番目のボタンは正しいボタンです。
したがって、3つのボタンを使用する場合、変数またはcaseを使用できます。
case QuestionSaveFile([aFileName]) of
1 : DoSaveFile; // Yes button
2 : { continue } ; // No button
3 : Abort; // Cancel button
end ;メッセージで交換可能なパラメーターを使用する場合は、 %pを入力してください。同じメッセージで複数のパラメーターを指定できます。メッセージを呼び出しているとき、パラメーター配列は同じ順序で順番にメッセージに入力されます。
パラメーター配列はバリアントタイプであるため、変換は必要ありません。
例:
// TDamMsg Message property = 'This is a %p message number %p at time %p'
MyCustomMessage([ ' test ' , 123 , Now]);
// or
MsgInfo( ' This is a %p message number %p at time %p ' , [ ' test ' , 123 , Now]);ButtonsColor: TColor =メッセージダイアログのボタン領域の背景色を定義します。
ButtonsFont: TFont =ダイアログボタンのテキストフォントを定義します
ButtonsFontColor: TAlphaColor =ダイアログボタンのテキストフォント色を定義します(FMX環境でのみ利用可能)
CenterButtons: Boolean =メッセージフォームのボタンが中央で整列するかどうかを定義します。このプロパティが偽の場合、ボタンはフォームの右側に並べられます。
DamDefault: Boolean =このTDAMを使用してクイックメッセージを発射するかどうかを定義します(クイックメッセージセクションをお読みください)。アプリケーションでデフォルトとして定義されるもののみを使用できます。
DamUnitName: String =プロジェクトフォルダー内のすべてのメッセージメソッドを使用して作成するユニット名を指定します。コンポーネントは「.pas」拡張機能で自動的に名前を完成させるため、ファイル拡張子を指定しないでください。
DialogBorder: Boolean =メッセージダイアログのウィンドウに境界線が含まれるかどうかを定義します。このプロパティを無効にして、最新のダイアログテーマを作成できます。
DialogPosition: TDamDlgPosition =ダイアログフォームの開始位置を定義します。
HandleExceptions: Boolean =このTDAMを定義して、すべてのアプリケーションの例外を処理し、他のすべてのダムメッセージと同じダイアログでエラーメッセージを表示します。アプリケーションの例外を処理するように設定できるTDAMは1つだけです。
HideIcon: Boolean = trueの場合、メッセージダイアログのアイコンは抑制されます。
Images: TCustomImageList = tag <img:idx>を使用して、 idxが画像インデックスであるメッセージテキストを使用して、imageListを設定できます。
Language: TDamLanguage =メッセージボタンとメッセージフォームタイトルで使用される言語を定義します。 TDAMコンポーネントのインスタンスを配置すると、このプロパティはシステムの現在の言語に従って初期化されます。システムに応じて利用可能な言語がない場合、英語が設定されます。このプロパティには、定義されている言語を保存する必要があるため、デフォルト値はありません。
MessageColor: TColor =メッセージダイアログでメッセージ領域の背景色を定義します。
MessageFont: TFont =メッセージのテキストフォントを定義します
MessageFontColor: TAlphaColor =メッセージのテキストフォント色を定義します(FMX環境でのみ利用可能)
PlaySounds: Boolean =警告、質問、エラーの種類のメッセージを表示するときにシステムサウンドを有効にします。
OnLinkClick(Sender: TObject; Msg: TDamMsg; const Target: string; var Handled: Boolean; var CloseMsg: Boolean; var MsgResult: TDamMsgRes)このイベントは、メッセージに含まれるリンクをクリックするとトリガーされます。
デフォルトでは、Windows APIからのShellexeCuteを使用してリンクターゲットが自動的に開かれます。そのため、ターゲットがWebリンクの場合、デフォルトのブラウザがリンクを開きます。ターゲットがシステムファイルの場合、パスはWindowsで実行/開きます。
この動作をバイパスしたい場合は、このイベントを使用して、TrueにHandled 。メッセージウィンドウを閉じたいときに、 CloseMsg TrueおよびMsgResultフラグに設定することもできます。
OnShowMessage(Sender: TObject; Msg: TDamMsg; var MsgText: String; var Handled: Boolean; var MsgResult: TDamMsgRes)ダムメッセージが表示される前にfireは、ハンドルパラメーターを使用してメッセージをインターセプトしたり、メッセージをバイパスしたりできるようにします。
警告!例外メッセージをバイパスする場合、コンポーネントは例外を提起しず、コードの実行を継続します(イベント手順で独自の例外を作成しない限り)。
Button1: String =メッセージダイアログのボタン1のキャプション。ボタン= dbone/dbtwo/dbthreeの場合に使用できます。
Button2: String =メッセージダイアログのボタン2のキャプション。ボタン= dbtwo/dbthreeの場合に使用できます。
Button3: String =メッセージダイアログのボタン3のキャプション。ボタン= dbthreeの場合に使用できます。
Buttons: TDamMsgButtons =メッセージダイアログのボタンを定義します。
CustomIcon: TIcon =メッセージダイアログに表示するカスタムアイコンを定義します。このアイコンは、icon = dicustomの場合にのみ表示されます。
CustomTitle: String =メッセージフォームのカスタムタイトルを定義します。このキャプションは、タイトル= dtcustomのみ使用されます。
Dam: TDam =このメッセージのダムコンテナを定義します。
FixedWidth: Integer =メッセージウィンドウのテキストパーツの固定幅をピクセルで定義します。この値がゼロ(デフォルト)の場合、ウィンドウの幅はメッセージテキストに従って自動的に計算されます。メッセージフォームには最小および最大固定制限があります(最小= 300px /最大=画面幅の75% - AndroidまたはiOSの場合、最大=画面幅の95%) 。
HelpContext: THelpContext = helpコンテキストを定義します。このプロパティが定義されている場合、メッセージダイアログがヘルプボタンを表示し、コンテキストターゲットでアプリケーションヘルプを開きます。 F1キーを使用することも可能です。
HelpKeyword: String = Helpキーワードを定義します。このプロパティが定義されている場合、メッセージダイアログがヘルプボタンを表示し、キーワードターゲットでアプリケーションヘルプを開きます。 F1キーを使用することも可能です。
Icon: TDamMsgIcon =メッセージダイアログのアイコンを定義します。
Message: String =メッセージテキスト。テキストのフォーマットにはメッセージウィザードクリエーターを使用するか、htlabelドキュメントをお読みください。交換可能なパラメーターは、メッセージテキストの%pで定義されます。メッセージテキストで指定されたのと同じ順序で、メッセージメソッドの配列のパラメーターを使用します。また、リテラル{except}を指定して、現在の例外メッセージをキャッチし、メッセージテキストのこの変数で置き換えることもできます(例外例を参照してください)。
Name: String =メッセージオブジェクト名。名前が_文字で始まる場合、メッセージが非表示になることを意味するため、同じ名前を持つメッセージの方法を呼び出すとき、Delphiはあなたがこのオブジェクトを呼び出すとは思わないでしょう。
RaiseExcept: Boolean =このメッセージを上昇メッセージとして設定します。このメッセージを呼び出すと、メッセージテキストで例外が表示されます。この場合、handleExceptions = trueで少なくとも1つのTDAMを使用する必要があります。そうしないと、メッセージはダムのカスタマイズでフォーマットされません。
SwapFocus: Boolean =デフォルトでは、メッセージが起動されると、常に左側の最初のボタンがフォーカスから始まります。このオプションを有効にすると、このメッセージは最後にフォーカスを開始します(右のボタン)。
Title: TDamMsgTitle =メッセージフォームタイトルを定義します
すべてのメッセージパラメーターは、コンポーネントによって自動的に「脱出」されます。
例:
procedure Test1 ;
begin
MyCustomMessage([ ' This will display <b> literal string ' , ' This will display "%p" literal string ' ]);
end ;
procedure Test2 ;
begin
MsgInfo( ' <b>First message parameter</b>: %p ' , [ ' Here I want to display literal <> characters ' ]);
end ;%pおよび{except} )を使用したHTML表記です。固定メッセージパーツにHTMLリテラル文字を表示する場合は、DZHTMLTextドキュメントで定数をエスケープすることを確認してください。
procedure MsgInfo ( const Msg: String; const Params: TDamParams = nil ); // message with Information icon
procedure MsgWarn ( const Msg: String; const Params: TDamParams = nil ); // message with Warning icon
procedure MsgError ( const Msg: String; const Params: TDamParams = nil ); // message with Error icon
function MsgQuest ( const Msg: String; const Params: TDamParams = nil ): Boolean; // message with Question mark icon
procedure MsgRaise ( const Msg: String; const Params: TDamParams = nil ); // message with Error icon (this raises an exception)
procedure ShowErrorMsg ; // show current error message
function CaptureErrorMsg : String; // get current error messageこれらの方法は、Damunitnameプロパティで指定したユニットDamUnitまたはユニット名で世界的に入手できます。
コードに直接クイックメッセージを表示することができ、好きなメッセージとパラメーターを入力するだけです。
これらのメソッドは、デフォルトとして定義されるTDAMコンテナを使用します。したがって、
DamDefaultプロパティをTrueに設定して1つのTDAMを使用できる必要があります。
関数MsgQuest 、[はい]ボタンが押された場合、またはボタンがない場合にfalseを返す場合にtrueを結果にします。
メソッドShowErrorMsg 、現在の例外を示しています。これをtry..Excectブロックとして使用できます。
関数CaptureErrorMsg使用すると、現在の例外でエラーメッセージを取得できます。これをTry..Extceptブロックで使用する必要があります。
例外キャッチ例:
try
DoSomeStuff;
except
ShowErrorMessage; // will show error message dialog using Dam concept
end ; try
DoSaveFile;
except
MsgError( ' Fatal error saving file: %p ' , [CaptureErrorMsg]);
end ;メッセージテキストでリテラル{except}を指定すると、これは現在のエラーメッセージに置き換えられます。
try
DoSaveFile;
except
MsgError( ' Fatal error saving file: {except} ' ); // don't need to use CaptureErrorMsg function!
end ;例外を再作成することもできます。
try
DoSaveFile;
except
raise EDam.Create( ' Fatal error saving file: {except} ' ); // re-raise a new exception with better text message
end ;RaiseExceptパラメーターをDAMメッセージオブジェクトに設定できます。そのため、メッセージが呼び出されると、例外が表示されます。
覚えておいてください: DAMリソースを利用するには、DAMコンテナオブジェクトでHandleExceptionsを設定する必要があります。例外が発生すると、DAMはこの例外を傍受し、カスタムダイアログを表示します。
例:
procedure TestException_Generic ;
begin
raise Exception.Create( ' This is my generic exception ' );
// HTML tags are NOT allowed when using generic exception
end ;
procedure TestException_DamRunTimeCreation ;
begin
raise EDam.Create( ' This is my <b>exception</b> with parameter %p ' , [ ' First parameter ' ]);
end ;
procedure TestException_DamDesignTimeCreation ;
begin
raise EDam.Create(MyCustomMessage, [ ' First parameter ' ]);
// MyCustomMessage represents a TDamMsg object created at design-time
end ;
procedure TestException_DamDesignTimeCreation_ByProperty ;
begin
_MyCustomMessage.Run([ ' First parameter ' ]);
// or
MyCustomMessage([ ' First parameter ' ]);
// MyCustomMessage represents a TDamMsg object created at design-time with property RaiseExcept=True
end ;
procedure TestException_Quick ;
begin
MsgRaise( ' This is my <b>exception</b> with parameter %p ' , [ ' First parameter ' ]);
// This method is for compatibility, but I recommend you to use "raise EDam.Create" instead.
end ;damlang.ini (リソースフォルダー)というファイルがあり、コンポーネントですべての文字列が使用されています。このファイルのテキストを変更したい場合は、その後「 Build Dam Resource.bat 」を実行する必要があります。このバッチは、ルートコンポーネントフォルダーに新しいファイル「 dam_resource.res 」を作成します。
その後、この新しいリソースファイルを「lib」フォルダーに公開するには、「 avherbuild.bat 」を実行してください。
新しい言語を追加したい場合は、コードにいくつかの変更が必要になります。だから、新しい問題を開いて、あなたが望む言語文字列を投稿してください。そうすれば、コンポーネントに適用します。
XE8以下のDelphiバージョンを使用している場合、TDAMPARAMSパラメーターを含むすべてのDAMメソッドで、動的配列パラメーターを直接渡すことはできません。
そのような場合、グローバル関数DamParamsを使用します。この機能は、DAMの自動生成ユニットでも利用できます。
したがって、これらのバージョンでダムメッセージメソッドを使用する方法の例をいくつか紹介します。
// Quick message:
MsgInfo( ' This is a test message with parameter value = %p ' , DamParams([ 999 ]));
// Custom message:
MyCustomMessage(DamParams([ ' Parameter 1 ' , ' Parameter 2 ' ]));このコンポーネントの設計は、アプリケーション用に標準化されたダイアログボックスを作成する必要性を確認したときに2005年頃に登場しました。
当時、私はポルトガル語ではDM( DiálogoMelhor )である「Better Dialog」のコンポーネントを呼びました。
しばらくして、プロジェクトにはコンテナのある新しい構造が含まれるようになりました。次に、コンポーネントを「さらに良いダイアログ」に変更しました。これはポルトガル語ではダム( DiálogoAindaMelhor )です。 ?
そのため、コンポーネントの名前はダムにとどまることになりました。
今日、私はこのコンポーネントをほぼすべてのDelphiアプリケーションで使用しています。