![]() |
TLabel Text unter Mauszeiger bei OnClick erkennen
Hallo Leute,
ich bastel gerade eine kleine Komponente, dabei hänge ich jetzt an dem Problem das ich den Mausklick auf ein Wort abfangen möchte. Hat jemand zufäälig schon sowas inder Richtung gemacht ? Ansonsten wäre ich auch für eine Ideen Anregung dankbar, Greetz Data |
Re: TLabel Text unter Mauszeiger bei OnClick erkennen
Du bekommst in OnMouseDown oder OnMouseUp (anstatt OnClick) die Position des Klicks.
Nun mußt du nur noch den Text im Label zerlegen (in Buchstaben oder Wörter), die Position dieser Buchstaben/Wörter errechnen und mit dem Klickpunkt vergleichen. ![]() ![]() PS: Das TLabel hat schon ein Canvas und dieses kannst du direkt verwenden. :zwinker: |
Re: TLabel Text unter Mauszeiger bei OnClick erkennen
Idee: Vielleicht solltest du das Zeichnen selbst übernehmen, da du somit folgendes implementieren kannst. Du kannst für jedes Wrot ein TRect erzeugen und in einen Index speichern. So kannst du dann über OnMouseDown das passende Rect bestimmen und darauf reagieren.
|
Re: TLabel Text unter Mauszeiger bei OnClick erkennen
@Himitsu:
Soweit war ich vom Ideenansatz auch schon, allrdings hatte ich gehoft das das ganze mit weniger Arbeit zu erledigen ist. Da das Label mit Wordwrap/Resize unterschiedlich umgebrochen werden kann. Ich muss mir wohl wirklich zum jedem Wort TRect speichern/merken und dann mit PtInRect überprüfen, ob das ganze enthalten ist. Somit bin ich schon ziemlich nahe an S.H.A.R.K. 's Vorschlag, allerdings wollte ich das selber zeichnen auch vermeiden. Schade dachte es gibt irgentetwas einfaches .... Aber nun ut von nix kommt ja auch nix ;-) Thx Data |
Re: TLabel Text unter Mauszeiger bei OnClick erkennen
Ich hatte mal eine Text-Marker-Komponente in Flash geschrieben und da hatte ich auch keinen anderen Weg gefunden, dies umzusetzen. Das was ich vorgeschlagen habe, wir halt zum Problem, wenn sich mal die Größe des Labels ändert. Das hatte ich damals nicht wirklich.
Das kannst du aber lösen, in dem du nicht TRect nimmst, sondern eine Klasse einführst, die dann weitere Metainformationen aufnimmt und pro Wort dann evtl. ein Instanz davon hälst. Denkbar wäre der Ansatz auf jeden Fall. Hätte gerade schon wieder Lust sowas zu programmieren, nur kommen dann wieder meine anderen Projekte zu kurz :mrgreen: |
Re: TLabel Text unter Mauszeiger bei OnClick erkennen
Nja, du kannst es ja dennoch zeichnen lassen.
Dann muß du nur in der selben Art, wie es gezeichnet wird, die Position der Wörter berechnen. PS: Irgendwo mußt du die Position ja herbekommen. TLabel nutzt intern aber nur ein Canvas (das seines Parents), auf welchs der Text draufgedruckt wird. Also entweder du berechnest die Position oder du müßtest auf das Canvas zugreifen und das Wort auslesen. Ersteres ist einfacher, denn "Wort auslesen" bedeutet in diesem Fall Pixel analysieren und eine Texterkennung (OCR). :zwinker: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 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