![]() |
TPaintBox1 in TScrollBox1 (PrintPreview)
Hallo,
ich habe ein TForm der ein TScrollBox1 (als Client: der den gesamten TForm überdeckt) und ein TPaintBox Komponente beinhaltet. durch folgende Delphi Sourcecode vergrößere ich den durch X/Y gedruckten Mousekoordinaten im TPaintBox1 Breite/Höhe um einen Faktor=0.2 und dann ziehe ich von dem neuen Punkt die Hälfte des TScrollBox1 ab in iX/iY dann setze ich die ScrollBox1.HorzScrollBar/VertScrollBar um nach der Vergrößerung diesen Punkt wieder zentriert darzustellen. Es klappt problemlos bis zu einem bestimmten Faktor. Beim 24. mal stimmt die iX/iY auf einmal nicht mehr, weil X oder Y negativ wird. Wenn ich kein ScrollBox1.HorzScrollBar/VertScrollBar setze, springt er sofort nach der Vergrößerung zum X/Y=0/0 kein Problem und ich kann bielibige male vergrößern Ich habe versucht die ausgewählten Mousekoordinaten X/Y mit Mousebewegung auszugeben, was mich wundert, daß der X oder Y Mousekoordinaten beim negativen X/Y nicht vom 0-MaxInteger geht sondern (0 bis 32767...-32768...-1000...-9999...-1...0...1...) geht und dadurch mein Formel stellt den gedruckten Mousekoordinaten nicht mittig im TForm dar sondern mit einer Abweichung. Warum geht der Bereich so durcheinander und wie kann ich dies lösen ???:
Delphi-Quellcode:
mfg
procedure TfrmPrintPreview.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin with PaintBox1 do begin Visible:= False; // X Width:= Width+Trunc(Width*0.2); // Vergrößerung // Y Height:= Height+Trunc(Height*0.2); // Vergrößerung Visible:= True; // Zentriert: Berechnung neuer Mousekoordinaten nach Vergrößerung iX:= Trunc(X+X*0.2-ScrollBox1.ClientWidth div 2); iY:= Trunc(Y+Y*0.2-ScrollBox1.ClientHeight div 2); end; // ScrollBox nach der Vergrößerung zum neuen MouseKoordin. führen ScrollBox1.Visible:= false; ScrollBox1.HorzScrollBar.Position:= iX; ScrollBox1.VertScrollBar.Position:= iY; ScrollBox1.Visible:= true; end; madina |
Re: TPaintBox1 in TScrollBox1
Vielleicht beschreibst du erst einmal was du damit genau erreichen / bezwecken möchtest?!
|
Re: TPaintBox1 in TScrollBox1
Hallo,
ich will damit ein Printpreview erreichen. mfg |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:54 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