Перезапись того же значения в переменной
Closed this issue · 0 comments
//представим, что там было 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
Останется проверить, совместим ли код метода с логикой всей системы классов бота.