Array prob

Online-Skater

Erfahrenes Mitglied
Code:
procedure TForm1.FeldPaint(Sender: TObject);
var i : integer;
begin
  with Feld.Canvas do
    begin
       pen.Color := clBlack;
       brush.Color := clSilver;
       rectangle(0,0,401,401);
    end;
  i := 5;
  while i < 400 do
    with Feld.Canvas do
      begin
         MoveTo(i,0);
         LineTo(i,400);
         MoveTo(0,i);
         LineTo(400,i);
         i := i + 5;
      end;
end;

Problem: Ich hab ein Feld mit kästchen drinn wie kann ich das mit arrays initialisieren und ansprechen ?
also feld[1,1] usw..

wäre cool wenn mir ein tip gegeben wird :)
denn ich hatte alternativ ein Stringgrid da kann ich ja per Stringgrid1.Cell[a,b] zugreifen aber wenn was gezeichnet wied weis ich es nicht :rolleyes:
 
Problem nicht verstanden. Da du ja selbst "feld[1,1]" erwähnst, weißt du ja offensichtlich, wie man ein Array anspricht. Wie man es initialisiert, weißt du somit ja sicher auch: feld[1,1] := XY. Was genau willst du realisieren?
 
hier

Also so sieht es aus ! Der Code ist oben !
Man sieht ein Viereck bestehend aus 80*80 Kästchen, das wäre ein 2-dimensionales Array und ja wie das aufgebaut ist weis ich schon.

Frage: Wie spreche ich zum Beispiel das Feld 1,1 an ? z.B klicke ich aud das erste Feld links oben :) dann soll es sich färben zum Beispiel. Es ist vllt. schwer zu beschreiben, aber ich möchte die kästchen als array damit man damit was anfangen kann.

Hinweis: Bei StringGrid kann ich so machen: Feld[1,1] := StringGrid1.Cell[1,1];

Ich möchte damit Gol realisieren und brauche Ansprechmöglichkeiten
hoffe es war verständlich
 
Ach sooooo! Das musst du doch sagen, dass du eine Maussteuerung implementieren willst. Du willst mit der Maus in ein Feld klicken und darauf reagieren. Das heißt, du musst auf ein OnMouseDown-Ereignis reagieren. Dafür legst du einen Eventhandler an. Der Handler bekommt die Klickposition als X- und Y-Koordinate geliefert. Anhand dieser Koordinaten kannst du berechnen, in welches Kästchen geklickt wurde. Hilft dir das?

-Gawayn
 
ja ok das wüsste ich nicht zu machen

bei StringGrid gibs ja die procedure SelectCell dann hatte man Zeilen und Spaltenindex und somit konnte man es gut im arry verarbeiten aber mit koordinaten kann ich kein arry ansprehcen außer meine kästchen sind 1*1 Pixel groß :eek:
 
Mit den Koordinaten wirst du das Feld ansprechen MÜSSEN, denn schließlich geht es ja um einen Mausklick!

Du hast also eine Mausposition, z.B. Xm, und du suchst die Feldkoordinate Xfk. Du weißt, wie breit dein Feld ist, nämlich Xf Pixel, und du weißt, aus wievielen Zellen es besteht, nämlich Xz. Eine Zelle ist somit Xf/Xz Pixel breit. Wie nun kommt man wohl bei gegebenem Xm auf Xfk? Jo: Indem man Xm durch Xf/Xz teilt. Natürlich muss vorher noch der X-Offset des Feldes von Xm subtrahiert werden. Mit Xy geht das analog.

-Gawayn
 
jopp thx habs hinbekomm bin jetzt beim markieren bei denke das wird scho :)

noch ne Frage: Wie kann ich das kombinieren:
OnMouseDown mit OnMouseMove denn ich will bei gedrückter maustaste kästchen malen ?
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück