Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Lösung für 2D Brett (https://www.delphipraxis.net/133988-loesung-fuer-2d-brett.html)

KahPee 15. Mai 2009 18:13

Re: Lösung für 2D Brett
 
Lass dir Zeit will niemanden hetzten mache sowieso gleichmal Pause:

wenn man dies hier benutzt: ExtractFilePath(ParamStr(0)) + dann braucht man aber ein Teil des Programms der das ganze installiert oder? gibt es soetwas vorgefertigt? Ansonsten würde ich dran ja nochmal ne weile sitzen :D:D

schon mal vielen Dank im vorraus

KahPee

SimStar001 15. Mai 2009 18:38

Re: Lösung für 2D Brett
 
ExtracFilePath(ParamStr(0)) gibt genau den Pfad an, indem sich deine ausführende Exe befindet


Check mal Posteingang

KahPee 15. Mai 2009 19:46

Re: Lösung für 2D Brett
 
Könnte das Problem daran liegen, dass ich mit Delphi4 arbeite?

Wüsste jemand wie das da geht?

KahPee 16. Mai 2009 09:00

Re: Lösung für 2D Brett
 
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.

Delphi-Quellcode:
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:
Delphi-Quellcode:
piclist[0].Loadfromfile(ExtractFilePath(ParamStr(0)) + 'pictures\bild1.bmp');
ein
Delphi-Quellcode:
piclist[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

Blup 18. Mai 2009 08:28

Re: Lösung für 2D Brett
 
Das Bitmap existiert doch schon, du musst keine neue Bitmap erzeugen sondern nur das Bild aus der Liste der Feldvariablen zuweisen.
Delphi-Quellcode:
With fields[1,1] do //für Feld(1,1)
begin
  pic := piclist[0]; // oben geladenes Bild zuweisen
  picpos.top:=21;
  picpos.left:=212;
end;
Für was du allerdings picpos benötigst ist mir schleierhaft.
Die Position auf dem Bildschirm ergibt sich doch aus der Position im Array und der Breite der Bilder + Rand.

Das Zeichnen auf dem Bildschirm musst du natürlich selbst vornehmen.
Nimm einfach eine TPaintbox und im Ereignis OnPaint zeichnest du alle Felder auf den Canvas diese Komponente.
(Hier würde ich auch die Position berechnen.)
Das Neuzeichnen nach Änderungen am Array löst man mit Paintbox1.Invalidate aus.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:31 Uhr.
Seite 4 von 4   « Erste     234   

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