POINT Array



  • Guten Abend,

    seit kurzem probiere ich mir mein eigendes Form Layout zu basteln dieses klappt auch soweit sehr gut
    nur wird mir der quelltext ein wenig arg lang...

    gibt es eine Möglichkeit POINT variablen z.b.

    POINT L[5];
    L[0].x = 2;
    L[0].y = 5;
    ...

    in einer anderen Form werte zuzuweisen z.B. wie beim integer (int)

    int pos[4] = {25,23,100,50};

    Derzeit scheitert es daran das POINT die variablen x und y fordert und ich nicht weis wie ich diese
    zusammen hängend angeben kann...

    Gruß,
    Crue



  • Eigenes Form Layout ?

    habe ich noch nie gebraucht bzw hast du dir schon mal die Eigenschaften

    -Align
    -AlignWidthMargins
    -Anchors
    -Constraints
    -Margins
    -Padding

    angeschaut?

    die sind eigentlich perfekt um das Layout der Objekte so zu gestalten das es bei fast jeder Darstellung gut aussieht.



  • worauf ich eigentlich hinaus wollte war so etwas:

    Form1->Color=clBlue;
    POINT pts [2];
    pts[0].x= 50;
    pts[0].y=50;
    pts[1].x=100;
    pts[1].y=100;
    pts[2].x=25;
    pts[2].y=100;
    // Elipse
    HRGN EHandle=CreateEllipticRgn(10,10,300,100);
    //poligon
    HRGN PHandle=CreatePolygonRgn(pts,3,WINDING);
    HDC hdc=GetDC(Form1->Handle);
    
    CombineRgn(EHandle,EHandle,PHandle,RGN_OR);
    SetWindowRgn(Form1->Handle,EHandle,true);
    ReleaseDC(Form1->Handle,hdc);
    

    aus http://www.c-plusplus.net/forum/39248

    mir wäre nicht bekannt wie so etwas mittels
    -Align
    -AlignWidthMargins
    -Anchors
    -Constraints
    -Margins
    -Padding

    zu erledigen wäre.

    dennoch suche ich immer noch nach einer Lösung ein POINT Array mit den x und y werten
    ähnlich wie ein int Array mittels { und } in ggf. einer Zeile zu schreiben.

    Das Layout habe ich soweit fertig mir geht es nur darum das ganze übersichtlicher zu gestalten

    Gruß,
    Crue



  • Hallo

    Da POINT aus der WinAPI keinen Konstruktor hat, kannst du leider keine kürzere Syntax verwenden. Mit Konstruktor wäre das möglich :

    POINT pts [2] = {POINT(50, 50), POINT(100, 100), POINT(25, 100)};
    

    Nachtrag : Ich merke erst jetzt, das du das POINT-Array falsch deklariert hast. Du legst 2 Felder an, verwendest aber 3. Wenn du das richtig deklarierst, kannst du die POINTs initialisieren

    POINT pts [3] = {{50, 50}, {100, 100}, {25, 100}};
    

    bis bald
    akari


Anmelden zum Antworten