Il 28/04/2012 10:21, Mattias Gaertner ha scritto:
On Sat, 28 Apr 2012 01:24:03 +0200
Giuliano Colla<[email protected]>  wrote:

[...]
I could provide a patch if pointed to the right area of code to deal
with. IDE things remain a big mystery to me.
AFAIK the real pain is to find the cause of the strange/misleading
error messages. The remedy itself is pretty simple (a flag or a tiny
code change).


The problem arises from TThread being in fpc rtl, which is of course unaware of Lazarus needs. In Customdrawn, where I experimented a separate thread for timer events, it's been quite easy to add a clear error message if threading is not enabled:

constructor TCDX11TimerThread.Create(CreateSuspended: Boolean;
  const StackSize: SizeUInt);
var
  thisTM: TThreadManager;
begin
  GetThreadManager(thisTM);
  if not Assigned(thisTM.InitManager) then begin
    Raise Exception.Create
    ('You must define UseCThread (-dUseCThreads in Project Options->  Compiler 
Options) in order to run this program!');
    end;
  inherited Create (CreateSuspended);
  [..]

A LazThread class defined in LCL which wraps TThread and performs appropriate checks could be a solution?

Giuliano


--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to