Forms - Aussehen selbst/frei gestalten



  • Hallo,

    geht es irgendwie der Form ein shape zuzuweisen?

    ALso zum Beispiel die Form Oval zu machen oder so?

    Danke Wiedi



  • Hi,

    nichts ist unmöglich.....

    allerdings ist deine Fragestellung doch einwenig allgemein, oder nicht ?

    etwas genauer bitte.



  • Naja das ich sagen kann die frm soll zum beispiel so aussehen:

    _________________________________
         |                                |
        --                                --
        |                                   |
        |                                   |
        |                                   |
        --                                --
         |                                |
         ----------------------------------
    

    Nur mal so als beispiel...

    ich weiß ein hässliches ascii bild

    🙂

    [ Dieser Beitrag wurde am 03.11.2002 um 20:36 Uhr von Jansen editiert. ]



  • och verdammt, kann kein ascii bild malen

    aber ne form die Oval ist möchte ich machen, und halt wie man das realisieren könnte

    😞



  • kann kein ascii bild malen

    Geht schon, mussu nur die Code-Tags benutzen. 😉

    Zu deiner Frage: du könntest dir zB. bei www.torry.net eine entsprechende Komponente herunterladen, oder du machst dich zum Thema Regions schlau (WinAPI).



  • hm danke ich guck mal



  • Hi,
    Demo:

    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    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);
    HBRUSH hbr1=CreateSolidBrush(RGB(255,0,0));
    HBRUSH hbr2=CreateSolidBrush(RGB(0,255,0));
    
    FillRgn(hdc,EHandle,hbr1);
    FillRgn(hdc,PHandle,hbr2);
    ReleaseDC(Form1->Handle,hdc);
    }
    //---------------------------------------------------------------------------
    


  • Hi,

    oder vielleicht sowas:

    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    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);
    HBRUSH hbr1=CreateSolidBrush(RGB(255,0,0));
    HBRUSH hbr2=CreateSolidBrush(RGB(0,255,0));
    HBRUSH hbr3=CreateSolidBrush(RGB(0,0,255));
    
    FillRgn(hdc,EHandle,hbr1);
    FillRgn(hdc,PHandle,hbr2);
    
    FrameRgn(hdc,PHandle,hbr3,5,5); // ein Rand drumerhum zeichen
    ReleaseDC(Form1->Handle,hdc);
    }
    //---------------------------------------------------------------------------
    


  • hm,

    oder sowas:

    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);
    HBRUSH hbr1=CreateSolidBrush(RGB(255,0,0));
    HBRUSH hbr2=CreateSolidBrush(RGB(0,255,0));
    HBRUSH hbr3=CreateSolidBrush(RGB(0,0,255));
    
    CombineRgn(EHandle,EHandle,PHandle,RGN_OR);
    FillRgn(hdc,EHandle,hbr1);
    FrameRgn(hdc,EHandle,hbr3,5,5);
    ReleaseDC(Form1->Handle,hdc);
    


  • hm, oder möchtest du dem Formular die Form zuweisen ?

    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);
    


  • Hallo,

    ja wollte es der Form zuweisen...

    Sitz nur grad am Falschen Computer, probiers heut mittag mal aus
    Danke vielmals



  • klappt Prima,

    danke


Anmelden zum Antworten