2023年05月27日

テレビアンテナの保守登山

 田舎のテレビ受信は里に電波が届かないので、集落で組合を作って、山の上に共同アンテナを立てて、そこから各家に配線しています。
 アンテナ設備自体はNHKが面倒を見てくれますが、アンテナ周りの木の切り倒しなどは集落で行います。
 というわけで、上がってきました。
登山ルート









 標高差約200m、行程約1Kmの登山です。
S__4259998











 メンバーの男衆の中で自分は若い方から2番目ですが、一番の足手まといになってしまいました・・・ 
 リュックで背負ったチェーンソーが重くて、へばりました・・・
S__4260008






何とかアンテナにたどり着いて、周りの草刈りやら、大きくなって電波の邪魔になりそうな木を切り倒します。
 先輩は直径60Cm位の松を平気で切り倒しますが、素人の自分は怖くて小さな木を切るくらいです。 20メートル近くある木をスチールチェーンソーで平気で切り倒す先輩には尊敬のまなざしになります。 自分はまだ、切り倒す方向をきっちり決める自信がないのです。
S__4260012











 というわけで、何とか無事下山できました。 下りの方が膝にきますね。
 今回はパオままも上がってくれました。

ho_cad at 23:52|PermalinkComments(0)

2023年05月26日

Luqのインストーラー完成

 HO_CADluqのベータ版公開に向けて準備しています。

 開発環境が現行のWindowsになって、いろいろ変えていかないといけない物が出てきます。

 とりあえず、インストーラーの準備が出来ました。
LuqInstaller






 PaoとLuqは併存可としています。
 Luqのエンジンは以前からぼちぼち作っていたのですが、Paoに追加した機能が全部Luqに移植できていないので、当面Luqが安定するまで(ベータ版の間)はPaoとの併用を想定しています。

 そのため、ファイルの関連付けをPaoで開くかLuqで開くか、簡単に設定できないと不便です。
LuqSetFileType













 なので、Luqのオプションで切り替えられるようにしました。
 新環境で作っているので、管理者権限でLuqを実行していなくても、切り替える時点でアプリケーションの実行権限を管理者に昇格させることができるようになり、いちいち「管理者として実行」しなくても良くなりました。
 
 Luqでは、その他のUAC対策も出来ているので、もう「○○に書き込めません」は無くなります。

ho_cad at 22:13|PermalinkComments(2)

2023年05月21日

Unicode対応の続き2(備忘録)

 前回の判定は不十分だった。
 前回のテスト関数ではAsciiの範疇に入る全角の「1」や「A」もMecsIsMECElement関数はTRUEを返してしまうので4バイトと判定されてしまった。

 なので代わりにMecsCharLength関数を使う。
procedure TForm1.Utf16Test(AText: String);
var
  I1, MecsLength1, Length1, MecsPos1, DestX1, MecsCharLen1: Integer;
  HanZen1: String;
  S1: UnicodeString;
  DrawChar1: array [0..256] of Char;
begin
  Length1 := Length(AText);        //Charでの文字長
  MecsLength1 := MecsLength(AText);//Mecsでの文字長
  Memo1.Lines.Clear;
  Memo1.Lines.Append('Length = ' + IntToStr(Length1));
  Memo1.Lines.Append('MecsLength = ' + IntToStr(MecsLength1));

  MecsPos1 := 0;
  DestX1 := Button1.Left + Button1.Width + 10;//Canvasへの書き出しX

  I1 := 1;
  while I1 <= MecsLength1 do
  begin
    Inc(MecsPos1);
    S1 := MecsCopy(AText, MecsPos1, 1);

    if MecsIsFullWidth(S1, 1) then
    begin  //全角文字 先頭の1バイト目
      HanZen1 := '全角';
    end
    else
    begin  //半角文字 
      HanZen1 := '半角';
    end;
    MecsCharLen1 := MecsCharLength(AText, I1);//エレメント数
    Memo1.Lines.Append(IntToStr(I1) + '番目「' + S1 + '」は ' + HanZen1 + ' で エレメント数= ' + IntToStr(MecsCharLen1));

    Inc(I1);
    Canvas.Font.Color := clBlue;
    Winapi.Windows.TextOut(Canvas.Handle, DestX1, Button1.Top + 2, PChar(S1), 2);
    DestX1 := DestX1 + 20;
  end;
end;
Utf16_2

 




 きっちりエレメント数を検査することによって、「𣇵」の文字だけが2エレメントの4バイト文字であることが判定できた。

 ほんまにUnicode対応はややっこしい。
 まあでも、だいぶ慣れてきた。 還暦過ぎても未知の範疇を勉強できるありがたさ・・・
 これできっちりHO_CADに移植できる。


ho_cad at 14:28|PermalinkComments(2)