AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi RichEdit: Overridene SetSelStart-Methode wird nie aufgerufen
Thema durchsuchen
Ansicht
Themen-Optionen

RichEdit: Overridene SetSelStart-Methode wird nie aufgerufen

Ein Thema von TStringlist · begonnen am 6. Sep 2004 · letzter Beitrag vom 9. Sep 2004
 
TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#11

Re: RichEdit: Overridene SetSelStart-Methode wird nie aufger

  Alt 7. Sep 2004, 16:20
Das Ziel meiner Anstrengungen ist es, einen eigenen Caret zu installieren, ...einer der auch überall hinter einem Zeilenende frei positionierbar ist. Und da ich dessen Koordinaten in eigener Regie dann je nach Mausposition immer selbst berechnen muss und von dieser Caret/Mausposition aber selbst wieder etwaige Blockmarkierungen abhängig sind, wäre es also praktisch gewesen, diese durch die Maus entstehende Blockgenerierung dabei auch gleich selbst mit übernehmen zu können. ...Weil nämlich eine entsprechend systemerzeugte Blockgenerierung und die solches verursachende Mausbewegung so eine ganz speziell eigene Sache ist und eine aktuelle eigene Caret-Position damit dann natürlich auch immer harmonieren müsste.

Denn: Erzeuge mal in einem normalen RichEdit-Control mit der Maus einen mehrzeiligen Block und fahre mit dieser dann pixelweise nach oben, und zwar solange, bis du so dann irgendwann eine weitere Blockzeile erzeugt hast. Nun fahre mit der Maus wieder pixelweise herunter. Was siehst du? Eine Art von 'Unschärfe' (von bis zu 4 Pixeln) die jeweils immer wieder zusätzlich nach unten bzw. nach oben zu fahren ist, um den Block dann jeweils immer wieder neu um eine Zeile zu vergrößern bzw. verringern zu können. Und genauso wird natürlich auch keiner eine Position eines eigenen (künstlichen) Carets berechnen wollen! Und auch der Delphi-eigene Editor macht das nicht so, sondern der macht das natürlich so, wie ich das auch gerne hätte, nämlich ohne diesen 'Unschärfebereich'.


...Habe inzwischen aber doch noch einen theoretischen Lösungsweg gefunden (sofern sich nicht doch noch was einfacheres in Sachen Abfangen von WM-Messages bzgl. der oben erwähnten Situation ergeben sollte): Denn solange der Caret direkt auf einem Text steht und ich mich dort mit gedrückter linker Mousbutton bewege (also einen Block erzeuge), solange ist es nämlich auch gut möglich, mir dann einfach die system-eigenen Koordinaten der Blockgrenzen als Caret-Position aufzwingen zu lassen (da sie mir ja anfangs des MouseMove-Eventhandlers nun auch bekannt sind (wie ich das aber eben erst sehr kürzlich rausbekommen habe)). In allen übrigen Situationen benutze ich dann einfach wieder meine eigene jeweils selbst berechneten Koordinaten zur Caret-Positionierung. Wird wahrscheinlich auch gut so machbar sein, imho.
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat
 


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 22:27 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