![]() |
Pointarray
hallo brauche viele punktarrays die meistens aus 4 punkten bestehen. Kann ich ein Array auch nur mit einer Codezeile definieren.
Also das ich nicht immer schreiben muss
Delphi-Quellcode:
ich will viele polygonregionen definieren. und möchte nicht jedesmal erst diese 4 zeilen nicht jedesmal schreiben sondern es wäre mir am liebsten wenn ich es so in der art schreiben könnte
var pArray : Array[0..3] of TPoint;
... pArray[0] := ..; pArray[1] := ..; ..
Delphi-Quellcode:
geht das oder muss ich wirklich jedes mal erst die 4 Zeilen schreiben in der ich das Pointarray fülle?
Rgn := CreatePolygonRgn((Point(192, 70), Point(185,100), Point(162,99), Point(157,62)),4,winding)
|
Re: Pointarray
Ich kenne das nur aus PHP, dass man ein Array in "einer Zeile" so definieren kann, wobei ich dazu sagen muss, dass das kein schöner Programmierstil ist. Wer kann das später auf Anhieb noch lesen?
In Delphi geht das meines Erachtens nach nicht. Schreibe dir an dieser Stelle doch einfach eine eigene Methode, die dir das erledigt! Dort kannst du dann auch einfach bestimmen, was alles abgearbeitet werden soll. |
Re: Pointarray
hallo,
danke für die schnelle Antwort. Habe deine Idee umgestzt und mir eine Methode geschrieben die mir aus 8 integerwerten ein Pointarray generiert. Nun habe ich mir überlegt das es doch einfacher wäre in eine Datei die Punkte zu schreiben und dann die regionen automatisch mit einer Routine zu erstellen habe aber keine ahnung wie ich das Anfangen soll. Also was für ein dateityp die Dateis sein muss ob ich die Werte mit Komma, Leerzeichen oder tabstopp trennen soll und wie die einzelnen reginonen also nach acht werten return drücken . Und als letzzes wie ich die werte dann genau auslese. |
Re: Pointarray
Wenn CreatePolygonRgn das Pointer Array als Const deklariert hat, dann geht folgendes:
Delphi-Quellcode:
Rgn := CreatePolygonRgn([Point(192, 70), Point(185,100), Point(162,99), Point(157,62)],4,winding)
|
Re: Pointarray
Zitat:
Folgendes sollte ab Delphi 2006 (2005?) funktionieren:
Delphi-Quellcode:
Wenn du nur Konstanten übergeben möchtest, wäre aber vielleicht eine lokale Arraykonstante die einfachere Lösung.
type
TDynPointArray = array of TPoint; procedure TForm1.Button1Click(Sender: TObject); var Rgn : HRGN; Points : TDynPointArray; begin Points := TDynPointArray.Create(Point(192, 70), Point(185, 100), Point(162, 99), Point(157, 62)); Rgn := CreatePolygonRgn(Points, 4, WINDING); end; Gruß Hawkeye |
Re: Pointarray
Mist! Stimmt, das Point() irgendwie ignoriert - ist ja eine Funktion. Sorry.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz