AGB  ·  Datenschutz  ·  Impressum  







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

ClickEvent auf formen (nichts quadratisches)

Offene Frage von "Freiwilderer"
Ein Thema von Freiwilderer · begonnen am 9. Jul 2009 · letzter Beitrag vom 10. Jul 2009
Antwort Antwort
Seite 1 von 2  1 2      
Freiwilderer

Registriert seit: 26. Mai 2009
163 Beiträge
 
Delphi 7 Enterprise
 
#1

ClickEvent auf formen (nichts quadratisches)

  Alt 9. Jul 2009, 15:25
Hallo,
ich weiß, der Titel ist etwas seltsam, aber das is vielleicht auch der grund, warum ich so noch nichts finden konnte für mein problem.
Und zwar möchte ich eine art Zeichnung programmieren, deren unterschiedliche objekte unterschiedliche Buttons darstellen sollen.
Die Buttons soll man aber nicht sehen und sie sollen nicht quadratisch sein ^^

Habe die Jedi komponenten durchforstet und zwei dinger gefunden, die in kombination genau das wären, was ich brauche, aber vielleicht gehts ja auch anders.

also ich will eigentlich im Grunde ein auto zeichnen, wenn ich auf die reifen klicke, soll es quietschen, wenn ich auf die motorhaube klicke soll es brummen (mal so als beispiel).

Die beiden komponente, die ich meine sind einmal
JvShapedButton, der zwar ein button, mit verschiedenen formen, aber trotzdem sehr beschränkt ist.
und
JvTransparentForm,
Bei dem dingen kann ich eine Maske hinterlegen und zwar ein bild, und danach wird die form dann "abgeschnitten"

Wenn es jetzt einen button mit der möglichkeit eine maske zu hinterlegen geben würde, wäre ich vollkommen zufrieden.

nunja,

ich hoffe mein problem ist einigermaßen gut rübergekommen und freue mich auf lösungsvorschläge.
wie gesagt, ich brauch nich unbedingt buttons, muss nur wissen, über welchem teil eines bildes ein click event stattfindet,

mfg
  Mit Zitat antworten Zitat
Benutzerbild von BrunoT
BrunoT

Registriert seit: 23. Jan 2003
Ort: Sandbeiendorf
360 Beiträge
 
Delphi 8 Professional
 
#2

Re: ClickEvent auf formen (nichts quadratisches)

  Alt 9. Jul 2009, 16:48
Hallo Freiwilderer,

ein Lösungsansatz wäre folgender:

Auf Webseiten nennt man so etwas Maps, das sind Bilder, die in Bereiche zerlegt sind und so auf Maus-Events reagieren.

Mach doch die auswertbaren Bereiche klein genug und frage die zusammengehörigen Bereiche einer Form( z.B. Rad) ab.

Lege die Bereiche in Arrays ab, diese kann man dann schnell durchforsten, welcher getroffen wurde und zu welcher Form (Rad, Hupe)
er gehört.

Delphi-Quellcode:
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
     //auswerten
end;
mfg

Holger
Holger

EDV- Ende der Vernunft
Meine Calcedit-Kompo
  Mit Zitat antworten Zitat
Freiwilderer

Registriert seit: 26. Mai 2009
163 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: ClickEvent auf formen (nichts quadratisches)

  Alt 9. Jul 2009, 17:01
Hallo Bruno,
danke schonmal für die schnelle antwort
das ist genau das, was ich brauche ...
allerdings hatte ich irgendwie gehofft, dass das schöner geht
.. bis ich alle bereiche, die einen kreis bilden abgefragt hab, hab ich ja fast jedes pixel einzeln abgefragt.
Und ich muss grob geschetzt 100 bilder mit jeweils ca 50 einzelnen bereichen erzeugen,
evtl. wollte ich dafür auch einen editor schreiben und naja ... hatte halt einfach gehofft, dass es zB mit shapes geht


muss flux, weg, ich meld mich von zuhause nochmal an in ca 90 minuten bye
  Mit Zitat antworten Zitat
Benutzerbild von BrunoT
BrunoT

Registriert seit: 23. Jan 2003
Ort: Sandbeiendorf
360 Beiträge
 
Delphi 8 Professional
 
#4

Re: ClickEvent auf formen (nichts quadratisches)

  Alt 9. Jul 2009, 17:15
Hallo Freiwilderer,

