IBEvent.CancelEventsについて

解決


かぼ  2009-11-09 21:38:12  No: 36122  IP: 192.*.*.*

はじめまして
Delphi5で書かれた古いコードをコンバート(Delphi2009)したいのですが、
その関数が何をしているのか
どの様に書き換えたらいいのか解りません
当時、プログラムを作った人と連絡がもう取れないので困っています。

コードは下記のようなコードです。

// イベント停止処理
function    CancelEvents(var IBEvent:TIBEvents):boolean;
var
    cnt :integer;
begin
    cnt := 0;
    Result := false;
    repeat
        try
            IBEvent.CancelEvents;
            IBEvent.Registered := false;
            Result := true;
        except
            cnt := cnt + 1;
            sleep (500);
        end;
    until (result = true) or (cnt > 5);
end;
// イベント開始処理
function    QueueEvents(var IBEvent:TIBEvents):boolean;
var
    cnt :integer;
begin
    cnt := 0;
    Result := false;
    repeat
        try
            IBEvent.Registered := true;
            IBEvent.QueueEvents;
            Result := true;
        except
            cnt := cnt + 1;
            sleep (500);
        end;
    until (result = true) or (cnt > 5);
    sleep(500);
end;

宜しくお願いいたします。
(delphiは初心者です。)

編集 削除
igy  2009-11-09 22:11:01  No: 36123  IP: 192.*.*.*

>Delphi5で書かれた古いコードをコンバート(Delphi2009)したいのですが、

Delphi2009でコンパイルしてエラーが表示するのですか?
(その場合、エラーは何が表示してます?)

編集 削除
かぼ  2009-11-09 23:23:30  No: 36124  IP: 192.*.*.*

igy様へ

下記の様なエラーが発生します。
[DCC エラー] xxxxx.pas(xx): E2003 未定義の識別子 : 'QueueEvents'
[DCC エラー] xxxxx.pas(xx): E2003 未定義の識別子 : 'CancelEvents'

TIBEventsにはもう存在しないと言うことでしょうか?
どの様に書き換えればいいのでしょうか?

編集 削除
かぼ  2009-11-09 23:33:12  No: 36125  IP: 192.*.*.*

igy様へ

下記の様なエラーも出ています。

'TIBEvents'は'CancelEvents'という名前のメンバを含んでいません
'TIBEvents'は'QueueEvents'という名前のメンバを含んでいません

編集 削除
igy  2009-11-10 13:02:02  No: 36126  IP: 192.*.*.*

TIBEvents は使ったことがないで、詳しくないのですが・・・

ヘルプを見たところ、Delphi2009では、
QueueEvents メソッド
CancelEvents  メソッド
は、ないみたいですね。


OnEventAlert イベントは、

>OnEventAlert イベントハンドラを記述すると,InterBase イベントを
>受け取ったときに特定の動作を行うことができます。
>イベントを受け取らないようにするには,イベントハンドラで 
>CancelAlerts を true に設定します。再びイベントを受け取る
>には,GetAutoRegisterメソッドを呼び出します。
>OnEventAlert イベントハンドラ内から RegisterEvents,UnRegisterEvents,
>GetAutoRegister,または SetAutoRegisterを呼び出すことはできません。

とのことなので、(試してはいないのですが)
OnEventAlert イベントのCancelAlertsの設定とGetAutoRegisterメソッド
を使うことで代用するのは、いかがですか?

編集 削除
かぼ  2009-11-10 20:42:03  No: 36127  IP: 192.*.*.*

igy様

有難う御座います。
コンバートが完了したらいろいろ試してみます。
(まずはコンパイルを通すことですね)

また宜しくお願いいたします。

編集 削除