Bonjour à tous,
J'ai développé une application en GUI utilisant un thread (unit2). Pour la synchronisation et l'échange de données, j'ai utilisé une "critical section" dans unit1. Unit1 utilise (uses) unit2 et inversement. Jusque là, pas de problème.
J'ai voulu adapté ce programme en application console.
Dans le main.dpr:
Dans unit2, j'utilise cette critical section:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 type TMyClass = class(TComponent) procedure createthread; private fHWnd: HWND; Closing: boolean; FStringSectInit: boolean; FScanThread: TScan; FStringBuf: TStringList; procedure HandleNewData(var Message: TMessage); message WM_DATA_IN_BUF; public StringSection: TRTLCriticalSection; // -----> Critical section qui était dans unit1 dans le GUI et qui est maintenant dans main.dpr property StringBuf: TStringList read FStringBuf write FStringBuf; constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure run; end; var Application: TMyClass;
A la compil:
Code : Sélectionner tout - Visualiser dans une fenêtre à part EnterCriticalSection(Application.StringSection);
[Error] Unit2.pas(126): Undeclared identifier: 'Application'
Logique, unit2 n'utilise (uses) pas main.dpr où est déclaré Application.
Quelqu'un pourrait me dire comment faire pour régler ce problème ?
Partager