Немного добавлю в код:
Код:
interface
uses
SyncObjs,
...
implementation
var
CriticalSection: TCriticalSection;
function GetMemo: String;
begin
CriticalSection.Enter;
try //<------------------------------------------------
if Form1.Memo1.Lines.Count>0 then
begin
Result:=Form1.Memo1.Lines[0];
Form1.Memo1.Lines.Delete(0);
end else Result:='';
finally
CriticalSection.Leave;
end;
end;
...
initialization
CriticalSection:=TCriticalSection.Create;
finalization
CriticalSection.Free;
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.
Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
|