von MaddinR » Mi, 27.02.2013 07:52
Hallo R.
*Wow*... Du hast ein Gedächntnis...

.... und Du hast Recht, es ist immer noch das gleiche Programm, nur ist es jetzt ein anderes Problem. Damals skipte er unerwünscht im hier genannten (rechts stehenden) Grid-Control unter bestimmten Bedingungen zwei Datensätze, anstatt einem. Das Problem war mit DPunch's Tip zur Tab-Order behoben. Aber der jetzige Fehler ist eigentlich kein Fehler, der erst jetzt aufgetaucht ist, sondern der war eigentlich schon immer vorhanden.... eine Macke, die zwar nervig war, aber nicht wirklich als Fehler zu bezeichnen ist. Und erst jetzt hatte ich irgendwie die Lust, auch dieses Problem zu lösen. Allerdings glaube ich im Moment nicht mehr daran, dass das mit meinen Ereignissen zu tun hat, sondern eher auf OOo-internes Windows-Handling zurückzuführen ist.
Also, immer dann, wenn die Liste länger als der Listbox-Windows-Bereich ist, und immer dann wenn raufgescrollt wurde, also List-Elemente oben (!) ausserhalb des Fensters liegen, scrollt er ein weiter unten liegendes
selektiertes List-Item beim Redraw so weit wie möglich nach oben. Ist hinsichtlich der Anzahl der vorhandenen Items Platz genug, so steht nach dem Redraw das selektierte Element auf relativer Fenster-Pos Eins. Er macht das aber nur dann, wenn vorher das Grid-Control den Fokus hatte und dann der Mauszeiger in das Listbox-Fenster gezogen wird. Das heisst, solange das List-Control den Focus hat, kann ich stundenlang arbeiten, ohne dass ein Redraw die List-Elemente eigenständig scrollt, aber nach jedem Focus-Wechsel geschieht genau dieses Verhalten. Das ist beim Arbeiten insofern blöde, weil man dann immer mit den Augen neu in der Liste suchen muss, um das letzte Element zu finden, oder das, was
(man am Rande bemerkt als Vorschau auf die nächste Aktion schon wahrgenommen hat und) gerade noch in der Mitte gesehen hat und das jetzt ganz woanders steht.
Nun ja,ich habe das Problem gelöst. Allerdings anders, als zuerst gedacht. Ich habe die Listbox entfernt und verwende jetzt stattdessen ein Grid-Control. Damit passiert das nicht mehr. Und ich habe dabei ein paar nebensächliche Vorteile "gewonnen".
BTW, gibts eiegentlich eine Möglichkeit, innerhalb dieses (links stehenden) Grid-Controls (welches Read-Only) ist, bei Click auf eine Zelle die ganze Zeile zu markieren, anstatt nur diese Zelle... also vom Effekt so ähnlich, als würde man den Satzmarkierer (Column 0) anclicken. Das würde das Arbeiten ein wenig optisch unterstützen und den selektieren Satz deutlicher hervorheben. Also, dass das dann so ein bisschen so aussehen würde, wie beim List-Control. Gibts da einen Trick, um das zu erreichen?
vg, Maddin
Hallo R.
*Wow*... Du hast ein Gedächntnis... :D .... und Du hast Recht, es ist immer noch das gleiche Programm, nur ist es jetzt ein anderes Problem. Damals skipte er unerwünscht im hier genannten (rechts stehenden) Grid-Control unter bestimmten Bedingungen zwei Datensätze, anstatt einem. Das Problem war mit DPunch's Tip zur Tab-Order behoben. Aber der jetzige Fehler ist eigentlich kein Fehler, der erst jetzt aufgetaucht ist, sondern der war eigentlich schon immer vorhanden.... eine Macke, die zwar nervig war, aber nicht wirklich als Fehler zu bezeichnen ist. Und erst jetzt hatte ich irgendwie die Lust, auch dieses Problem zu lösen. Allerdings glaube ich im Moment nicht mehr daran, dass das mit meinen Ereignissen zu tun hat, sondern eher auf OOo-internes Windows-Handling zurückzuführen ist.
Also, immer dann, wenn die Liste länger als der Listbox-Windows-Bereich ist, und immer dann wenn raufgescrollt wurde, also List-Elemente oben (!) ausserhalb des Fensters liegen, scrollt er ein weiter unten liegendes [u]selektiertes[/u] List-Item beim Redraw so weit wie möglich nach oben. Ist hinsichtlich der Anzahl der vorhandenen Items Platz genug, so steht nach dem Redraw das selektierte Element auf relativer Fenster-Pos Eins. Er macht das aber nur dann, wenn vorher das Grid-Control den Fokus hatte und dann der Mauszeiger in das Listbox-Fenster gezogen wird. Das heisst, solange das List-Control den Focus hat, kann ich stundenlang arbeiten, ohne dass ein Redraw die List-Elemente eigenständig scrollt, aber nach jedem Focus-Wechsel geschieht genau dieses Verhalten. Das ist beim Arbeiten insofern blöde, weil man dann immer mit den Augen neu in der Liste suchen muss, um das letzte Element zu finden, oder das, was [i](man am Rande bemerkt als Vorschau auf die nächste Aktion schon wahrgenommen hat und)[/i] gerade noch in der Mitte gesehen hat und das jetzt ganz woanders steht.
Nun ja,ich habe das Problem gelöst. Allerdings anders, als zuerst gedacht. Ich habe die Listbox entfernt und verwende jetzt stattdessen ein Grid-Control. Damit passiert das nicht mehr. Und ich habe dabei ein paar nebensächliche Vorteile "gewonnen".
BTW, gibts eiegentlich eine Möglichkeit, innerhalb dieses (links stehenden) Grid-Controls (welches Read-Only) ist, bei Click auf eine Zelle die ganze Zeile zu markieren, anstatt nur diese Zelle... also vom Effekt so ähnlich, als würde man den Satzmarkierer (Column 0) anclicken. Das würde das Arbeiten ein wenig optisch unterstützen und den selektieren Satz deutlicher hervorheben. Also, dass das dann so ein bisschen so aussehen würde, wie beim List-Control. Gibts da einen Trick, um das zu erreichen?
vg, Maddin