Groupbox teilweise drucken



  • Hallo Community,

    ich würde gerne den Inhalt einer Groupbox teilweise drucken. Derzeit drucke ihc die Groupbox so:

    Graphics::TBitmap *bmp=new Graphics::TBitmap();
    bmp->Width=GroupBox5->BoundsRect.Width();
    bmp->Height=GroupBox5->BoundsRect.Height();
          bmp->Canvas->CopyRect(bmp->Canvas->ClipRect,this->Canvas,GroupBox5->BoundsRect  );
    bmp->SaveToFile(workpath+"pics\\graph.bmp");
    delete bmp;
    

    Jetzt würde ich aber gerne nur 2/3 des Inhalts (Breite) der GroupBox drucken, möglichst vergrößert auf die echte Breite der Groupbox.
    Ich könnte natürlich das erzeugte Bild neu öffnen und schneiden, aber vlt. hat jemand eine Idee wie es in einem Durchgang geht. Danke

    Gruß myerscola



  • #include <memory>
    
    	std::unique_ptr<Graphics::TBitmap>bmp(new Graphics::TBitmap());
    	bmp->Height = GroupBox5->Height;
    	bmp->Width = GroupBox5->Width/3*2;
    	GroupBox5->PaintTo(bmp.get()->Canvas, 0, 0);
    

    Ich denke mal die einfachste Variante ist das Bitmap nur 2/3 breit zu machen
    dann scheidet sich das Bild selbst ab.
    Bzw. was ist mit "möglichst vergrößert auf die echte Breite der Groupbox" gemeint?
    Skaliert oder soll der Groupboxrand komplett sichbar sein mit 1/3 leerer platz?



  • danke erst mal

    unique_ptr
    

    gibt es wohl bei Cbuilder6 noch nicht

    und ja, skalieren meinte ich damit aber bekomme ich hin wenn ich den Bildausschnitt habe.



  • myerscola schrieb:

    danke erst mal

    unique_ptr
    

    gibt es wohl bei Cbuilder6 noch nicht

    und ja, skalieren meinte ich damit aber bekomme ich hin wenn ich den Bildausschnitt habe.

    Aber auto_ptr (denke ich), immerhin besser als nichts.
    Wenn nicht, dann würde ich es selbst bauen.



  • auto_ptr gibt es und kann hier auch gut verwendet werden.
    Wenn man will kann man auch boost installieren und dann boost::scoped_ptr verwenden. Die boost Installation ist nicht ganz einfach aber möglich (Version 1.34 nehmen).


Anmelden zum Antworten