Thema: Delphi Lösung für 2D Brett

Einzelnen Beitrag anzeigen

Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#34

Re: Lösung für 2D Brett

  Alt 16. Mai 2009, 09:00
So jetzt mal nen Umfangreiches Update zu dem Thema:

Ich habe inzwischen ne ganze Ecke rumgespielt und bin auch schon weitergekommen.

Im Moment gibt es allerdings immer noch ein paar Fehler.

piclist[0].Loadfromfile(ExtractFilePath(ParamStr(0)) + 'pictures\bild1.bmp'); Die Zeile bringt beim Kompilieren kein Problem aber wenn das ganze durch das Programm abgespielt wird dann:

Zitat:
Im projekt Projekt1.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Zugriffsverletzung bei der Adresse 0045A3B5 in Modul 'Projekt1.exe'.Lesen von Adresse 00000000'. Prozeß wurde angehalten. Mit einzelne Anweisung oder Start fortsetzten.
Hier nochmal Teile des Programms denn die ganze Grafikgeschichte betrifft:

Die Deklarationen (global! nicht lokal)
Delphi-Quellcode:
type
Tpicpos = record
           top,
           left: integer;
          end;

Tfield = record
           //noch andere Variablen
           pic: Tbitmap;
           picpos: Tpicpos;
        end;


var piclist: array[0..11] of TBitMap;
   fields: array[1..7,1..7] of Tfield;
Die Zusweiung
Delphi-Quellcode:
piclist[0].Loadfromfile(ExtractFilePath(ParamStr(0)) + 'pictures\bild1.bmp');
With fields[1,1] do //für Feld(1,1)
     begin
      pic:= Tbitmap.create; //fields.pic erzeugen
      pic.assign(piclist[0]); // oben geladenes Bild zuweisen
      picpos.top:=21;
      picpos.left:=212;
{Dies sind die beiden Variablen für die Bildposition allerdings gelingt es mit nicht das auch auf das Bild zu beziehen. pic.top / pic.left gibt Fehler aus ([Fehler] Unit1.pas(175): Undefinierter Bezeichner: 'top'). Genauso: pic.picture.top oder pic.picture.bitmap.top}
end;
Das ist eigentlich im Moment der Komplette Teil, der die Grafiken betrifft.

_____
noch ein Update:

Wenn ich dem:
piclist[0].Loadfromfile(ExtractFilePath(ParamStr(0)) + 'pictures\bild1.bmp'); einpiclist[0]:=Tbitmap.create; voranstelle bekomme ich nicht mehr den AccessViolation Fehler, allerdings wird das Bild dann auch nicht angezeigt. Was ganz einfach daran liegen könnte, dass dem Bild keine Position zugewiesen wird.

Vielen Dank an alle Helfer, ich hoffe, dass sich der Fehler iwie noch finden lässt


mfg KahPee
  Mit Zitat antworten Zitat