投稿

Delphi のフォーマッタで無関係な変数の大文字小文字が揃えられてしまう

イメージ
 Delphi のフォーマッタで無関係な変数の大文字小文字が揃えられてしまう デフォルトで下記のようになっている 「その他の単語の大文字・小文字表記」= 最初の出現どおり 下記のようなコードの場合 interface uses System.Hash; type TFoo = class(TObject) private FHash: string; public property hash: string read FHash; end; TFooRec = record hash: string; end; フォーマッタを実行すると System.Hash を最初の出現とみなしてしまい interface uses System.Hash; type TFoo = class(TObject) private FHash: string; public property Hash: string read FHash; end; TFooRec = record Hash: string; end; となってしまう 言語的に問題ないように見えますが、RTTIを使用している場合、大文字小文字が変更されて設計と違う結果になってしまうことがあります(TJsonSerializer を利用して、問題に遭遇しました) フォーマッタの設定を変更すれば回避できますが、デフォルト設定がそれであるため、別環境を構築してフォーマッタを実行しただけで、書き換えられてしまうという問題を抱えたままとなります。コンパイルで問題を発見できない事も問題です。 フォーマッタの例外オプションを探しましたが見つからないため、該当部分を別ファイルへ抜き出して uses で参照することとしました

Delphi - TreeView で特定Nodeの文字色を変更

TreeView の CustomDrawItem を用いて procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean); begin if (Node.Text = 'TargetNode') then begin Sender.Canvas.Font.Color := clRed; end; end; カスタムスタイルを使用している場合、背景が白抜け(スタイル未適用で塗りつぶされてしまうため) Vcl.Themes を uses して、TreeView(scTreeView)の色を取得してブラシへ割り当ててやる uses Vcl.Themes; procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView; Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean); begin if (Node.Text = 'TargetNode') then begin Sender.Canvas.Brush.Color := TStyleManager.ActiveStyle.GetStyleColor(TStyleColor.scTreeView); Sender.Canvas.Font.Color := clRed; end; end;

SumatraPDF v3.5.2 でホームタブを表示させない

イメージ
 SumatraPDF v3.5.2 でホームタブが常に表示されるようになったようなので、設定を変更して非表示に 詳細設定から SumatraPDF-settings.txt を開き NoHomeTab の値を true へ変更して保存

alexa_remote_control.sh 認証方法(SET_REFRESH_TOKEN)

イメージ
 Alexa(Amazon Echo)のリモコン alexa_remote_control.sh の認証方法がID+パスワードからリフレッシュトークンへ変更されているようなのでメモ alexa_remote_control.sh 内の SET_EMAIL='' SET_PASSWORD='' に代わって SET_REFRESH_TOKEN='' を取得を設定する必要がある 下記から該当プラットフォームのバイナリをダウンロード、実行 ※ブラウザによりAmazonへログイン可能なプラットフォームの事です https://github.com/adn77/alexa-cookie-cli/releases (ログイン時の cookie からトークンを読み取るらしい) Windows の場合 alexa-cookie-cli-win-x64.exe を実行 http://127.0.0.1:8080/ をブラウザで開いて、対象のAlexa と同一アカウントでログイン ログインが成功すると情報がトラップされるので、refreshToken をalexa_remote_control.sh の SET_REFRESH_TOKEN へコピペ 参考文献 https://blog.loetzimmer.de/2021/09/alexa-remote-control-shell-script.html

Inno Setup でインストールフォルダが "Program Files" にならず "Program Files (x86)" となる

 Inno Setup で64bitアプリのインストール先が "Program Files" にならず "Program Files (x86)" となる [Setup] DefaultDirName= {autopf} \MyApp を [Setup] DefaultDirName= {commonpf} \MyApp としても変化なし [Setup] DefaultDirName={autopf}\MyApp ArchitecturesInstallIn64BitMode=x64 とすればよいらしい

Inno Setup のコンパイルで「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」

イメージ
 Inno Setup6 のコンパイルで 「プロセスはファイルにアクセスできません。別のプロセスが使用中です。」 が表示されてセットアップファイルが作成できない [Setup] OutputDir= に記載されいる、出力先フォルダをウィルスチェックの対象外にする

さくら 高精度迷惑メールフィルタによる .mailfilter の変更

 さくらインターネットが 高精度迷惑メールフィルタ を提供開始 簡易迷惑メールフィルタ (旧迷惑メールフィルタ) 高精度迷惑メールフィルタ それぞれを適用した .mailfilter いずれも ブラックリスト、ホワイトリスト、迷惑メールフォルダに保存 を設定した状態 簡易迷惑メールフィルタ (旧迷惑メールフィルタ) if ( /^From:\s*(.*)/ && lookup( $MATCH1, ".blockaddr" ) ) { to "maildir/.Trash/" } if ( ! ( /^From:\s*(.*)/ && lookup( $MATCH1, ".whitelist" ) ) ) { xfilter "/usr/local/bin/spamc" } if ( /^X-Spam-Flag:.*YES/ ) { to "maildir/.spam/" } 高精度迷惑メールフィルタ if ( /^From:\s*(.*)/ && lookup( $MATCH1, ".blockaddr" ) ) { to "maildir/.Trash/" } if ( /^X-VADE-SPAMSTATE:/ ) { if ( ! /^X-VADE-SPAMSTATE:\s*clean/ ) { if ( ! ( /^From:\s*(.*)/ && lookup( $MATCH1, ".whitelist" ) ) ) { to "maildir/.spam/" } } } 一旦、迷惑メールフィルタにかけた後、ホワイトリスト以外を迷惑メールフォルダへ移動 旧フィルタでは、ホワイトリストに記載したメールの判定結果が不明だった 個人的にはブラックリストよりホワイトリストを優先して欲しいところだが、昔からブラックリスト優先