投稿

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

Delphi TreeView の MultiSelect でコードからノードを選択

Delphi TreeView で MultiSelect := True; にすると、Ctrl+Clickで複数選択可能 ノートの選択状態を取得 Node.Selected TreeView.Selections, TreeView.SelectionCount コードから選択状態を設定(NG) 対象のノートで Node.Selected := True TreeView.Select(node1, [ssCtrl]) これらを用いると、選択されたりされなかったり、 TreeView.Selected が残った状態になったりする コードから選択状態を設定(OK) TreeView の Select メソッドへ array of TTreeNode 型の配列をまとめて渡せばよいらしい // ex.1 TreeView.Select([node1, node2]) // ex.2 var Nodes: array of TTreeNode; SetLength(Nodes, 2); Nodes[0] := node1; Nodes[1] := node2; TreeView.Select(Nodes); // ex.3 uses System.Generics.Collections; var NodeList: TList<TTreeNode> NodeList := TList<TTreeNode>.Create; NodeList.Add(node1); NodeList.Add(node2); TreeView.Select(NodeList.ToArray); NodeList.Free;

さくらでブラックリストの正規表現で文字コード範囲を指定

イメージ
さくらインターネットのメール ブラックリストの正規表現で文字コード範囲を指定する方法 (さくらのフィルタは maildrop(.mailfilter)) From欄の文字列に「異字体セレクタ」や「ゼロ幅スペース」を挟んで、フィルタをかいくぐろうとしているメールを、迷惑メールフィルタにかけるまでもなく落としたいということで ブラックリストに正規表現が使用できるが、文字コードで範囲指定を行いたい 異字体セレクタを例にした場合 [\x{E0100}-\x{E01EF}] という正規表現で記述する 【注意】[\uE0100-\uE01EF] のように指定した場合、エラーとなりメールが受信不能になる 【参考】 ゼロ幅スペース (最も使われていると思われるフィルタ回避) https://www.asahi-net.or.jp/~ax2s-kmtn/ref/unicode/u2000.html#spa1 [\x{2000}-\x{200F}] [\x{2060}-\x{206F}] 異字体セレクタ https://www.asahi-net.or.jp/~ax2s-kmtn/ref/unicode/ue0100.html [\x{E0100}-\x{E01EF}] ※異字体を使用している場合は注意 ダイアクリティカルマーク (合成文字) https://www.asahi-net.or.jp/~ax2s-kmtn/ref/unicode/u0300.html [\x{0300}-\x{036F}] ※日本語の濁点半濁点は3099~に存在するため上記とは別 ロシア語文字 (偽英字として利用される) https://www.asahi-net.or.jp/~ax2s-kmtn/ref/unicode/u0400.html#bra [\x{0410}-\x{044F}] ギリシャ文字 (偽英字として利用される) https://www.asahi-net.or.jp/~ax2s-kmtn/ref/unicode/u0370.html#let2 [\x{0391}-\x{03C9}] ※Ω等を含むため利用注意