AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Bereiche in einem Bild als Schaltflächen nutzen
Thema durchsuchen
Ansicht
Themen-Optionen

Bereiche in einem Bild als Schaltflächen nutzen

Ein Thema von Oracle · begonnen am 3. Mär 2008 · letzter Beitrag vom 3. Mär 2008
Antwort Antwort
Oracle
(Gast)

n/a Beiträge
 
#1

Bereiche in einem Bild als Schaltflächen nutzen

  Alt 3. Mär 2008, 11:13
Ich habe folgendes vor:
Ich habe ein Bild welches ähnlich aussieht wie dieses hier:

http://www.u-helmich.de/bio/stw/biok...lder/abb02.jpg

Nun will ich das der User in diesem Bild per Mausklick eines der Reagenzgläser auswählen kann.
Nach dem der User das Reagenzglas angeklickt hat, soll es sich rot verfärben, sodass sichtbar wird, welches er ausgewählt hat.
Daraufhin soll er auch noch weitere auswählen können. Klick er noch einmal auf ein bereits ausgewähltes Reagenzglas, so nimmt dieses wieder seine ursprüngliche Farbe an.
Dies soll für eine Messung dienen, und der User soll auf diese Weise intuitiv die zu Messenden Proben auswählen können.

Ich hoffe ihr könnt mir da helfen.

Vielen Dank schonmal im Vorraus
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Bereiche in einem Bild als Schaltflächen nutzen

  Alt 3. Mär 2008, 11:31
Ein möglicher Ansatz wäre:
-eine Klasse von TCustomControl ableiten
-Überschreiben der Paint-Methode (darin immer das Bild, was in einem Bitmap gespeichert ist auf das Canvas kopieren)
-Überschreiben der Methode Click oder DblClick und nachsehen, wo die Mouse ist. Dementsprechend dann das Bitmap verändern.

Ob du jetzt für alle Reagenzgläser ein Control nimmst oder jedes Glas in einem separatem Control ist deiner Kreativität überlassen.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#3

Re: Bereiche in einem Bild als Schaltflächen nutzen

  Alt 3. Mär 2008, 11:31
Hallo,

schau Dir doch mal das an.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Bereiche in einem Bild als Schaltflächen nutzen

  Alt 3. Mär 2008, 11:34
Hallo,

unterteile dein Image rechnerisch in acht vertikale Streifen. Jedes Rechteck verkleinerst du mittels InflateRect() so, dass es ganz innerhalb eines Reagenzglases liegt. Speichere die entstehenden Rechtecke in einem Array und prüfe beim Klicken auf das Bild mit PtInRect(), ob ein Reagenzglas angeklickt wurde.

Grüße vom marabu
  Mit Zitat antworten Zitat
Oracle
(Gast)

n/a Beiträge
 
#5

Re: Bereiche in einem Bild als Schaltflächen nutzen

  Alt 3. Mär 2008, 14:59
Ich hab mich jetzt auf TMPRegionImage gestürzt. Das finde ich auch echt genial.
Habe nur ein Problem. Wenn der User hier mehrere Regionen anwählen möchte muss er die Shifttaste gedrückt halten.
Ich möchte dieses Verhalten aber ohne zusätzliches Drücken der Shifttaste haben. wie kann ich dem Control eine gedrückte Shifttaste vorgaukeln?
  Mit Zitat antworten Zitat
Oracle
(Gast)

n/a Beiträge
 
#6

Re: Bereiche in einem Bild als Schaltflächen nutzen

  Alt 3. Mär 2008, 15:14
Ich habs raus einfach beim OnEnterRegion
keybd_event(VK_LShift, 0, 0, 0); und bei OnLeaveRegion

keybd_event(VK_LShift, 0, KEYEVENTF_KEYUP, 0); einfügen.
  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 00:06 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