2015/09/26

楽天カードマンのCMに宿敵「アマゾゲス」登場

楽天カードマンのCMに宿敵「アマゾゲス」登場

  • 楽天は、楽天市場で何年たっても送料込み表示も実現しないので負け
  • 審査の通りやすいカードで1,2を争うので、カードは勝ち

(オレ様調べ)

楽天がAmazonを意識しているのは間違いない

2015/09/16

WiMAX(無印) 9月から周波数帯域以上に回線を絞ってる?

2015年9月から容量規制のあるWiMAX2+への切り替えで、周波数帯域が絞られたWiMAX(無印)だが

9月より以前に帯域が減少していた地域でも、大幅な速度低下が起きている
WiMAX(無印)使用者への嫌がらせ兼2+への誘導だろう

ガラガラの時間帯において、何度測っても上りの方が速い(仕様では下りのほうが速い)など不自然な点が多い

2015/09/10

IcoFX代替

久々に IcoFX を起動したら、試用期間終了のお知らせ
そういえば、バージョン2系以降、有料になったんだった〜

といっても、IcoFX で編集することはなく icoの吐き出しくらいにしか使っていないので、手持ちのを探してみると GIMP 2 のファイル->エクスポートが対応していた


GIMP 2 のフローティングウィンドウが けしからんという方は、シングルウィンドウモードでドッキングを

2015/09/08

Delphi 多重起動防止 Unit

多重起動防止に度々 Mutex も面倒なので Unit を作成 initialization と finalization を利用して簡素化してみた
パスを含まない実行ファイル名をキーに Mutex を作成している
※パスを含んだ実行ファイル名をキーにする場合は ¥ を別の文字列に変更する必要あり

initialization でアプリケーションを正しく終了させる方法があったら、誰か教えて下さい
unit RunOnceUnit;

interface
    uses Winapi.Windows, System.SysUtils;

var MutexAlreadyExists: Boolean = False;

implementation

var MutexHandle: THandle;

initialization
    MutexHandle := CreateMutex(nil, False, PChar(ExtractFileName(ParamStr(0))));
    MutexAlreadyExists := (MutexHandle <> 0) and (GetLastError() = ERROR_ALREADY_EXISTS);

finalization
    if (MutexHandle <> 0) then begin
        ReleaseMutex(MutexHandle);
    end;

end. 

使い方(アプリケーションのメインユニットで)
program HOGEHOGE;

uses
  Vcl.Forms,
  RunOnceUnit, // ユニット追加
  Unit1 in 'Unit1.pas' {Form1},
 
{$R *.res}

begin
    // ↓既に実行されていれば終了↓
    if MutexAlreadyExists then begin 
        Exit;
    end;
    // ↑既に実行されていれば終了↑

  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

2015/09/07

OLEオートメーション接続 VB→Delphi書き換えで、メンバが見つかりません

OLEオートメーションサーバへ接続するアプリケーションを VBからDelphiに書き換えていた時に「メンバが見つかりません」が頻発

Sub Hogehoge()
    Dim SV As Object
    Dim S As String

    Set SV = CreateObject("Hoge.hoge")
    Set S = SV.GetStr("key")
    Set SV = Nothing
End Sub

procedure Hogehoge()
var SV: OleVariant;
    S: String;
begin
    SV := CreateOleObject('Hoge.hoge');
    S := SV.GetStr('key'); // GetStr がプロパティの場合 SV.GetStr['key']; 
    SV := Unassign;
end;

Delphi ではメソッドの引数は( )、プロパティの引数は [ ]
VBでは、メソッドの引数もプロパティの引数も ( )
なので、該当メンバがプロパティの場合 [ ] に変更しなくてはならない
また、引数なしのプロパティに () をつけても同様の結果に

資料がない場合、どちらかの環境でタイプライブラリを取り込んで、定義を確認すると明確になる



2015/09/06

迷惑電話セールスの対応方法

最近、流出したリストを使って「○○さんのお電話ですか?」というセールスの電話が多い
最初の一言に対して、絶対に「はい」とは言わない事

これらの業者は、断られるのを避けるため、最初に「**です」とは言わないので、こちらから誰かを確認して、必要ないと思われる場合は、間違い電話を装えば話を聞かずに済む

「○○さんのお電話ですか?」
「どちらさんですか?」
「**という会社です」
「番号間違われてますよ」「違います」「○○の兄(姉)です、弟(妹)は死にました」

※電話を切った後、着信した番号でネット検索すればよいです