![]() |
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 |
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 |
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? |
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:
Die Zeile bringt beim Kompilieren kein Problem aber wenn das ganze durch das Programm abgespielt wird dann:
piclist[0].Loadfromfile(ExtractFilePath(ParamStr(0)) + 'pictures\bild1.bmp');
Zitat:
Die Deklarationen (global! nicht lokal)
Delphi-Quellcode:
Die Zusweiung
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;
Delphi-Quellcode:
Das ist eigentlich im Moment der Komplette Teil, der die Grafiken betrifft.
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; _____ noch ein Update: Wenn ich dem:
Delphi-Quellcode:
ein
piclist[0].Loadfromfile(ExtractFilePath(ParamStr(0)) + 'pictures\bild1.bmp');
Delphi-Quellcode:
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.
piclist[0]:=Tbitmap.create;
Vielen Dank an alle Helfer, ich hoffe, dass sich der Fehler iwie noch finden lässt mfg KahPee |
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:
Für was du allerdings picpos benötigst ist mir schleierhaft.
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; 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 16:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz