投稿

4月, 2024の投稿を表示しています

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