Heh, spróbuję ponownie, jeszcze raz przepraszam za wczesniejszy bałagan i bardzo prosze o pomoc.
var
//recount to liczba Tricheditów
retab:array of Trichedit;
ar:array of integer;
strl:Tstringlist;
begin //wczesniej do tablicy retab wpisane są referencje recount Tricheditow
//(od 0 do recount-1) znajdujacych sie na panelu na formie
setlength(ar,recount+1);strl:=tstringlist.Create;
for i:=1 to recount do begin
ar[i]:=length(retab[i-1].Lines[0]);
// strl.Add(retab[i-1].Lines[0]); 1*
po[i-1]:=@retab[i-1].Lines[0][1]; // 2**
// po[i-1]:=@strl[i-1][1]; 2*
str:='';setlength(str,ar[i]);
move(po[i-1]^,str[1],ar[i]);//pierwsze sprawdzenie i tu jest ok
end;
for i:=1 to recount do begin //drugie sprawdzenie
str:='';setlength(str,ar[i]);
move(po[i-1]^,str[1],ar[i]); //i tu juz jest dupa- str nie zawiera poprawnego {**}
end; //stringa takiego jaki powinien byc pod po[i-1]^
strl.free;
end;
Jesli wytnę 2** dajac 1* i 2* (to znaczy z pośrednictwem strl) wtedy wszytsko jest ok i sprawdzenie {**} daje poprawne stringi w str w kazdym kroku iteracji.
Dlaczego tak sie dzieje?