paule22 Geschrieben 15. Oktober 2002 Geschrieben 15. Oktober 2002 Hallo Delphianer, Was für echte Programmierer : Ich habe ein riesen Problem: Ich habe eine TPaintBox in der ich rechteckige Quadrate als Netz zeichne Dimension: 25x25 Pixel in der Ausdehnung 25 Felder in X und 15 Felder in Y Richtung Der Rahmen hat 1 Pixel Die PaintBox hat also eine Dimension von 625x375 Pixeln unterteilt in 375 Feldern (Änlich einem Array) Wie ist es aber nun möglich zu Sagen, wenn ich auf Koordinate XY stehe, das ist Feld 1x2 oder Feld 2x3 ? Danke für Codebeispiele und Hilfe im Vorraus Paul
MarcG Geschrieben 16. Oktober 2002 Geschrieben 16. Oktober 2002 Probier es mal, indem du den jeweiligen Wert, also X-Wert bzw. Y-Wert durch 25 teilst, das Ergebnis (ganzzahlig) ist dann die Position in Quadraten, beginnend bei Quadrat 0. Also 25 Quadrate links nach rechts 0 - 24. Dasselbe für die Y-Richtung... Codebeispiel erübrigt sich, denk ich
TAZttDevil Geschrieben 16. Oktober 2002 Geschrieben 16. Oktober 2002 nur mal so am rande.. hast schon mal nicht rechteckige quadrate gesehen?? *ggg* gruß Taz
paule22 Geschrieben 16. Oktober 2002 Autor Geschrieben 16. Oktober 2002 Hallo leutchen, kleiner schreibselfehler :-) naja Spass muss sein sprach Wallenstein .... :-) ging ganz easy, hier wem interessiert der Code: procedure TInitForm2.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var ax,ay, bx,by, cx,cy, xpos: Integer; begin bx := 0; by := 0; for ax := 0 to 25 do begin inc(bx,25); if (X >= bx-25) and (X <= bx) then begin cx := bx div 25; for ay := 0 to 15 do begin inc(by,25); if (Y >= by-25) and (Y <= by) then begin cy := by div 25; Label5.Caption := 'Feld ' + IntToStr(cx) + ' x ' + IntToStr(cy); break; end; end; break; end else Label5.Caption := 'Feld X'; end; Label4.Caption := 'Xpos: ' + IntToStr(X) + ', Ypos: ' + IntToStr(Y); end;
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden