AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Ein Bild in einzelne klickbaren Teile aufteilen???
Thema durchsuchen
Ansicht
Themen-Optionen

Ein Bild in einzelne klickbaren Teile aufteilen???

Ein Thema von romber · begonnen am 10. Nov 2009 · letzter Beitrag vom 11. Nov 2009
Antwort Antwort
Seite 1 von 2  1 2      
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.166 Beiträge
 
Delphi 10 Seattle Professional
 
#1

Ein Bild in einzelne klickbaren Teile aufteilen???

  Alt 10. Nov 2009, 23:34
Der Titel ist ganz schön blöd und missverständlich, aber etwas Besseres ist mir nicht eingefallen.
Außer ein Bild auf die Form zu setzen und ein paar Icons in ein TImageList zu laden habe ich mit Grafiken in Delphi noch nie etwas gemacht. Die Experten hier mögen mir nicht böse sein, wenn ich mein Problem nicht eindeutig genug formuliere.

Ich habe ein mit Photoshop gezeichnetes Bild im PNG-Format (den kann ich natürlich in jede andere Format konvertieren). Bei diesem Bild handelt es sich um eine blaue Zig-Zag-Shape, die mit dünnen Zig-Zag-Linien in mehrere ungleiche Teile aufgeteilt ist. Nun muss ich dieses Bild auf die Form setzen und die eizelnen Teile zu den Schaltflächen machen, so dass jedes Teil klickbar ist und beim MouseEnter die Farbe ändert. So etwas ähnliches habe ich in einem Programm gesehen. Dort war eine Deutschland-Karte auf Bundesländer aufgeteilt und jedes Bundesland war eine Schaltfläche.

Theoretisch, wenn es eine entsprechende Komponente gäbe, könnte ich mit Photoshop mein Bild in einzelne Bilder zerteilen, von jedem mehrere Varianten (normal, hot, disabled) abspeichern und dann mit so was wie ShapeButton laden. So eine Komponente finde ich aber nicht.

Wie würdet Ihr die Aufgabe lösen? Gibt es doch eine Komponente dafür?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Ein Bild in einzelne klickbaren Teile aufteilen???

  Alt 10. Nov 2009, 23:43
Ich würde im OnMouseMove und OnMouseDown die Koordinaten abfragen und entsprechend reagieren.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.166 Beiträge
 
Delphi 10 Seattle Professional
 
#3

Re: Ein Bild in einzelne klickbaren Teile aufteilen???

  Alt 10. Nov 2009, 23:54
Vielen Dank für die schnelle Antwort!

Das war auch das Erste, was ich mir vorgestellt habe. Doch das Bild ist wirklich kein Rechteck, Ellipse oder sonnst irgendeine primitive geometrische Form, deren Koordinaten man relativ einfach errechnen könnte. Es handelt sich wirklich um eine unregelmässige zig-zag Zechnung. Selbstverständlich gibt es Möglichkeiten, die Koordinaten zu errechnen, aber bei allem Selbstbewusstsein bezweifle ich, dass ich das ohne Hilfe dritter Personen oder Tools schaffe.

Wie soll ich hier die Koordinaten errechnen? Und wenn ich die Koordinaten doch errechnet habe, wie verändere ich graphisch die einzelnen Teile eines Bildes?
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Ein Bild in einzelne klickbaren Teile aufteilen???

  Alt 11. Nov 2009, 00:19
Kopiere das Bild und färbe die einzelnen Bereiche in jeweils einer eigenen Farbe.
Du solltest die Farbtiefe auf 256 oder 16 Farben reduzieren.
Du hast dann zwei gleich grosse Bilder; das Orginal und eine Farbmaske.
Lade beide Bilder in dein Programm und zeige aber nur das Orginal an.
Wenn der Benutzer ins Bild klickt, holst du die Farbe aus dem Farbmaskenbild (Property Pixels[]).
Anhand dieser Farbe ist klar, in welchen Bereich geklickt wurde.
fork me on Github
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.166 Beiträge
 
Delphi 10 Seattle Professional
 
#5

Re: Ein Bild in einzelne klickbaren Teile aufteilen???

  Alt 11. Nov 2009, 00:35
Hört sich interessant an. Soll ich dabei TImage benutzen oder irgendwas anderes?
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Ein Bild in einzelne klickbaren Teile aufteilen???

  Alt 11. Nov 2009, 01:00
Zitat von romber:
Soll ich dabei TImage benutzen oder irgendwas anderes?
Für das Orginalbild ein TImage und für die Farbmaske ein TPicture.
TPicture ist unsichtbar und quasi nur ein Kontainer für ein Bild.
Die Variable für das Picture kommt in den Bereich "Private" des Formulars und sollte im OnCreate-Event des Formulars erzeugt werden.
FFarbMaske := TPicture.Create; Im OnDestroy-Event wieder freigeben (FFarbMaske.Free).
Laden mit LoadFromFile() an beliebiger Stelle.
fork me on Github
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.166 Beiträge
 
Delphi 10 Seattle Professional
 
#7

Re: Ein Bild in einzelne klickbaren Teile aufteilen???

  Alt 11. Nov 2009, 01:02
OK, und wie andere ich nun die Farbe des Bild-Teiles, auf das geklickt wurde?
  Mit Zitat antworten Zitat
Tyrolean

Registriert seit: 3. Jul 2003
76 Beiträge
 
Delphi 7 Professional
 
#8

Re: Ein Bild in einzelne klickbaren Teile aufteilen???

  Alt 11. Nov 2009, 08:03
Zitat von romber:
Wie würdet Ihr die Aufgabe lösen? Gibt es doch eine Komponente dafür?
Schau dir mal die Komponente THotspotImage von TMS (www.tmssoftware.com) an. Die macht eigentlich genau das was du willst.

Gruß aus den Bergen
Günter
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.618 Beiträge
 
Delphi 12 Athens
 
#9

Re: Ein Bild in einzelne klickbaren Teile aufteilen???

  Alt 11. Nov 2009, 08:12
Oder die hier.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Tyrolean

Registriert seit: 3. Jul 2003
76 Beiträge
 
Delphi 7 Professional
 
#10

Re: Ein Bild in einzelne klickbaren Teile aufteilen???

  Alt 11. Nov 2009, 08:41
Zitat von DeddyH:
Oder die hier.
Klingt gut. Weniger gut ist, dass er keine Weiterentwicklung mehr macht und auch keinen Support.

Gruß aus den Bergen
Günter
  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 07:17 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