es gibt noch eine bessere Methode:

fertige von jedem Bild eine Kopie an. Die klickbaren Bereiche färbst du in der Kopie gleichmässig mit jeweils einer andern Farbe. wenn dann ein Klick auf das Original-Bild erfolgt, wertest du einfach die Kopie im Hintergrund aus, welche Farbe da ist. Die farbe erzählt dir, was für ein Bereich getroffen Wurde. Die Bilder verwaltest du in einer TImageList.

Das Erstellen der Bilder sollte recht einfach sein. die Abfrage auch. (und schnell)

Viel Spass beim Malen

mfg
Holger

EDV- Ende der Vernunft
Meine Calcedit-Kompo
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#5

Re: ClickEvent auf formen (nichts quadratisches)

  Alt 9. Jul 2009, 17:47
... oder Regions in einer Liste verwaltet und mit PtInRgn() einfach abfragen.
  Mit Zitat antworten Zitat
Freiwilderer

Registriert seit: 26. Mai 2009
163 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: ClickEvent auf formen (nichts quadratisches)

  Alt 9. Jul 2009, 18:41
hi, da bin ich wieder
die version klingt um einiges einfacher, und angenehmer, vor allem, wenn es um einen editor geht, das werd ich morgen sofort mal ausprobieren, danke

@Muetze1 ... die funktion kenne ich nicht, werd mich morgen aber auch mal reinlesen, vielen dank ebenfalls.
  Mit Zitat antworten Zitat
Freiwilderer

Registriert seit: 26. Mai 2009
163 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: ClickEvent auf formen (nichts quadratisches)

  Alt 10. Jul 2009, 09:19
hallo
also das mit den zwei bildern läuft
und ziemlich genau so, wie ich mir das vorgestellt hatte
...
doof is nur, dass mir grad was aufgefallen ist
nämlich würde ich eigentlich ganz gern, die stellen vom angezeigten bild, die schonmal angeklickt wurden kennzeichnen
... ich gebe zu, hab ich vorher nich drüber gesprochen, is mir auch gerade erst aufgefallen, dass das sinnvoll wäre ^^

... ich glaub, das schmeißt gerade die gesamte funktion wieder über den haufen ^^

ich hoffe auf eure geduld und auf ne gute Lösung für dieses neue problem

mfg
  Mit Zitat antworten Zitat
Draos

Registriert seit: 12. Aug 2008
42 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: ClickEvent auf formen (nichts quadratisches)

  Alt 10. Jul 2009, 09:48
also so wie ich das Bild verstand, ist der Button da wo nicht der Hintergrund ist. Gut es gibt ja mehr als 2 Farben, somit kannste die angeklickte Stelle sagen wir eine 3. Färbung verpassen. So kannst du 16^6 verschiedene Farben wählen für 16^6 Klicks auf die selbe Stelle
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#9

Re: ClickEvent auf formen (nichts quadratisches)

  Alt 10. Jul 2009, 09:49
Wieso? Du kannst Doch einfach auf den Canvas, an der Stelle wo geklickt wurde einen anders farbigen Punkt setzen. Schon ist es markiert.

Oder wie hast Du das jetzt gemeint?

Sherlock
Oliver
  Mit Zitat antworten Zitat
Freiwilderer

Registriert seit: 26. Mai 2009
163 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: ClickEvent auf formen (nichts quadratisches)

  Alt 10. Jul 2009, 09:54
Hallo,
Danke schonmal für die Antworten zu so früher stunde.

Also Stellt euch die Bauzeichnung von einem Haus vor
Da gibts n dach, ne wand, n fenster und ne tür.

Dach = Rot,
Wand = Blau
Fenster = Grün
Tür = Gelb

darstellen möchte ich eine schwarz/weiß zeichnung
also habe ich eine zeichnung in schwarz/weiß und im Hintergrund ein farbiges haus, mit ausgefüllten flächen.
wenn ich jetzt auf die tür in der schwarz/weiß zeichnung klicke, kann ich die farbe gelb abfragen.
nun möchte ich aber, dass in dem moment, wo ich die tür anklicke, sie auch in der schwarz/weiß zeichnung gelb wird
oder schwarz, ... oder irgendwie anders halt.
aber nicht nur der einzeln angeklickte punkt, sondern die gesamte fläche.

ich hoffe, das ist nun verständlicher rübergekommen
  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 16:42 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