Ich weiss es ist eigentlich eine unart aber Shapes zur Laufzeit zu erzeugen macht warscheinlich keinen sinn. Rech speicherfressende Methode und mit dem selben Codeaufwand warscheinlich weniger hast du das ganze auf nen Canvas gezeichnet.
Schreibfehler
Ich nutze Shapes da ich für jedes ein onclick event benötige und zu faul war/bin die
Mausposition abzufragen um zu prüfen welches Quadrat angeclickt wurde.
Der erste Code wurde ausgeführt wenn der Wert eines LabelEdit geändert wurde und der zweite Test-Code wenn ein Button gedrückt wurde.
Falls jemand eine bessere Idee hat:
Ich möchte ein Raster erzeugen, in dem jedes Element angeklickt werden kann.
Gruß
Pierre
Das Herz besitzt Gründe, die die Vernunft nicht kennt.
pierredrks hat geschrieben:
Ich nutze Shapes da ich für jedes ein onclick event benötige und zu faul war/bin die
Mausposition abzufragen um zu prüfen welches Quadrat angeclickt wurde.
Wenn du zu faul bist, solltest du schlafen gehen und nicht weiter programmieren
So ein Raster auf den Canvas zu erzeugen ist viel einfach.
und das abfangen der Maus Pos auch.
Wenn das raster sagen wie 20X20 pixel groß ist könntest du folgendes bei onmousedown machen:
x div 20; y div20;
Die werte auffangen und fertig. Die kannst du für dein 2D Array verwenden.
Jetzt musst du nur noch das raster mit zwei For schleifen Zeichnen.
Hallo
und danke für die schnelle Hilfe.
Mit String- und DrawGrid hat es leider nicht so funktioniert wie ich es wollte,
also habe ich es jetzt über Canvas gelöst.
Das Herz besitzt Gründe, die die Vernunft nicht kennt.
Und so könntest du auch noch ein Hintergrund Bild einfügen und darauf dein raster zeichnen. Damit tuen sich ja die LCL Komponenten im Moment noch zimlich schwer mit.....
Mach ja auch wenig sinn.
Stell dir ma vor jeder bastelt applikationen mit irgendwelchen hintergrundbildern dahiner da kann man sich keine einziges programm mehr anschaun sowas ist einfsch unprofessionell.
Für manche Sachen währe das aber Praktisch z.b. für Spiele oder für Multimedia Player oder für ein Info Dialog oder so... muss man es ja nicht übertreiben, aber etwas mehr Grafik währe auch nicht schlecht....