Autor Beitrag
benner
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Do 16.10.08 11:44 
Hallo zusammen,

ich zeichne in ein Canvas und möchte anschließend zoomen und den Zoomausschnitt verschieben können. Wie das prinzipiell erfolgen soll ist mir klar, ich habe auch schon eine Möglichkeit realisiert, bei der ich abhängig von der Zoomstufe alles in entsprechender Größe neu zeichne.

Nun bin ich aber auf eine weniger umständliche Variante gestoßen, da man ein Canvas ja auch direkt zoomen kann. Für den Zoom habe ich eine Funktion gefunden, welche ich nach einigem umschreiben auch für meine Zwecke nutzen konnte:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
begin
    SetMapMode(Canvas.Handle, MM_ISOTROPIC);
    SetWindowExtEx(Canvas.Handle, AZoomFactor, AZoomFactor, nil);
    SetViewportExtEx(Canvas.Handle, 1010nil);
  end;


Jetzt müsste ich ja eigentlich nur noch die Position des betrachteten Bildausschnitts verschieben, um mein Ziel zu erreichen. Aber wie stelle ich das an? Das einzige, was ich dazu gefunden habe war
ausblenden Delphi-Quelltext
1:
SetWindowPos(...);					

Das hat aber nicht funktioniert (mit "nicht funktioniert" meine ich, dass keine Fehlermeldung o.Ä. kam, aber auch der gewünschte Effekt ausblieb). Welchen Befehl kann ich dafür nutzen? (Ich denke, die Frage kann auch ohne meinen eigenen Code geklärt werden, wenn jmd anderer Meinung ist, kann ich den aber jederzeit noch posten).

Vielen Dank schonmal
benner


Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Do 16.10.2008 um 13:02
Logikmensch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 390

Win XP
Delphi 2007 Prof., XE2, XE5
BeitragVerfasst: Fr 17.10.08 06:04 
Hallo! :wave:

versuch mal BitBlt oder StretchBlt. Damit kannst Du Bitmaps verschieben.
Ich würde empfehlen, den zu kopierenden Bildausschnitt herauszulösen in eine Bitmap und dann mit BitBlt bzw. StretchBlt das Bild an die zielposition zu kopieren.

_________________
Es gibt keine Probleme - nur Lösungen!
benner Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Fr 17.10.08 14:06 
Vielen Dank, das hilft mir schonmal weiter. Werde mich erstmal mit diesem Ansatz beschäftigen.

Grüße,
benner
benner Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Di 21.10.08 15:38 
Nachdem ich noch ein bisschen rumgetüftelt habe, wollte ich nur noch mitteilen, dass das Problem (vorerst) zu meiner Zufriedenheit gelöst ist. Vielen Dank nochmal. =)

Grüße,
benner
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 21.10.08 17:38 
Wieso wurde das Problem nur "vorerst" gelöst?Erläutere mal!