IBEvent.CancelEventsについて

解決


かぼ  2009-11-10 06:38:12  No: 36122

はじめまして
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-10 07:11:01  No: 36123

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

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


かぼ  2009-11-10 08:23:30  No: 36124

igy様へ

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

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


かぼ  2009-11-10 08:33:12  No: 36125

igy様へ

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

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


igy  2009-11-10 22:02:02  No: 36126

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

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

OnEventAlert イベントは、

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

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


かぼ  2009-11-11 05:42:03  No: 36127

igy様

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加