Entwickler-Ecke

Multimedia / Grafik - Generelle Frage von Aufbau eines Bildes, verm. mit TImage


Kay E. - Sa 13.11.10 20:16
Titel: Generelle Frage von Aufbau eines Bildes, verm. mit TImage
Hallo!

Ich möchte eine Art Schachbrett zeichnen, wobei jedes Feld 64x64 Pixel groß wird. Es wird 6x6 Felder geben. Jedes Feld soll seinen Inhalt (seine Grafik) ändern, wenn ich darauf klicke ( es gibt einen Ursprungszudstand, einen Zustand für Rechte Maustaste und einen für die linke Taste).
Gedacht habe ich mir, dass ich (für die weitere Verarbeitung) ein Array of integer anlege, in dem ich die Information speichere (o für Urpsrung, 1 für links, 2 für Rechts). Ich laufe durch das Array durch und baue das ferige Bild aus den verschiedenen 64x64 Px großen Bildern zusammen und geb das Bild an die TImage-Komponente weiter.
Es wäre natürlich simpler, einfach 36 Image-Komponenten einzubauen und die separat anzusteuern, aber ich würde einfach eine elegantere Methode bevorzugen.
Wenn ihr mir da helfen könntet, wie ich da vorgehen kann, das wäre super.

Und noch ne Kleinigkeit: Ich möchte gerne den Dateinamen des Bildes, das in einem TImage gerade angezeigt wird, mit einem anderen Pfadnamen vergleichen. Der einzige Methodenaufruf den ich in der TImage gefunden habe dazu ist der "GetFileName". Dazu steht aber in der Delphi-Hilfe, dass das nur für interne Anzeigen im Objektinspektor gedacht ist und man das niemals direkt aufrufen soll. Wie kann ich denn dann den Dateinamen des angezeigten bildes erfahren und vergleichen?


Danke schonmal für eure Antworten!

Grüße Kay


Moderiert von user profile iconMartok: Topic aus VCL (Visual Component Library) verschoben am Sa 13.11.2010 um 19:26


bummi - Sa 13.11.10 20:24

Du kannst eine "Array of Record" aufbauen, kannst kannst Du alle Informationen unterbringen.
Bei lauter gleichgroßen Bildern würde ich Dir eine Imagelist ans Herz legen, diese kannst Du per Draw diekt Deine Bilder malen lassen. Zudem solltest Du IMHO eine Paintbox statt eines Images nehmen und dort im OnPaint die Bilder darstellen.


Delete - Sa 13.11.10 22:59

Wobei sich hier auch ein objektorientierter Ansatz anbieten würde. Jedes Feld ist ein Objekt. Jedes Feld kennt dann seine Postion und seinen Zustand. Das Brett selber ist dann eine Containerklasse, welches die Objekt-Felder beinhaltet und verwaltet. Du kannst dir da auch mal mein Tutorial zu Containerklassen angucken: http://www.michael-puff.de/Programmierung/Delphi/Tutorials/Container-Klassen/


Kay E. - Mo 15.11.10 16:41

Danke für eure Antworten, ich werde heute abend mal versuchen, eure Vorschläge umzusetzen. Vielen Dank!
@Luckie: Dein Tutorial hab ich mal runtergeladen und schau es mir auch heute abend mal an. Wenn du nichts dagegen hast, werd ich mir die anderen Tutorials auf deinem FTP auch mal durchlesen.

Grüße Kay