Hi,
Ich stehe mal wieder vor einem ziemlich komischen Problem:
Ich will eine Grafik erstellen, die mir anzeigt, wo in einer Bildzeile welcher Farbanteil wie stark vorhanden ist. Dafür habe ich mir folgenden Code überlegt (scal und image321 sind image-Componenten der Graphics32-Lib)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
x: integer;
rgb_col: Tcolor;
rgb_col2: Tcolor32;
begin
form2.Show;
form2.scal.Bitmap.Create;
form2.scal.Bitmap.Clear(clblack32);
for x := 0 to form3.Image321.Bitmap.Width - 1 do
begin
rgb_col2 := form3.image321.Bitmap.Pixel[x,spinedit1.Value];
rgb_col := ColorToRGB(rgb_col2);
form2.scal.Bitmap[x, GetRValue(rgb_col)] := clRed32;
form2.scal.Bitmap[x, GetGValue(rgb_col)] := cllime32;
form2.scal.Bitmap[x, GetBValue(rgb_col)] := clblue32;
end;
form2.scal.refresh;
end;
Dabei liegt der Fehler in dem Bereich:
Delphi-Quellcode:
form2.scal.Bitmap[x, GetGValue(rgb_col)] := clRed32;
form2.scal.Bitmap[x, GetGValue(rgb_col)] := cllime32;
form2.scal.Bitmap[x, GetBValue(rgb_col)] := clblue32;
Wenn ich diesen Bereich auskommentiere geht es. (Das Imagefenster ist auch nicht zu klein, denn ich kann auch einen Festen Pixel angeben und es klappt nicht).
wenn ich diese procedure aufrufe kommt die Fehlermeldung: 'Project Project1.exe raised
exception class EAccessViolation at address 00468A9B in module Project1.exe. Write of address 000000000. Process stopped. Use Step or Run to continue
Danke im voraus
BasicX