はじめまして
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は初心者です。)
>Delphi5で書かれた古いコードをコンバート(Delphi2009)したいのですが、
Delphi2009でコンパイルしてエラーが表示するのですか?
(その場合、エラーは何が表示してます?)
igy様へ
下記の様なエラーが発生します。
[DCC エラー] xxxxx.pas(xx): E2003 未定義の識別子 : 'QueueEvents'
[DCC エラー] xxxxx.pas(xx): E2003 未定義の識別子 : 'CancelEvents'
TIBEventsにはもう存在しないと言うことでしょうか?
どの様に書き換えればいいのでしょうか?
igy様へ
下記の様なエラーも出ています。
'TIBEvents'は'CancelEvents'という名前のメンバを含んでいません
'TIBEvents'は'QueueEvents'という名前のメンバを含んでいません
TIBEvents は使ったことがないで、詳しくないのですが・・・
ヘルプを見たところ、Delphi2009では、
QueueEvents メソッド
CancelEvents メソッド
は、ないみたいですね。
OnEventAlert イベントは、
>OnEventAlert イベントハンドラを記述すると,InterBase イベントを
>受け取ったときに特定の動作を行うことができます。
>イベントを受け取らないようにするには,イベントハンドラで
>CancelAlerts を true に設定します。再びイベントを受け取る
>には,GetAutoRegisterメソッドを呼び出します。
>OnEventAlert イベントハンドラ内から RegisterEvents,UnRegisterEvents,
>GetAutoRegister,または SetAutoRegisterを呼び出すことはできません。
とのことなので、(試してはいないのですが)
OnEventAlert イベントのCancelAlertsの設定とGetAutoRegisterメソッド
を使うことで代用するのは、いかがですか?
igy様
有難う御座います。
コンバートが完了したらいろいろ試してみます。
(まずはコンパイルを通すことですね)
また宜しくお願いいたします。
ツイート | ![]() |