AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Paintbox + Scrollbox ?

Paintbox + Scrollbox ?

Ein Thema von mimi · begonnen am 25. Nov 2006 · letzter Beitrag vom 17. Jan 2007
Antwort Antwort
Seite 2 von 2     12
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#11

Re: Paintbox + Scrollbox ?

  Alt 16. Jan 2007, 19:02
Zitat:
Auch ist die Frage: warum zeichnest du ständig neu im MouseMove? Würde es nicht reichen dies nur zu tun, wenn aktiv was verschoben wird
ich zeichne nur neu wenn auch was anklickt wurde das wird hier gemacht:
Delphi-Quellcode:
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
das müste eigentlich in die paint2main mosemove ereignis rein. das stammt noch aus den anfigen vom projekt !

ruft InvalidateRect() eine andre procedure auf als die normale ?(sie ruft ja paint auf ) ?


Zitat:
ClipRect des Canvas der PaintBox
ich verwende keine paintbox(ist mir zu langsamm, habe ein test gemacht: ein projekt mit paintbox und eins mit panel, das betreffen projekt ist im anhang die projekte wurden mit lazarus erstellen sollten aber nach wenigen änderungen mit delphi komplieren können !)

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

edit3:
jetzt hänge ich bei
Delphi-Quellcode:
           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
in sf clipRect gespeichert.
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
Angehängte Dateien
Dateityp: zip testproklete_270.zip (114,7 KB, 31x aufgerufen)
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#12

Re: Paintbox + Scrollbox ?

  Alt 17. Jan 2007, 18:31
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 !!
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz