rareMaxim/CloudAPI

Перезапись того же значения в переменной

Closed this issue · 0 comments

https://github.com/ms301/TelegaPi/blob/29f3f37fdbee8f5ec58f8b5c3298e88b95f8ca40/Source/TelegAPI.Receiver.Base.pas#L113

//представим, что там было TRUE, пишем сюда FALSE
procedure TTgBotReceiverBase.SetIsActive(const Value: Boolean);
begin
if FIsActive = Value then Exit;

FIsActive := Value;
if FIsActive then
begin
FThread := TThread.CreateAnonymousThread(Go);
FThread.FreeOnTerminate := False;
FThread.Start;
end
else
begin
FIsActive := False; <--- ТУТ УЖЕ FALSE. СТРОКУ МОЖНО УДАЛИТЬ
FreeAndNil(FThread);
end;
end;

============================
Я бы написал так:
procedure TTgBotReceiverBase.SetIsActive(const ANewActive: Boolean);
begin
if FIsActive = ANewActive then Exit;

if ANewActive then
begin
FThread := TThread.CreateAnonymousThread(Go);
FThread.FreeOnTerminate := False;
FThread.Start;
end
else FreeAndNil(FThread);

FIsActive := ANewActive;
end
Останется проверить, совместим ли код метода с логикой всей системы классов бота.