モナーの *やさしい* Delphi質問スレ Ver3
■ このスレッドは過去ログ倉庫に格納されています
0210デフォルトの名無しさん
NGNGそれならdelegateすればよいかも。その利点は
・TCommand(とその派生型)はTClientを知る必要がない
・TClientは処理したいコマンドのみ処理すればよい
(TCommand23が後から追加されてもコンパイルエラーになることはない、処理しないコマンドは無視される)
procedure TMyClient.CommandListOnRegister(Sender: TObject);
begin
// クラスを前もって登録
cmd := TCommand1.Create;
cmd.ID := CommandID1;
cmd.OnExecute := TMyClient.Command1Execute;
CommandList.Register(cmd);
...
end
procedure TMyClient.Command1Execute(Sender: TObject);
begin
with Sender as TCommand1 do
begin
...
end
end;
// AMessage.ID=CommandID1なら
// TMyClient.Command1Executeが呼ばれる
CommandList.Execute(AMessage.ID);
■ このスレッドは過去ログ倉庫に格納されています