Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi click fläche bei bildern definieren ? (https://www.delphipraxis.net/74464-click-flaeche-bei-bildern-definieren.html)

agm65 3. Aug 2006 17:05


click fläche bei bildern definieren ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
hallo leute, ich nochmal...
mal ne frage ...gibt es irgendwelche komponenten die ich über images drüber legen kann um click flächen zu definieren ?
also ich habe ein image, von dem soll nur ein ganz kleiner teil anklickbar sein. jetzt könnte ich ja ein bild ohne inhalt drüberlegen und diesen on click bereich nutzen. wenn mein on click bereich jetzt aber nicht 4 eckig ist sondern zB rund bekomme ich ja nicht alles zum anklicken.

hab ein beispiel bild angegeben. der rote bereich soll der on click sein !

konda 3. Aug 2006 17:09

Re: click fläche bei bildern definieren ?
 
leg doch ein bild wo zum beispiel die schublade abgebildet ist und der rest tranparent ist über das hauptbild und prüfe dann beim klick auf das andere bild welche farbe der pixel hat der angeklickt wurde und wenn die farbe nicht die der transparenten ist dann passiert was.

Ich hoffe du verstehst mich!! :mrgreen:

fkerber 3. Aug 2006 17:14

Re: click fläche bei bildern definieren ?
 
Hi!

Du könntest auch sozusagen die Koordinaten des Klickpunktes ermitteln. Dabei sollte dir z.B. Delphi-Referenz durchsuchenptInRect helfen!


Ciao, Frederic

agm65 3. Aug 2006 17:14

Re: click fläche bei bildern definieren ?
 
hmm kannst du mir dazu mal ein beispiel machen ? so richtig verstehe ich nicht.


zu den koordinaten: hmm aber da hab ich ja für jedes object nen haufen koordinaten ?

konda 3. Aug 2006 17:23

Re: click fläche bei bildern definieren ?
 
Liste der Anhänge anzeigen (Anzahl: 2)
also, nehmen wir an du hast bild1(anhang), dann legst du bild2über bild1 und stellts als transparente farbe bei bild2 weiß ein. wenn jetzt auf bild2 geklickt wird, prüfst du mit image1.canvas.pixel[] ob die pixelfarbe weiß ist oder nicht, wenn die pixelfarbe nicht weiß ist löst du halt das aus, was passieren soll.

agm65 3. Aug 2006 17:37

Re: click fläche bei bildern definieren ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
das hört sich gut an , jetzt musst du mir nur noch sagen , wo ich die transparente farbe bestimme .. ich bau mal ne demo !

agm65 3. Aug 2006 18:23

Re: click fläche bei bildern definieren ?
 
könnte sowas nicht mit den graphics 32 komponenten gut gehen ?

agm65 3. Aug 2006 19:25

Re: click fläche bei bildern definieren ?
 
hey leute, kann ich nicht einfach dem bild sagen, dass es den transparenten bereich nicht beachten soll ? bzw wie ist die farbdefinition für den transparenten bereich ?

weil dann kann ich ja im mouse over oder in click einfach sagen if transparent = true then mach nix ???

agm65 3. Aug 2006 19:48

Re: click fläche bei bildern definieren ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
also ...ich hab jetzt ein bild mit rosa hintergund (siehe anhang) . ich sage zuerst:

Delphi-Quellcode:
image1.Picture.Bitmap.TransparentColor = $FF00FF
image1.transparents := true;
damit definiere ich die farbe der transparents. wie kann ich jetzt zB beim mouse over mit dieser farbe (der transparenten farbe) weiter arbeiten ? also sagen, sobald diese farbe (die transparents auftaucht) werden die normalen funktionen sowie onclick nicht mehr aktiviert ?


das muss doch jemand wissen ?

bitte !

paritycheck 3. Aug 2006 20:12

Re: click fläche bei bildern definieren ?
 
Hier ist auch ne Komponente die das können sollte.
http://www.mirkes.de/de/delphi/vcls/rgnimg.php

agm65 3. Aug 2006 20:24

Re: click fläche bei bildern definieren ?
 
danke, werde ich mir mal anschauen...aber es muss doch bestimmt auch nur im code gehen ? weiss niemand eine lösung ?

agm65 4. Aug 2006 09:46

Re: click fläche bei bildern definieren ?
 
hey diese komponente sieht recht viel versprechend aus...klappt auch alles wunderbar..würde nur gerne wissen wie ich den mous click definiere ...danke cu !

zer00 4. Aug 2006 10:56

Re: click fläche bei bildern definieren ?
 
Nur so ne Frage am Rande, kann man das nicht auch mit Regions lösen?

grz zer00

agm65 4. Aug 2006 10:59

Re: click fläche bei bildern definieren ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
ja genau diese komponente macht das...ich habe die region für mein bild definiert aber ich kriege den mouse click nicht hin. wenn ich auf das bild klicke wird immer alles ausgewählt und nicht meine region was mache ich falsch ...wer kann mir da helfen ?

also ich uppe nochmal das bild und dazu die region...wer kann mir denn da sagen wie ich bei dieser, oben genannten komponente, den mouse click event nur für die region ermittel ? weil der cursor änder sich ja schon so wie ers es soll:

also das bild ist als anhang dabei und hier ist die region. einfach bei der komponente adden bei region....hey ich bin euch echt dankbar wenn ihr mir da helft !

region: X,32,1,63,1008,1,1,63,80,50,1,52,2,48,2,54,3,46,3, 55,4,44,4,56,5,42,5,57,6,40,6,57,7,38,7,
57,8,36,8,57,9,35,9,57,10,34,10,57,11,33,11,57,13, 33,13,56,16,32,16,56,21,31,21,56,24,31,24,55,27,29 ,
27,55,28,27,28,55,29,25,29,55,30,23,30,55,31,21,31 ,55,32,19,32,55,33,17,33,54,34,15,34,53,35,13,35,5 1,
36,11,36,53,37,10,37,54,38,9,38,55,42,10,42,54,43, 11,43,53,44,13,44,51,45,15,45,49,46,17,46,47,47,19 ,
47,45,48,21,48,43,49,23,49,41,50,25,50,39,52,23,52 ,41,53,21,53,43,54,19,54,45,55,17,55,47,56,15,56,4 9,
57,13,57,51,58,11,58,54,59,9,59,55,60,7,60,57,61,5 ,61,59,62,3,62,61,63,1,63,63,65,3,65,61,66,5,66,59 ,
67,7,67,57,68,9,68,55,69,11,69,53,70,13,70,51,71,1 5,71,49,72,17,72,47,73,19,73,45,74,21,74,43,75,23, 75,
41,76,25,76,39,77,27,77,37,78,29,78,35,79,31,79,33 ,80,


das gehört dann alles nebeneinander

[edit=Phoenix]Scrollbalken entfernt durch zusätzliche Zeilenumbrüche. Mfg, Phoenix[/edit]

zer00 4. Aug 2006 11:49

Re: click fläche bei bildern definieren ?
 
Hier ist mal ein bisschen Code, ist aus dem Delphi 7 Kochbuch.
Es wird eine EllipticRgn verwendet.
Alternativ könntest Du auch Shape-Komponenten verwenden. Siehe zweites Code-Beispiel.

Region-Code

Delphi-Quellcode:
implementation

{$R *.DFM}

var rh1 : HRGN;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  If PtInRegion(RH1, x,y) Then begin
    canvas.Pixels[x,y]:= clblack;
    canvas.TextOut(x+1,y+1,'In Region');
  end;

end;

procedure TForm1.FormPaint(Sender: TObject);
begin
  canvas.Ellipse(10, 10, 210, 210);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  RH1 := CreateEllipticRgn(10, 10, 210, 210);
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  If PtInRegion(RH1,x,y) Then canvas.Pixels[X, Y]:= clred;
end;

end.

Beispiel mit Shapes

Delphi-Quellcode:
implementation

uses Unit2; //nur als Beispiel

{$R *.DFM}

procedure TForm1.Shape3MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
     close
end;

procedure TForm1.Shape4MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
     form2.show
end;

procedure TForm1.Shape1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
     showmessage('Hier könnte ein anderes Formular geöffnet werden')
end;

procedure TForm1.Shape2MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
     showmessage('Hier könnte eine andere Anwendung gestartet werden')
end;

end.
grz zer00

agm65 4. Aug 2006 12:25

Re: click fläche bei bildern definieren ?
 
ist wohl nicht ganz was ich suche ..aber danke

zer00 4. Aug 2006 12:42

Re: click fläche bei bildern definieren ?
 
Zitat:

Zitat von agm65
ist wohl nicht ganz was ich suche ..aber danke

Darf ich fragen wieso nicht?

grz zer00

agm65 4. Aug 2006 12:51

Re: click fläche bei bildern definieren ?
 
weil ich nicht weiss wie ich das auf mein bild aufziehen soll...ich hab ja jetzt diese komponente mit der geht es 1000% -> wenn mir jemand sagen kann wie das click event zu definieren ist ? ..danke

semo 28. Jan 2007 07:18

Re: click fläche bei bildern definieren ?
 
ganz norml im object inspector der komponente bei den events?!


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:20 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 by Thomas Breitkreuz