投稿

6月, 2020の投稿を表示しています

Delphi の TFrame で 継承した Destroty のイベント発生タイミング

Delphi の TFrame 上のリストに埋め込んだオブジェクトをFrame開放時にFreeしてやろうとしてハマったメモ TFrame にはコンストラクタとデストラクタ イベントが無いので、 継承して追加する も、Destroy イベントが発生したときには、リストのカウンタが既に 0 で埋め込んだオブジェクトへアクセスする手段が無くなっていました ここに よるとTFrameのDestroyが実行されたときには、親フォームからの破棄が行われたあとなんだとか → WM_DESTROY を追加してそこへ処理を記述 private procedure WMDestroy(var Msg: TWMDestroy); message WM_DESTROY; // procedure TFrame1.WMDestroy(var Msg: TWMDestroy); begin if (csDestroying in ComponentState) then begin // ココに Destroy 処理 end; inherited; end;

Delphi の TDateTime 型へマイクロ秒を入れて、取り出す

Delphi の TDateTime 型へマイクロ秒を入れて、取り出す 基本的な事ですが TDateTime型は、整数部が日付(1899/12/30からの経過)、小数部が時刻(24時間を1とする)の Double 型 なので、マイクロ秒は 1/1,000,000 秒を加算すればOK EncodeTime の マイクロ秒版 function EncodeTimeMicroSec(const AHour, AMin, ASec: Word; const AMicroSec: Cardinal): TDateTime; begin Result := EncodeTime(AHour, AMin, ASec, 0) + ((1/(60*60*24)) * AMicroSec / 1000000); end; TDateTime をマイクロ秒表示 function DateTimeToStrMicroSec(ADateTime: TDateTime): string; var Time: TTime; subSec: Extended; begin Result := FormatDateTime('yyyy-mm-dd hh:nn:ss', ADateTime); Time := Frac(ADateTime); // 時刻(小数部)のみ subSec := Frac(Time * 60 * 60 * 24); // 秒未満(小数部)のみ => 0.123456**** Result := Result + '.' + Copy(FloatToStr(subSec), 3, 6); end; 使ってみる procedure Form1.Button1Click(Sender: TObject); var microDateTime: TDateTime; begin microDateTime := EncodeDate(2020, 6, 24) + EncodeTimeMicroSec(11, 34, 6, 123456); Caption := DateTimeToStrMicroSec(microDateTime); end;

Gmail (Web版) の Chat と Meet を表示させない

イメージ
Web版 Gmail の Chat と Meet をそれぞれ非表示に設定できるようになった

webOS (LGテレビ) の電源状態をチェック

webOS (LGテレビ) の電源状態を確認したメモ 確認条件 高速起動ON ソフトウェアバージョン 05.80.55 電源オフ状態 tcp:3000 へ接続できない(pingも返らない) tcp:3000 へ接続可能 ssap://com.webos.service.tvpower/power/getPowerState で state:" Active Standby " が返る テレビをオフにした直後 1 の状態になり、5分程度で 2 の状態になった  その後は未確認だが基本的に上記のどちらかの状態になるっぽい 電源オン状態 tcp:3000 へ接続可能で ssap://com.webos.service.tvpower/power/getPowerState で state:" Active " が返る(もちろん pingも返る) セッションを張りっぱなしで、電源オンオフのイベントを受けられるという記事を何処かで見たけど、今回のは単発でのチェックです

rsyslog で syslogサーバとログの日付フォーマットを変更

rsyslog で syslogサーバ(UDP:514)を起動させて、ログの日付を yyyy-mm-dd へ syslogサーバを起動させる ログの日付フォーマットを変更 それぞれの記事はあるんだけど、syslogサーバのフォーマット変更に戸惑ったのでメモ (環境は Centos7 ですが、他でも同じだと思う) syslogサーバ(UDP514)を起動させる設定 # vi /etc/rsyslog.conf $ModLoad imudp ←コメントを外す $UDPServerRun 514 ←コメントを外す $AllowedSender UDP, 127.0.0.1, IPアドレス, ホスト名 ←送信元を規制する場合追記 ファイル末尾に下記の2行を追加 $template ClinetMessage,"/var/log/rsyslog/%fromhost%/%$year%%$month%%$day%_messages.log" *.*     -?ClinetMessage rsyslogを再起動 # systemctl restart rsyslog syslogサーバが稼働しているのを確認 日付が  Jun  3 11:00:00 なので、2020-06-03 11:00:00 形式へ変更 # vi /etc/rsyslog.d/template.conf を作成して、下記を一行で記述 $template yyyymmdd , "%timegenerated:::date-year%-%timegenerated:::date-month%-%timegenerated:::date-day% %timegenerated:::date-hour%:%timegenerated:::date-minute%:%timegenerated:::date-second% %HOSTNAME% %syslogtag% %msg%\n" ※上は yyyy-mm-dd なので yyyy/mm/dd がお好みな方は書き換えて下さい ※  yyyymmdd が任意のテンプレート名 # vi /etc/rsyslog.conf を開いて 先程、ファイル末尾に追加した *.*     -?ClinetMessage へ *.*     -

アップデートの度に行う WinSCP の言語ファイル設定

イメージ
アップデートの度に行う WinSCP の言語ファイル設定手順をメモ WinSCP をアップデート後起動すると、デフォルトの言語に戻っているので Preference を開いて Language を選択 Get more... からサイトを開く ブラウザでWinSCPの言語サイトが開くので、japanese で検索してダウンロード ※ヨコの 2019-11-19 とかいう日付は気にしない アーカイブ内の WinSCP.jp を WinSCP.exe のフォルダへ置いた後、WinSCPを再起動後 2.のLanguageで 日本語を選択