Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi wie kann ich eine Fläche zum ANKLICKEN malen? (https://www.delphipraxis.net/111537-wie-kann-ich-eine-flaeche-zum-anklicken-malen.html)

Spiderpig_GER_15 4. Apr 2008 23:04


wie kann ich eine Fläche zum ANKLICKEN malen?
 
Hi,
bin gerade neu bei delphi und kenne bis jetzt noch nicht so gut aus,
ich habe folgendes problem:

ich will eine fläche zeichnen, bis jetzt kenne ich dafür nur canvas,
auf die ich später draufklicken kann, aber mit canvas geht das nicht. (oder mach ich da was falsch?)

was kann ich also tun?

MfG

Spiderpig

PS: gibt es villeicht eine möglichkeit mit .pixels eine pixel anhäufung zu basteln die auf klicks reagiert?

busybyte 4. Apr 2008 23:11

Re: wie kann ich eine Fläche zum ANKLICKEN malen?
 
Vermutlich machst Du was falsch,aber ohne Code ist es halt schwer zu raten.
Du könntest ein Objekt mit einem Canvas nehmen auf das gklickt werden kann. Auf die Canvas-Zeichenoberfläche selbst geht's nicht direkt
aber auf das Objekt mit dem Canvas z.B. Timage oder TPanel oder eine Paintbox oder über eine globale Mausabfrage

Muetze1 4. Apr 2008 23:12

Re: fläche zum anklicken malen?!
 
Du hast doch die Mausposition beim Click. Somit musst du überprüfen ob die Mausposition innerhalb des gezeichneten Objektes liegt. Von daher ist die Frage: Wie kompliziert ist denn die Figur? Wenn es sich um einfach Elemente handelt, dann kannst du MSDN-Library durchsuchenPtInRect() arbeiten, aber bei komplizierteren Figuren kannst du dann mit einer Region arbeiten und dann MSDN-Library durchsuchenPtInRegion nutzen. Aber das macht es - vor allem beim Einstieg - nur deutlich schwerer. Von daher: wie kompliziert ist die Figur?

Spiderpig_GER_15 4. Apr 2008 23:15

Re: wie kann ich eine Fläche zum ANKLICKEN malen?
 
lol nur ein 'billiges' Rechteck xD

Muetze1 4. Apr 2008 23:16

Re: wie kann ich eine Fläche zum ANKLICKEN malen?
 
Zitat:

Zitat von Spiderpig_GER_15
lol nur ein 'billiges' Rechteck xD

Na da kannst du dann ja MSDN-Library durchsuchenPtInRect() nutzen - aber bei einem Rechteck kannst du ja auch selber vergleichen ob X grösser als Left und kleiner als Right ist, etc. Das ist ja selbst logisch einfach zu ermitteln...

mr.winkle 4. Apr 2008 23:17

Re: wie kann ich eine Fläche zum ANKLICKEN malen?
 
Warum nimmst du nicht einfach einen Button? Der ist schließlich da um angeklickt zu werden.
Wenn du von "anhäufen von Pixelhaufen" sprichst kennst du dich wohl mit tcanvas nicht ganz so gut aus. Vielleicht hilft dir folgendes:

Du kannst ein Rechteck in den Variablen festlegen:
Delphi-Quellcode:
var
  Rechteck:trect;
Im Formcreate machst du nun z.b folgendes:
Delphi-Quellcode:
Rechteck:=rect(10,10,40,40);
image1.canvas.rectangle(Rechteck);
So, jetzt müsstest du ein Rechteck auf dem Image sehen.
Um abzufragen ob der Benutzer darauf geklickt hat schreibst du folgendes in image1mousedown:
Delphi-Quellcode:
if ptinrect(Rechteck,point(x,y)) then showmessage('Rechteck angeklickt') else showmessage('Rechteck nicht getroffen');
Ist jetzt alles aus dem Kopf getippt und ungetestet, bin mir aber ziemlich sicher, dass das so funktioniert.
mfg, mr.winkle

Spiderpig_GER_15 4. Apr 2008 23:22

Re: wie kann ich eine Fläche zum ANKLICKEN malen?
 
vielen Dank soweit, viel nützliches dabei, leider bin ich so müde das ich es momentan nicht umsetzten kann *gäähn*
aber morgen....

Also vielen Dank an alle!

PS: Button wäre mir zwar lieber, aber der kann soweit ich weiß nciht die farbe wechseln, was für mich ein K.O. Kriterium war


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:08 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