AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TLabel Text unter Mauszeiger bei OnClick erkennen
Thema durchsuchen
Ansicht
Themen-Optionen

TLabel Text unter Mauszeiger bei OnClick erkennen

Ein Thema von DataCool · begonnen am 23. Mai 2010 · letzter Beitrag vom 23. Mai 2010
Antwort Antwort
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#1

TLabel Text unter Mauszeiger bei OnClick erkennen

  Alt 23. Mai 2010, 15:02
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
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#2

Re: TLabel Text unter Mauszeiger bei OnClick erkennen

  Alt 23. Mai 2010, 15:13
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.

TextWidthTextWidth > http://www.delphipraxis.net/internal...ct.php?t=12542
PS: Das TLabel hat schon ein Canvas und dieses kannst du direkt verwenden.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#3

Re: TLabel Text unter Mauszeiger bei OnClick erkennen

  Alt 23. Mai 2010, 15:17
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.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: TLabel Text unter Mauszeiger bei OnClick erkennen

  Alt 23. Mai 2010, 15:24
@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
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#5

Re: TLabel Text unter Mauszeiger bei OnClick erkennen

  Alt 23. Mai 2010, 15:36
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
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#6

Re: TLabel Text unter Mauszeiger bei OnClick erkennen

  Alt 23. Mai 2010, 15:54
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).
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:40 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