Jeg har to StringList's, hvor den ene skal bruges til at logge alt der der står i den anden...
I StringList1 er der konstant 16 linier, dvs. når der tilføjes en ny i toppen, forsvinder den nederste...
StringList2 ta'r så og logger det hele - dvs. at hvis der tilføjes linier øverst i StringList1, såtilføjes de også øverst i StringList2, men der bli'r ikke fjernet noget fra bunden..
problemet er så, at der til tider bli'r tilføjet 2, 3 eller 4 linier i toppen på en gang (en opdatering), men det har jeg løst ved at bruge denne funktion:
function TMainForm.GetNewLines(): Integer; var I: Integer; begin Result := -1; for I := 0 to StringList1.Count -1 do if StringList1.Strings[I] = StringList2.Strings[0] then begin Result := I; Break; end; end;
Men men men... Hvis der er nogle af linierne i StringList1 der er ens, så går det galt, for så får den ikke alle linier med... det er lidt noget bøv..
procedure TForm1.FormCreate(Sender: TObject); var i : Integer; begin Randomize; StringList1 := TStringList.Create; StringList2 := TStringList.Create; for i := 0 to 15 do StringList1.Add(IntToStr(i)); StringList2.Assign(StringList1); Counter := 0; end;
procedure TForm1.Button1Click(Sender: TObject); var i,j,k : Integer; begin j := random(4); for i := 0 to j do begin inc(Counter); Counter := Counter mod 15; k := Random(15); StringList1[counter] := IntToStr(k); end;
for i := 0 to 15 do if StringList2.IndexOf(StringList1[i]) = -1 then StringList2.Add(StringList1[i]); end;
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.