Autor Beitrag
Kay E.
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 118



BeitragVerfasst: Sa 13.11.10 20:16 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: 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.

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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: www.michael-puff.de/...s/Container-Klassen/
Kay E. Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 118



BeitragVerfasst: 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