Delphi-PRAXiS
Seite 2 von 4     12 34      

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)

SimStar001 13. Mai 2009 13:14

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!

KahPee 13. Mai 2009 13:18

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

SimStar001 13. Mai 2009 13:28

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!

KahPee 13. Mai 2009 15:07

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...

KahPee 13. Mai 2009 15:29

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

sirius 13. Mai 2009 15:54

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.

KahPee 13. Mai 2009 16:00

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?

SimStar001 13. Mai 2009 20:02

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:
type TMeinBilderRecord = record
      Image : TImage;
      BildIndex : Integer;
      ...
      end;


var MeinBilderArray : array of TMeinBilderRecord;
somit hättest du ein Array, mit dem Du beliebig viele Images und anderen Kram erzeugen kannst, den du noch so brauchst.
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:
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
Aber es kommt halt drauf an wie und was du so alles noch damit machen willst.

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.

Blup 14. Mai 2009 07:07

Re: Lösung für 2D Brett
 
Ich habe hier mal beschrieben wie man Bilder in einem Grid (Tabelle) anzeigt:

http://www.delphipraxis.net/internal...t.php?t=131850

Vieleicht hilft dir das weiter.

KahPee 14. Mai 2009 14:14

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 19:59 Uhr.
Seite 2 von 4     12 34      

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