AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SelectionBox-Komponente?

Ein Thema von PeterPanino · begonnen am 30. Aug 2012 · letzter Beitrag vom 3. Sep 2012
Antwort Antwort
PeterPanino

Registriert seit: 4. Sep 2004
1.472 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: SelectionBox-Komponente?

  Alt 31. Aug 2012, 01:56
Ich habe jetzt ein paar Sachen hinzugefügt: Man kann die Randlinien nun mit der Maus verschieben und somit die Größe der Auswahlbox auch so verändern. S. Anhang. Macht Spaß!
Angehängte Dateien
Dateityp: zip DrawSelectionRectangle_Test.zip (79,7 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.472 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: SelectionBox-Komponente?

  Alt 31. Aug 2012, 04:19
Update 31.8.2012 05:15: Zwei neue Funktionen hinzugefügt:

1. Beim Ändern der Auswahlrahmen-Größe durch Ziehen der Seitenlinien mit der Maus, wird jetzt in der linken oberen Ecke des Auswahlrahmens die veränderte Größe angezeigt.

2. Wenn beim Ziehen der Seitenlinien mit der Maus die Strg-Taste gehalten wird, erfolgt die Größenänderung des Auswahlrahmens in Schritten zu jeweils 10 Pixel.
Angehängte Dateien
Dateityp: zip DrawSelectionRectangle_Test.zip (80,0 KB, 12x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: SelectionBox-Komponente?

  Alt 31. Aug 2012, 06:34
Referenzen auf Instanzen außerhalb der zukünftigen Komponente sind Gift, mach' es besser so....

Delphi-Quellcode:
function TSelection.controlDown: Boolean;
//oder geich
function controlDown: Boolean;

oder was sich an dieser Stelle ohnehin anbietet, statt controlDown

if ssCtrl in Shift then
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)

Geändert von Bummi (31. Aug 2012 um 06:39 Uhr)
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.472 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: SelectionBox-Komponente?

  Alt 31. Aug 2012, 09:46
Du hast recht - vielen Dank für den Hinweis!
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.472 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: SelectionBox-Komponente?

  Alt 31. Aug 2012, 10:30
Update 31.8.2012 11:30: Eine Verbesserung hinzugefügt:

Beim Ziehen der Seitenlinien mit der Maus kann der Auswahlrahmen nun nicht mehr über die Bildgrenzen hinaus vergrößert werden.
Angehängte Dateien
Dateityp: zip DrawSelectionRectangle_Test.zip (79,9 KB, 14x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.362 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: SelectionBox-Komponente?

  Alt 31. Aug 2012, 12:46
Ich denke mal, Eure Lösung ist eleganter
Aber ich habe mir vor Jahren mal ein Formular gebastelt, das das Auswählen eines Bildausschnittes ermöglicht. (Recht einfache Umsetzung (mit Images und Shapes), aber gut nutzbar.) Anbei mal ein Bild.

Falls Interesse besteht, kann ich das gern posten.
Angehängte Grafiken
Dateityp: jpg general13_lbb.jpg (57,4 KB, 52x aufgerufen)
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.472 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: SelectionBox-Komponente?

  Alt 31. Aug 2012, 18:55
Update 31.8.2012 19:45: Hurra, die Komponente ist fertig!!! Siehe Demo-Projekt und Komponente PPBSelFrame im Anhang.

Neue Funktion: Das Verschieben und Vergrößern des Auswahlrahmens ist jetzt auf die Bildränder begrenzt, wenn Ränder (vertikal, horizontal oder beide) an gezeigt werden. Das ist der Fall, wenn beim Image die Eigenschaften Proportional und Center auf True gesetzt sind. (Was eigentlich für so gut wie alle Anwendungsfälle zutrifft, bei denen es um Bildbearbeitung geht).

Eine Frage habe ich noch: Ich muss innerhalb der Komponente beim Programmstart einmal die Methode SetSelFrameMargins aufrufen, um die Ränder um den Bildinhalt zu berechnen. Das wird normalerweise von der Methode Resize automatisch ausgeführt. Ich habe aber kein Ereignis von TGraphicControl gefunden, welches dies ermöglicht. Deshalb habe ich als Workaround im CreateForm-Event des Fensters das Fenster um ein Pixel vergrößert, um den Resize-Event auszulösen. Ist aber eben nur ein Workaround.
Angehängte Dateien
Dateityp: zip PPBSelFrameComp_Test.zip (81,1 KB, 10x aufgerufen)

Geändert von PeterPanino (31. Aug 2012 um 19:03 Uhr) Grund: Kleine Korrektur in der angehängten Komponente
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz