Du initialisierst s nicht. Ich bin gerade unsicher, ob das für lokale Strings nötig ist, aber setz vor deine Schleifen mal ein "s := '';". Ansonsten ist das Zusammenbauen mit "s := s + t" an sich nicht falsch, wenn auch nicht gerade speicherfreundlich.
Edit: Und gewöhne dir in deinem eigenen Interesse eine Codeformatierung an. Erhöht die Lesbarkeit gewaltig!
Delphi-Quellcode:
procedure TForm15.Button2Click(Sender: TObject);
var
color: TColor;
B, Y, X: Integer;
hex, s, t:string;
begin
for Y := 0 to Image1.Height-1 do
begin
s := '';
for X := 0 to Image1.Width-1 do
begin
color := image1.Canvas.Pixels[X, Y];
B := GetBValue(color);
t := Chr(B);
//Showmessage(t);
s := s + t;
end;
Memo1.Lines.add(s);
end;
end;
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)