AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Keine 0 schreiben, aber lesen! o.O

Ein Thema von Neutral General · begonnen am 7. Sep 2006 · letzter Beitrag vom 7. Sep 2006
Antwort Antwort
Seite 2 von 2     12   
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, 18: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
Benutzerbild von Flocke
Flocke

Registriert seit: 9. Jun 2005
Ort: Unna
1.172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#12

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

  Alt 7. Sep 2006, 19:54
Ersetze in deinem Code mal Read und Write durch ReadBuffer und WriteBuffer. Die haben dieselbe Semantik, lösen aber eine Exception aus wenn das Lesen bzw. Schreiben nicht klappt. Dann bist du auf jeden Fall dahingehend auf der sicheren Seite, dass die Ein- und Ausgabe funktioniert.
Volker
Besucht meine Garage
Aktuell: RtfLabel 1.3d, PrintToFile 1.4
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

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

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

  Alt 7. Sep 2006, 20:16
Ich hab herausgefunden woran es liegt -.-^^

Ich habe wenn ich meinen Editor starte keine Textur angewählt gehabt (Die ID mit der gemalt wird = 0)
So wenn man jetzt beim Opendialog auf öffnen geklickt hat, ist der Klick durch den Opendialog auf mein Image und hat ausgelöst das die ID meines Pinsels an diese Stelle gesetzt wird => Die 0 wird gesetzt und während meine Procedure noch läd schleicht sich eine 0 is mein Feld und dann will mein Programm malen und *booom* -.-^^ Hab jetzt den Start-Brush auf ID=4 gesetzt....

Aber wieso geht der Klick dadurch? Kann ich irgendwie machen das das nicht so ist ?

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
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz