Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Auswahlrechteck in Paintbox (https://www.delphipraxis.net/179063-auswahlrechteck-paintbox.html)

Gutelo 12. Feb 2014 14:05

Auswahlrechteck in Paintbox
 
Hallo,

ich habe eine paintbox die ein Bild enthaelt. Nun moechte ich folgendes realisieren:

Wenn die Maus ueber die Paintbox gefahren wird, dann soll ein offenes Rechteck gezeichnet werden. Dieses Rechteck soll sich mit der Maus bewegen, so dass man einen Auschnitt des Bildes auswaehlen kann.

Verwendung von OnMouseMove ist klar. Die Frage ist wie ich am besten die Zeichnerei loese:

1) Kopie des Bilds anfertigen und nach Verschieben der Maus wieder neu Aufbauen

2) Nur die Pixel speichern die von dem Rechteck verdeckt werden und diese nach dem Verschieben zurueckschreiben.

oder gibt es da eine noch elegantere Methode. Soweit ich weiss gibt es keine Layer bei Canvas.

Ich hatte auch ueberlegt ob man das nicht ueber den Cursor (Mauspointer) realisieren kann. Soweit ich weiss sind Cursor quasi Icons. Koennte man durch einen Trick vielleicht auch grosse Cursor hinbekommen?

Gutelo

DeddyH 12. Feb 2014 14:23

AW: Auswahlrechteck in Paintbox
 
Google doch mal nach Gummibandeffekt, das dürfte etwa dem entsprechen, was Du vorhast. IIRC gab es in den Delphi-Beispielen eine GraphEx-Demo, wo so etwas dabei war, ansonsten kann man im Netz das Delphi 5 Entwicklerhandbuch finden (auf einen Link verzichte ich vorsichtshalber), dort ist das auch beschrieben.

Gutelo 12. Feb 2014 14:38

AW: Auswahlrechteck in Paintbox
 
Danke :)

Auf "Gummibandeffekt" muss man erstmal kommen :)

Ich habe gerade nochmal rumprobiert. Es muesste auch mit einer zweiten Paintbox gehen mit brush.style=bsclear die man mit der Maus verschiebt. Gegebenenfalls noch zwischenzeitliche refreshs der original paintbox. Damit muss man nicht kompliziert im original Bild rummachen.

Gutelo

stahli 12. Feb 2014 15:23

AW: Auswahlrechteck in Paintbox
 
Ich hatte mal auf ähnliche Fragen geantwortet:
http://www.delphipraxis.net/170099-s...ml#post1180854
http://www.delphipraxis.net/155428-q...ml#post1057248

Vielleicht findest Du in den Threads noch nützliche Tipps. Auf Wunsch kann ich auch meine Lösung raus suchen.
(Testen kannst Du es in meiner Turniersoftware bei Teilnehmer/Mitglieder definieren.)


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:46 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