Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Zoom in einer Paintbox! (https://www.delphipraxis.net/36079-zoom-einer-paintbox.html)

DARKLORD-X- 15. Dez 2004 16:47


Zoom in einer Paintbox!
 
Hallo,

ich habe eine Paintbox, in der ist ein Fraktal eingezeichnet. Jetzt muss ich es irgendwie hinbekommen, das ich in der Paintbox einen Bereich markieren kann, und genau dieser Bereich dan auf die volle größe der Paintbox neu gezeichnet wird.

Danke.

PS: Diese Frage ist nicht so wichtig aber ich denke sie ist leichter zu beeantworten als die obige. Also wie kann man das Bild in Paintbox1.canvas in die Zwischenablage kopieren und danach wieder in Paintbox1.canvas einfügen?

MiniKeks 15. Dez 2004 16:53

Re: Zoom in einer Paintbox!
 
Sry, Fehlpost!

Sanchez 15. Dez 2004 17:07

Re: Zoom in einer Paintbox!
 
Hallo,
Hier mal ne Procedur, mit der du einen Canvas zoomen kannst:
Delphi-Quellcode:
procedure SetCanvasZoomFactor(_Canvas: TCanvas; _ZoomFactor: Integer);
begin
  if _ZoomFactor = 100 then begin
    SetMapMode(_Canvas.Handle, MM_TEXT);
  end else begin
    SetMapMode(_Canvas.Handle, MM_ISOTROPIC);
    SetWindowExtEx(_Canvas.Handle, _ZoomFactor, _ZoomFactor, nil);
    SetViewportExtEx(_Canvas.Handle, 100, 100, nil);
  end;
end;
Um jetzt einen bestimmten Bereich zu erfassen, würde ich die Paintbox in eine Scrollbox packen. Dann sollte das ganze kein Problem darstellen.

grüße, daniel

DARKLORD-X- 15. Dez 2004 19:29

Re: Zoom in einer Paintbox!
 
Und wie funktioniert das erfassen eines bereiches in einer scrollbox? Es tut mir Leid, das ich hier mit solchen Anfängerfragen komme aber ich mach Delphi erst seit einem monat und muss das erst mal alles verstehen. :roll:

MfG

quivadis 7. Jan 2005 10:24

Re: Zoom in einer Paintbox!
 
Hallo an alle,

ich versuche mich gerade auch an einem Paint-Klon. Die Grundfunktionen habe ich alle schon fast fertig.
Da ich gerade verasuche die Lupe zu programmieren bin ich beim Suchen auf diesen Forumeintrag gestossen.
Ich verstehe die Anwendung des oben gezeigten Quellcodes zum zommen nicht. Hätte ihn gerne mal in meinen eigenen Projekt getestet.

Wäre für Erklärungen sehr dankbar.

Herzlichen dank schonmal im vorraus

Quivadis


PS: Ich male mit Canvas in ein timage.bitmap, da da schon speichjern mit drin ist usw.

Nikolas 7. Jan 2005 10:37

Re: Zoom in einer Paintbox!
 
@ Quivadis: Bitte nur eine Frage pro Thread, sonst wird's unübersichtlich.

@ Darklord: Du hast doch sicher irgendwo gespeichert, welches Intervall deines Fraktals angezeigt werden soll, z.b. von 0 bis 500 auf der x-Achse und nach oben von 500 bis 1000. Wenn du jetzt mit der Maus irgendwo hinklickst und damit eine Ecke des neuen Ausschnitts auswählst, kannst du dir die Mauskoordinaten in Intervallkoordinaten umrechnen.
Wenn deine Canvas 500 Px breit ist und du bei x=100 drauf klickst, weisst du, dass dein neues Intervall bei 100 beginnt. Mit ein bischen Mittelstufenmathe wie dem Strahlensatz kannst du so recht einfach die Mauskoordinaten umrechnen. Wenn du das Gleiche für das OnMouseUp machst, hast du da recht schnell die neuen Koordinaten.

Wenn du dir noch einen Rahmen um den ausgewählten Bereich anzeigen lassen willst, wird dir Penstyle psxor gefallen. Damit invertierst du beim Zeichnen den die Farbe des Untergrunds, d.h. wenn du eine Linie doppelt zeichnest, ist sie wieder weg.

Zeig mal das Prog wenn du fertig bist, Fraktale sehen immer gut aus.

mgapski 12. Jan 2005 13:42

Re: Zoom in einer Paintbox!
 
@ Toxman: Quivadis hat doch garnkeine neue Frage gestellt, er wollte doch nur wissen wie genau die Procedure da oben geht..

Da ich die Procedure da oben auch nicht wirklich verstehe würde mich das auc mal interesieren.

MfG

Sanchez 12. Jan 2005 14:49

Re: Zoom in einer Paintbox!
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab mal schnell ein kleines Demo-Programm gebastelt, wo ein Canvas gezoomt wird.
Siehe Anhang.
Ich hab dabei aber weder auf Performance, noch auf Fehlerlosigkeit geachtet. Es soll nur zeigen, wie man es anwendet.

grüße, daniel

DARKLORD-X- 28. Jan 2005 19:21

Re: Zoom in einer Paintbox!
 
So ich habs jetzt mit zoom hinbekommen :-D
Aber wie ist das mit Penstyle auf psxor stellen?
Den find ich nicht in der Hilfe und auch bei Google find ich auch nichts dazu!
Das hört sich aber so an als wärs genau das richtige.
Vielleicht kann mir ja nochmal jemand helfen.
DANKE

Luckie 29. Jan 2005 10:00

Re: Zoom in einer Paintbox!
 
Zitat:

Zitat von DARKLORD-X-
So ich habs jetzt mit zoom hinbekommen :-D
Aber wie ist das mit Penstyle auf psxor stellen?

Erstell für eine neue Frage bitte einen neuen Thread oder gehört das noch zum Zoomen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:13 Uhr.
Seite 1 von 2  1 2      

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