Hallo,
Ich grübel schon eine ganze Zeit daran einen ganz ähnlichen Qeullcode zu vereinfachen
Delphi-Quellcode:
case ord(system[i]) -64 of
1: speicher[i]:=speicher[i] + FarbenToBit(BMP.canvas.Pixels[y,x], 2, 1);
2: speicher[i]:=speicher[i] + FarbenToBit(BMP.canvas.Pixels[y,x], 4, 2);
3: speicher[i]:=speicher[i] + FarbenToBit(BMP.canvas.Pixels[y,x], 8, 3);
4: speicher[i]:=speicher[i] + FarbenToBit(BMP.canvas.Pixels[y,x], 16, 4);
5: speicher[i]:=speicher[i] + FarbenToBit(BMP.canvas.Pixels[y,x], 32, 5);
6: speicher[i]:=speicher[i] + FarbenToBit(BMP.canvas.Pixels[y,x], 64, 6);
7: speicher[i]:=speicher[i] + FarbenToBit(BMP.canvas.Pixels[y,x], 128, 7);
8: speicher[i]:=speicher[i] + FarbenToBit(BMP.canvas.Pixels[y,x], 256, 8);
end;
Das einzige worin sich die Zeilen unterscheiden sind die letzten beiden Zahlenwerte,
ich komm aber nicht drauf wie ich das mit dem 2,4,8,16,32,etc löse
Zuerst dachte ich so villeicht
speicher[i]:=speicher[i] + FarbenToBit(BMP.canvas.Pixels[y,x], 2*(ord(system[i]) -64), ord(system[i]) -64);
aber das stimmt nur für die ersten 2 Zeilen..... kann wer das zusammenfasse?
Ferby