AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Zoom in einer Paintbox!
Thema durchsuchen
Ansicht
Themen-Optionen

Zoom in einer Paintbox!

Ein Thema von DARKLORD-X- · begonnen am 15. Dez 2004 · letzter Beitrag vom 29. Jan 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von DARKLORD-X-
DARKLORD-X-

Registriert seit: 11. Dez 2004
Ort: Wildenbruch
10 Beiträge
 
#1

Zoom in einer Paintbox!

  Alt 15. Dez 2004, 17:47
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?
  Mit Zitat antworten Zitat
MiniKeks
(Gast)

n/a Beiträge
 
#2

Re: Zoom in einer Paintbox!

  Alt 15. Dez 2004, 17:53
Sry, Fehlpost!
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#3

Re: Zoom in einer Paintbox!

  Alt 15. Dez 2004, 18:07
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
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
Benutzerbild von DARKLORD-X-
DARKLORD-X-

Registriert seit: 11. Dez 2004
Ort: Wildenbruch
10 Beiträge
 
#4

Re: Zoom in einer Paintbox!

  Alt 15. Dez 2004, 20:29
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.

MfG
  Mit Zitat antworten Zitat
quivadis

Registriert seit: 7. Jan 2005
3 Beiträge
 
#5

Re: Zoom in einer Paintbox!

  Alt 7. Jan 2005, 11:24
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.
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Zoom in einer Paintbox!

  Alt 7. Jan 2005, 11:37
@ 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.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
mgapski

Registriert seit: 28. Okt 2004
Ort: Tönisvorst
16 Beiträge
 
#7

Re: Zoom in einer Paintbox!

  Alt 12. Jan 2005, 14:42
@ 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
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#8

Re: Zoom in einer Paintbox!

  Alt 12. Jan 2005, 15:49
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
Angehängte Dateien
Dateityp: zip zoomdemo_196.zip (6,6 KB, 191x aufgerufen)
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
Benutzerbild von DARKLORD-X-
DARKLORD-X-

Registriert seit: 11. Dez 2004
Ort: Wildenbruch
10 Beiträge
 
#9

Re: Zoom in einer Paintbox!

  Alt 28. Jan 2005, 20:21
So ich habs jetzt mit zoom hinbekommen
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
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Zoom in einer Paintbox!

  Alt 29. Jan 2005, 11:00
Zitat von DARKLORD-X-:
So ich habs jetzt mit zoom hinbekommen
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?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 02:04 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