Einzelnen Beitrag anzeigen

BasicX

Registriert seit: 19. Sep 2007
Ort: Celle
30 Beiträge
 
Delphi 2007 Professional
 
#1

Fehler bei Image321.bitmap.pixel[x, y]

  Alt 26. Okt 2007, 18:48
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
  Mit Zitat antworten Zitat