![]() |
Falsche Caret- / Cursor-Position
Hi,
ich habe ziemlich lange nach einer Lösung für folgende Fehler gesucht: Man hat eine Form auf der ein Grid liegt (egal ob Stringgrid oder DBGrid) wenn das Grid den Focus hat und ein neues Fenster mit einem Edit-/Memofeld geöffnet wird ist der Cursor gar nicht da oder in einem Memo-Feld an der falschen Position. Wenn man schreibt beginnt er allerdings an der erwarteten Stelle. Wie gesagt war es nicht ganz einfach den Fehler nachzustellen bzw. eine Lösung im Internet zu finden wenn die Umstände unklar sind. Die Lösung bzw. Workaround wird hier beschrieben ![]()
Delphi-Quellcode:
Interessant ist wie lange dieser Fehler bekannt ist (klasse Borland/Codegear).
Workaround for D2007
----------------------------------------- Find in Grids.pas following piece of code in DrawCell(): Focused := IsActiveControl; if Focused and (CurRow = Row) and (CurCol = Col) then begin SetCaretPos(Where.Left, Where.Top); Include(DrawState, gdFocused); end; ...and replace it with: Focused := IsActiveControl; if Focused and (CurRow = Row) and (CurCol = Col) then begin if Self.Focused then // *** this is the workaround !!!!!! SetCaretPos(Where.Left, Where.Top); Include(DrawState, gdFocused); end; Vielleicht konnte ich anderen Suchenden damit helfen. Grüße Frank |
Re: Falsche Caret- / Cursor-Position
Hallo,
Dieser hier beschriebene VCL bug war der Grund warum ich vom RadStudio auf CBuilder6 zurückgegangen bin. Im CodeCentral steht der immer noch auf Status OPEN. Arrgghh! Warum fixt CodeGear sowas nicht wenn schon die User die Lösung erarbeiten!? Ich habe ![]() Matmok |
Re: Falsche Caret- / Cursor-Position
Wouh danke...
Ich hab genau das Problem zur Zeit in einem meiner Projekte und war schon am Verzweifeln -.- Da meine Änderung an der Grid.pas irgendwie nicht übernommen wird, hab ich jetzt sichergestellt, dass mein Grid nicht den Fokus hat, wenn mein neues Fenster mit dem Edit aufgeht, so funktionierts aus. ~kroimon PS: Sorry, den alten Thread wiederausgegraben zu haben ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:57 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