![]() |
Bitmap von Scrollbox
Hi,
Wie kann ich den Inhalt einer Scrollbox mit allen komponenten die sich in der scrollbox befinden in ein Bitmap einlesen. Zwar kann ich über das Handle der Scrollbox einen Scrennshort der Box erstellen aber dieser geht nur bis einschließlich der Scrollbar der Scrollbox nicht aber bis zu eigentlichen Ende. mfg, arbu :wall: |
Re: Bitmap von Scrollbox
Versuch es mal mit PaintControls, aber ich kann nur raten, ob du damit den gesamten Inhalt bekommst.
|
Re: Bitmap von Scrollbox
Eine Scrollbox scheint kein PaintControls aber Sie ist doch ein TWinControl :gruebel:
Klappt leider nicht :wall: :wall: |
Re: Bitmap von Scrollbox
Ups, das ist ja protected :mrgreen: .
PaintTo ist zwar public, aber das wird wohl auch nur den sichtbaren Teil zeichnen. Du könntest entweder versuchen, die Sichtbarkeit von PaintControls zu erhöhen, oder, was sicher funktioniert, alle Komponenten einzeln per PaintTo zu zeichnen. |
Re: Bitmap von Scrollbox
Ah das mit paintto geht auch nur bis zur scrollbar
:wall: :wall: :wall: |
Re: Bitmap von Scrollbox
Moin,
versuch doch mal folgendes...
Delphi-Quellcode:
...nicht schön, aber selten!
procedure ScrollBoxToCanvas(ScrollBox:TScrollBox; Canvas:TCanvas);
var saveY, Y, SchrittY:integer; saveX, X, SchrittX:integer; abbruchY, abbruchX:boolean; saveBorderStyle:TBorderStyle; begin saveY:=ScrollBox.VertScrollBar.Position; saveX:=ScrollBox.HorzScrollBar.Position; saveBorderStyle:=ScrollBox.BorderStyle; ScrollBox.BorderStyle:=bsNone; ScrollBox.VertScrollBar.Position:=0; Y:=0; SchrittY:=ScrollBox.Height-20; repeat ScrollBox.HorzScrollBar.Position:=0; X:=0; SchrittX:=ScrollBox.Width-20; abbruchY:=(ScrollBox.VertScrollBar.Position <> Y); repeat abbruchX:=(ScrollBox.HorzScrollBar.Position <> X); ScrollBox.Refresh; ScrollBox.PaintTo( Canvas, ScrollBox.HorzScrollBar.Position, ScrollBox.VertScrollBar.Position ); ScrollBox.HorzScrollBar.Position:=ScrollBox.HorzScrollBar.Position + SchrittX; X:=X+SchrittX; until abbruchX; ScrollBox.VertScrollBar.Position:=ScrollBox.VertScrollBar.Position + SchrittY; Y:=Y+SchrittY; until abbruchY; ScrollBox.VertScrollBar.Position:=saveY; ScrollBox.HorzScrollBar.Position:=saveX; ScrollBox.BorderStyle:=saveBorderStyle; end; MfG Thorsten |
Re: Bitmap von Scrollbox
Danke für den Code er funktioniert super :thumb:
schönen abend eh moin noch :mrgreen: |
AW: Bitmap von Scrollbox
Hallo miteinander,
ich nutze den oben stehenden Code, allerdings habe ich 2 Probleme mit der Anzeige/dem Druck von bestimmten Elementen. TCheckbox Die Beschriftungen der Checkboxen, welche aktuell nicht auf dem Bildschirm angezeigt werden, werden (teilweise) gar nicht angezeigt. Teilweise heißt, nicht in jedem Fall. Aber wenn etwas angezeigt wird, dann alles und umgekehrt. Hier vermute ich, dass es an der Geschwindigkeit des Prozesses liegt. Wenn es zu schnell geht, dann wird nichts angezeigt, wenn das System gerade langsam ist, dann klappt es. Das teste und berichte ich noch. Sollte jemand eine andere Idee oder das Wissen, woran es liegt, haben, dann bin ich darüber auch dankbar^^ TMemo Ich habe ein Memo im Anzeigebereich, dessen Randbereiche rechts und links Teile der Pictures aus dem Image darunter anzeigt, wenn gedruckt wird. Hier hab ich noch keine Idee dazu. Beste Grüße und vorausschickend schon mal danke für alle Antworten Cordt |
AW: Bitmap von Scrollbox
TMemo
Hier lag es an den Scrollbars. Der Bereich der Scrollbars war der, der mit anderen Dingen übermalt wurde. Da hier sozusagen eh nur ein Screenshot gemacht wird und kein weiterer Platz für zusätzlichen Text aus der Scrollbox zur Verfügung steht, habe ich beim ScrollBoxToCanvas vor dem .PaintTo den Stand der Scrollbars gespeichert, dann Memo.Scrollbars := ssNone gesetzt und danach wieder hergestellt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:07 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