![]() |
Re: Paintbox + Scrollbox ?
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Delphi-Quellcode:
das müste eigentlich in die paint2main mosemove ereignis rein. das stammt noch aus den anfigen vom projekt !
procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); begin // ändernt die Object größe Paint2Main.liste.ChangeObjSize(x,y,shift,adding); // Verschiebt die angebene Objekte if (Paint2main.liste.selobject <> NIL) then begin if (adding = true) or ((Paint2main.liste.selobject.pointDrawDown = -1) and (Paint2Main.liste.itemindex > -1)) then begin if (adding = true) or ((ssleft in Shift) or (ssRight in Shift)) then begin paint2main.MoveObj(x,y); end; end; end; mx:=mx; my:=y; end; // PaintBox1MouseMove ruft InvalidateRect() eine andre procedure auf als die normale ?(sie ruft ja paint auf ) ? Zitat:
Edit1: im prinzip geht es jetzt, ich mache es jetzt so: ich zeichne ja ein hintergrund objekt das habe ich führer ständig neugezeichnet ich zeichne es einfach einmal in eine hilfes bitmap und Kopirer den inhalt auf den bildschirm bzw. in einen zweite bitmap... das problem ist jetzt sobalt ich die größe änder und damit fertig bin wird das gesammte bild kopiert.... und das dauert wenn ich bei einer grafik von 10000X10000 aber dafür läuft dann das verschieben schnell soablt er alles kopiert hat.... edit2: ich habe probleme mit ClipRect von der scrollbox und zwar folgednen code:
Delphi-Quellcode:
die größe der scrollbox ist alclient.... wenn ich jetzt die größe des panels ändere und zwar auf 10000X10000 pixel kommt nach 2000 pixel eine schwarze line und danach kann ich nicht mehr zeichnen..... ich vermute der fheler liegtan clipRect der obben gennnante code wird bei mosueDown ausgefürht !
Paint2main.liste.AktivDocument.sf:=(PageControl2.ActivePage.Controls[0] as TScrollBox).canvas.ClipRect;
with Paint2main.liste.AktivDocument do Screen.Forms[0].caption:=IntTostr(sf.left) + '\' + intTostr(sf.top) + '\' + IntTostr(sf.Right) + '\'+ intTostr(sf.Bottom); edit3: jetzt hänge ich bei
Delphi-Quellcode:
in sf clipRect gespeichert.
r1.left:=Position.x;
r1.top:=Position.y; r1.Bottom:=Size.x-position.x; r1.Right:=Size.y-position.y; with liste.AktivDocument do Screen.Forms[0].caption:=IntTostr(sf.left) + '\' + intTostr(sf.top) + '\' + IntTostr(sf.Right) + '\'+ intTostr(sf.Bottom); if (visible = true) and (IntersectRect(r2,liste.AktivDocument.sf,r1) = true) then begin wenn ich den teil rausnehme: and (IntersectRect(r2,liste.AktivDocument.sf,r1) = true) geht es wunder bar nur ich würde drotzdem gerne wissen wie ich es schaffen kann das nur die sichtbaren objekte gezeichnet werden |
Re: Paintbox + Scrollbox ?
habe es hinbekommen!
hatte dummerweise x und y beim TRect vertauscht !!! das ist mir garnicht aufgefallen... jetzt geht es ! nur habe ich noch keine lösung für den hintergrund... ich zeichne ein hintergrund objekt es ist ein viereck ich zeichne aber nicht alles sondern nur den sichtbaren teil .... ich zeichne einfach ein rechteck vom sichtbaren teil das ist der hintergrund !! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:58 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