• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 211
  • Last Modified:

How to encase an external function from a dcu-file?

Hello !
I`m working with d5. In my app i'm using a function from an external dcu-file. I don't have the source of this file. Sometimes this function runs (inside) in an endless loop and my app`s loosing the control...
Are there any possibilities to encase this function to get the exception from inside it? Constructs like "try...function-call...finally..." don't help - Sometimes it stops IN the function :-((
Are there any other solutions?
Best regards,
Ingo

BTW: 165 points are all i have ;-)
0
Ogni
Asked:
Ogni
  • 2
1 Solution
 
geobulCommented:
Hi,

If that function raises an exception then use:

try
  function call
except
  // do something here - error ocured
end;

If it sometimes runs an endless loop then perhaps running the function in a thread could be a solution (your program won't stop at least).

type
  TRunThread = class(TThread)
  public
    procedure Execute; override;
  end;

procedure TRunThread.Execute;
begin
  try
    function call;
  except
    // do something here - error ocured
  end;
end;

// usage
...
with TRunThread.Create(true) do begin         // create the thread but don't start it now...
    FreeOnTerminate := true; // set it to free itself at end
    Resume; // run it
end;
...

Regards, Geo
0
 
OgniAuthor Commented:
Hi Geo !
Thanks a lot !!!
Best regards,
Ingo
0
 
geobulCommented:
You are welcome :-)
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now