das der Fehler nur autritt wenn du abwechselnd die buttons drückst ist zufall. Denn wie schon geschrieben sorgt folgendes eindeutig dafür das außerhalb von dem speicherbereich von "texi" geschrieben wird.
Delphi-Quellcode:
for i := 1 to Length (texi)*2 do
begin
[...]
Texi[i] := chr (ord (Texi[i]) xor ord(Colord[Colord_cnt]));
end;
Denn wenn "texi" eine länge von "2" hat dann schreibst du bei obiger schleife mit "Texi[i]" mindestens 2 mal außerhalb des speicherbeichs von "texi" (länge(2) * 2 = 4 => du schrebist auf Index 3 und Index 4 obwohl deine Variable von der Länge her nur Index 1 und 2 hat). Dies kann dazu führen das du irgend ein Object von dir im speicher teilweise überschreibst. Und deswegen krachts dann auch wenn du das object ode was auch immer verwenden willst (weil es ja nicht mehr in ordnung ist sondern teilweise mit falschem code überschrieben wurde).