![]() |
Re: Lösung für 2D Brett
Diese würde ich aber erst zur Laufzeit erzeugen und dann füllen, denn sonst wird seine *.exe ja unglaublich groß!
Hätte außerdem den Vorteil, dass er einfach die Bilder verändern kann und nicht jedesmal das Programm neu erzeugen müsste! |
Re: Lösung für 2D Brett
@SimStar001:Vielen Dank für den Link, allerdings steht dort zum Thema Grafiken im Sinne von JPG und Bitmap, etc nicht allzu viel. Trotzdem schon mal vielen Dank, das ist ein gute Nachschlagewerk...
@Satty67: Ich werde mir den Befehl mal genauer angucken. Im Prinzip werden am Anfang des Programmes alle 49 Felder einmal mit einer Grafik belegt. Anschließend werden zur Laufzeit die Bilder je nach Ereignis wieder geändert. Mir sind zwar zu dem Thema noch nicht alle Sachen klar aber ich werd mal nach dem Motto "Probieren geht über studieren" anfangen, und falls ich mich festfahre schau ich hier mal wieder rein. Vielen Dank an alle |
Re: Lösung für 2D Brett
Also das ganze kann man mit einem Record machen, du könntest auch eine eigene klasse erstellen, würde ich zum beispiel so machen.
Aber du sgast ja selbst du bist anfänger, dann hat dass für dich denke ich noch keinen sinn. Soll heißen, probier es ruhig so aus wie du es denkst, dass es funktioniert. wenn am ende alles so läuft wie du es dir vorstellst, dann kannst du ja den nächsten schritt gehen und versuchen es anders, vielleicht eleganter und effektiver zu lösen. Schließlich geht ja probieren über studieren! |
Re: Lösung für 2D Brett
Wie das mit Klassen geht wäre schon interessant, da ich in meinem Programm schon einige Klassen schon verwende...
|
Re: Lösung für 2D Brett
So da komm ich dann nochmal: Ich hatte vor die Felder als zweidimensionalen Array einer Klasse zu verarbeiten. Zweidimensionaler Array damit eine Variable für die X und eine für die Y koordinate ist. Wie ordne ich nun jeder Variable aus dem Array eine Bitmap zu?
Im Prinzip habe ich hier das Problem, dass ich pro Feld eine Bitmap mit einem Feld verknüpfen muss, ist das irgendwie möglich. Bei dieser Verknüpfung muss auch irgendwo(?) irgendwie (?) festgelegt werden wo sich das Bild überhaupt befindet.. Wäre super wenn mir da nochmal jemand auf die Sprünge helfen könnte.. Vielen Dank |
Re: Lösung für 2D Brett
Du erstellst am besten ein Array of TBitmap, wo du alle möglichen Bilder hineinlädst.
Und in deinem Spielfeld-Array merkst du dir nur den Index, welches Bild gezeichnet werden soll. |
Re: Lösung für 2D Brett
Ok damit wäre die Zuordnung geklärt..
Wie lege ich dann am Ende fest wo das entsprechende Bild im Programm gezeichnet wird, also die Position? Wie genau ist da dann der Befehl? Das muss ja wahrscheinlich über eine Pixelangabe ausgehend von links oben gehen oder? |
Re: Lösung für 2D Brett
Also ich weiß ja nicht wie deine Arrays aussehen, aber ich würde es so machen , dass du halt wie schon vorher vorgeschlagen ein Array hast, was am besten aus einem record besteht:
z.b. so
Delphi-Quellcode:
somit hättest du ein Array, mit dem Du beliebig viele Images und anderen Kram erzeugen kannst, den du noch so brauchst.
type TMeinBilderRecord = record
Image : TImage; BildIndex : Integer; ... end; var MeinBilderArray : array of TMeinBilderRecord; Somit wäre auch eine Positionierung kein Problem, denn jetzt kannst du jedem Image in deinem Array auch eine Position geben. z.b.
Delphi-Quellcode:
Aber es kommt halt drauf an wie und was du so alles noch damit machen willst.
MeinBilderArray[0].Image.left := 100;
MeinBilderArray[0].Image.top := 100; MeinBilderArray[0].Image.picture.loadfromfile(xyz); // oder halt mit ner Imagelist und dann den Index zuweisen Wie gesagt, wenn du nen Record und array verwendest, kannst du auch irgendwann selbst nach deinen Wünschen bzw. Bedürfnissen ne eigene Klasse basteln. |
Re: Lösung für 2D Brett
Ich habe hier mal beschrieben wie man Bilder in einem Grid (Tabelle) anzeigt:
![]() Vieleicht hilft dir das weiter. |
Re: Lösung für 2D Brett
Riesen Dankeschön, dass sollte mich einen riesigen schritt weiterbringen. Bei deinem record ist mir aufegefallen, dass du "BildIndex" deklariert hast.
Die folgende Frage hat mit Grafiken nichts mehr zu tun aber ich frag mal trotzdem: Bildindex gibt dem Bild ganz klar eine Zuordnung aber wie erzeuge ich nun das Bild mit dem Bildindex=2? Wie ist da der beste Befehl. Im Moment fällt mir das ganze nur mithilfe einer riesigen If, else if- funktion ein. ungefähr so:
Delphi-Quellcode:
if feldarray[1].bildindex=2 then
begin Feldarray[1]:=Tbitmap.create; Feldarray[1].Loadfromfile(BildMitBildindex2); end else if feldarray[1].bildindex=3 then begin Feldarray[1].bild:=Tbitmap.create; Feldarray[1].bild.Loadfromfile(BildMitBildindex3); //und so weiter end; Das ganze dann für jedes Feld... nen bisschen umständlich oder? wie kriege ich hin, dass ich anstatt so für jedes Feld das zu machen einfach nur einmal deklarieren muss und die Prozedur auf jedes Feld anzuwenden ist. Sorry dass ich wahrscheinlich ne richtig blöde frage stelle aber da scheine ich nen Brett vorm Kopf zu haben. Mfg KahPee |
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