![]() |
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? |
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 |
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
![]() ![]() |
Re: wie kann ich eine Fläche zum ANKLICKEN malen?
lol nur ein 'billiges' Rechteck xD
|
Re: wie kann ich eine Fläche zum ANKLICKEN malen?
Zitat:
![]() |
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:
Im Formcreate machst du nun z.b folgendes:
var
Rechteck:trect;
Delphi-Quellcode:
So, jetzt müsstest du ein Rechteck auf dem Image sehen.
Rechteck:=rect(10,10,40,40);
image1.canvas.rectangle(Rechteck); Um abzufragen ob der Benutzer darauf geklickt hat schreibst du folgendes in image1mousedown:
Delphi-Quellcode:
Ist jetzt alles aus dem Kopf getippt und ungetestet, bin mir aber ziemlich sicher, dass das so funktioniert.
if ptinrect(Rechteck,point(x,y)) then showmessage('Rechteck angeklickt') else showmessage('Rechteck nicht getroffen');
mfg, mr.winkle |
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 05:22 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