Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#11

Re: Keine 0 schreiben, aber lesen! o.O

  Alt 7. Sep 2006, 17:53
Ach son Quatsch.. Es liegt wie gesagt nicht am laden. Hab mir schonmal jede einzelne ID ausgeben lassen nach dem laden und keiner war 0. (Gültige ID-Werte sind x*4)

Aber meine Draw Procedure verursacht immer eine AV.

Delphi-Quellcode:
procedure TcfrMapView.Draw(dx,dy: Integer);
var i: Integer;
    tdx,tdy: Integer;
    tb,tob: TBitmap;
begin
  with ImgSurface.Picture.Bitmap.Canvas do
  begin
   Brush.Color := clblack;
   Rectangle(-1,-1,Width+1,Height+1);

   if Length(frmMain.Map.MapPlan) = 0 then exit;

   // Tiles
   for i:= 0 to High(frmMain.Map.MapPlan) do
   begin
   tdx := ((i mod frmMain.Map.Width)*64)+(-dx*64);
   tdy := ((i div frmMain.Map.Width)*64)+(-dy*64);
    if (frmMain.Map.MapPlan[i] <> High(Cardinal)) and
       (tdx <= imgSurface.Width) and
       (tdy <= imgSurface.Height) and
       (tdx >= 0) and
       (tdy >= 0) then
    begin
     tb := TBitmap.Create;
     tob := TBitmap.Create;
     tb.Assign(frmMain.Textures[(frmMain.Map.MapPlan[i] div 4)-1].Bitmap);
     tob.Assign(frmMain.Textures[(frmMain.Map.MapPlan[i] div 4)-1].Overlay);
     RotateBitmap(tb,(frmMain.Map.MapPlan[i] mod 4)*90);
     RotateBitmap(tob,(frmMain.Map.MapPlan[i] mod 4)*90);
     Draw(tdx,tdy,tb);
     Draw(tdx,tdy,tob);
    end;
   end;
   ... // Unwichtig
end;
Warum krachts da? Wenn ich Einzelschritte mache oder mir bei jedem/einem beliebigen Schleifendurchlauf ne Message anzeigen lasse dann klappt alles -.- Und vorher hat auch alles geklappt... Die procedure HAT mal geklappt.. und seitdem meine IDs nicht bei 0 anfangen (0,4,8,12,..) sondern bei 4 (4,8,12,...) krachts da irgendwo.. aber ich habe sonst auch alles auf 4 umgestellt. Das ist sicher.

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat