AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Shape nutzen wie in IrfanView

Ein Thema von moelski · begonnen am 31. Mär 2006 · letzter Beitrag vom 31. Mär 2006
Antwort Antwort
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

Shape nutzen wie in IrfanView

  Alt 31. Mär 2006, 10:53
Moin !

Ich hät da ein kleines Problem und vielleicht hat jemand ein paar Tips für mich

Also, in meiner Anwendung Kalibriere ich eine Karte. Die Karte wird in ein TImage geladen. Soweit so gut. Nun würde ich aber die Karte gerne in gewissen Massen anpassen können. Eine Anpassung ist z.B. das Zuschneiden auf eine bestimmte Größe.
Meine Idee war, dass wie in IrfanView zu lösen. Dort kann man in der Grafik einen Rahmen aufziehen. Mit diesem Rahmen kann ich nun so allerhand anstellen.
- Gehe ich mit der Maus auf die Striche des Rahmen, kann ich dessen Größe anpassen
- Rechtsklick im Rahmen und gedrückt halten der rechten Maustaste -> Verschieben des kompletten Rahmens.
- Linksklick in den Rahmen -> Zoom

Das sind mal so die wichtigsten Funktionen die ich auch bräuchte. Meine Idee war nun, ein TSHape zu nutzen. Das erstellen über dem Image ist garnichtmal das Problem. Aber dann fangen die Probleme an. Es gibt dort nicht sowas wie "MouseOver". Somit wird auch der Cursor nicht angepasst. Das mit dem Verschieben und Zoom kriege ich ja noch hin, denn wenn ich klicke kann ich ja über die Events abfangen ob ich gerade das Shape bediene.
Was ich im Prinzip bräuchte wäre eine Grössenänderung wie sie Delphi zur Entwicklungszeit bietet. Wenn ich dort ein Shape plaziere, dann ändert sich der Cursor ja auch nur zu den Pfeilen zum Größeändern, wenn ich auf einem der 8 kleinen Quadrate bin. Sowas suche ich nun auch. Nur das es bei mir eben generall auf den Kanten des Shapes gehen sollte.

Ich hoffe ich habe mich verständlich ausgedrückt
Falls nicht, einfach mal kurz bei IrvanView guggn wie die das dort mit diesem Rahmen gemacht ham.

Es muss auch nicht unbedingt ein Shape sein. Aber ich wüsste nicht was ich sonst nehmen könnt.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#2

Re: Shape nutzen wie in IrfanView

  Alt 31. Mär 2006, 14:13
Hi,
ich bleib der Einfachheit einfach mal bei der Lösung mit deinem Shape (über gute Alternativen möchte ich gerade nur nicht nachdenken )
Ich denke, dass du eigentlich schon alles hast was du benötigst, OnMouseDown, -Up, -Move. Der Rest ist halt ein wenig Handarbeit. Du kannst einfach im OnMouseMove die Position überprüfen. entspricht die den Koordinaten des Rahmen, kannst du dann deinen Cursor ändern und ein entsprechendes Flag (als Beispiel) setzen. Gleiches gilt wenn du dich irgendwo im Rahmen befindest.
Sinnvoll ist es hier natürlich nicht in jedem MouseMove sinnlos die Cursor zu ändern (kostet auch nur unnötig Rechenzeit), du solltest halt nur auf Änderungen des Flags reagieren (also wenn der Rahmen erreicht ist oder eben nicht mehr).

Im MouseDown wertest du dann einfach dein Flag zusätzlich aus (also veränderst die Größe, verschiebst den Ausschnitt, etc). Ja, das war's doch schon?

Gruß Der Unwissende
  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:40 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