Hi All,
On recent FPC 2.6.1 I notice a strange behavior with TStringList.Destroy
TStringList.Destroy, calls method TStringList.Clear, but the problem is that 
TStringList.Clear call methods Changing and Changed

This affect Zeos 6.6.6, I presume is because Zeos try to read Params from the 
SQL.Text, every time a Change occurs

I suggest a new InternalClear method, without calling Change/Changed that can 
be used in Destroy and Clear methods...

Some thing like this:

destructor TStringList.Destroy;
Var I : Longint;
begin
  FOnChange:=Nil;
  FOnChanging:=Nil;
  InternalClear;
  Inherited destroy;
end;

Procedure TStringList.Clear;
Var I : longint;
begin
  if FCount = 0 then Exit;
  Changing;
  InternalClear;
  Changed;
end;

Procedure TStringList.InternalClear;  (Private)
Var I : longint;
begin
  if FCount = 0 then Exit;
  
  if FOwnsObjects then
    begin
      For I:=0 to FCount-1 do
        begin
          Flist^[I].FString:='';
          freeandnil(Flist^[i].FObject);
        end;
    end
  else
    begin
      For I:=0 to FCount-1 do
        Flist^[I].FString:='';
    end;
  FCount:=0;
  SetCapacity(0);
end;



 
[]s Daniel

Conheça o Projeto ACBr - Automaçao Comercial Brasil
DJSystem a Loja Patrocinadora do ACBr
--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to