![]() |
Bereiche in einem Bild als Schaltflächen nutzen
Ich habe folgendes vor:
Ich habe ein Bild welches ähnlich aussieht wie dieses hier: ![]() 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 :-D |
Re: Bereiche in einem Bild als Schaltflächen nutzen
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. |
Re: Bereiche in einem Bild als Schaltflächen nutzen
|
Re: Bereiche in einem Bild als Schaltflächen nutzen
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 |
Re: Bereiche in einem Bild als Schaltflächen nutzen
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? |
Re: Bereiche in einem Bild als Schaltflächen nutzen
Ich habs raus einfach beim OnEnterRegion
Delphi-Quellcode:
und bei OnLeaveRegion
keybd_event(VK_LShift, 0, 0, 0);
Delphi-Quellcode:
einfügen. :)
keybd_event(VK_LShift, 0, KEYEVENTF_KEYUP, 0);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:45 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