AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Listbox in Scrollbox-position verschiebt sich beim klicken
Thema durchsuchen
Ansicht
Themen-Optionen

Listbox in Scrollbox-position verschiebt sich beim klicken

Offene Frage von "oXmoX"
Ein Thema von Van HelF · begonnen am 17. Mär 2007 · letzter Beitrag vom 20. Jul 2007
Antwort Antwort
Seite 1 von 2  1 2      
Van HelF

Registriert seit: 24. Okt 2005
Ort: Karlsbrunn
195 Beiträge
 
Delphi 7 Personal
 
#1

Listbox in Scrollbox-position verschiebt sich beim klicken

  Alt 17. Mär 2007, 10:36
Hallo,
Ich habe eine Listbox in einer Scrollbox erstellt, die lisbox ist größer als die scrollbox, sodass man in der scrollbox hoch und runterscrollen kann. scrollt man jetzt herunter, sodass man die letzten items der listbox sehen kann und klickt auf diese, springt die scrollbox hoch (auch der scroll- schieberegler) und es wird ein anderes item ausgewählt, dass höher liegt (sieht so aus als würde das item ausgewählt mit dem abstand von unten jedoch ohne dass gescrollt wird).
  Mit Zitat antworten Zitat
Van HelF

Registriert seit: 24. Okt 2005
Ort: Karlsbrunn
195 Beiträge
 
Delphi 7 Personal
 
#2

Re: Listbox in Scrollbox-position verschiebt sich beim klick

  Alt 20. Mär 2007, 19:35
falls sich keiner vorstellen kann, was ich meine, einfach mal eine scrollbox aufs form, eine listbox rein, die länger ist, diese mit items füllen, und dann mal runterscrollen und versuchen ein item anzuklicken.
  Mit Zitat antworten Zitat
oXmoX

Registriert seit: 8. Jun 2005
85 Beiträge
 
#3

Re: Listbox in Scrollbox-position verschiebt sich beim klick

  Alt 16. Jul 2007, 08:52
hallo,

habe exakt das gleiche problem.

gibt es schon eine lösung?

die scrollbox will immer automatisch das enthaltene control, welches den focus bekommt sichtbar machen. da die listbox jedoch grösser ist als die scrollbox, wird einfach so gescrollt, dass die obere kante der listbox sichtbar ist. der mausklick wird leider erst nach dem scrollen verarbeitet wodruch dann falsche mauskoordinaten verwendet werden (die listbox hat sich ja durch das scrollen relativ zur maus verschoben).

Wenn man verhindern könnte, dass die scrollbox automatisch zu dem neuen focus scrollt wäre das problem also gelöst.

jemand eine idee?

gruß
oXmoX
  Mit Zitat antworten Zitat
Centrii

Registriert seit: 18. Mai 2007
Ort: FDS
108 Beiträge
 
Delphi 2006 Architect
 
#4

Re: Listbox in Scrollbox-position verschiebt sich beim klick

  Alt 16. Jul 2007, 11:15
Hi

Hab das eben mal ausprobiert, bei mir funktioniert es, ich kann die Listbox mit Werten füllen und den letzten auch selektieren ohne das der Scroll-Balken wo anderst hinspringt.
Wieso mchst du eigentlich eine ScrollBox außenrum?? Die Listbox scrollt doch automatisch....

Gruß
Ruben
Ruben
  Mit Zitat antworten Zitat
oXmoX

Registriert seit: 8. Jun 2005
85 Beiträge
 
#5

Re: Listbox in Scrollbox-position verschiebt sich beim klick

  Alt 16. Jul 2007, 12:35
Zitat von Centrii:
Wieso mchst du eigentlich eine ScrollBox außenrum?? Die Listbox scrollt doch automatisch....
Hmmmm ...ich glaub ich hab noch was vergessen: In der Scrollbox sind nämlich - neben der listbox - noch andere Controls untergebracht (darum die notwendigkeit einer scrollbox um die listbox)

...und wenn der focus nun auf die listbox wechselt, will die scrollbox die obere kante der listbox-control in den sichbaren bereich scrollen.

schau's dir einfach mal an im angefügten beispiel. unterhalb der listbox findest du ein edit, welches beim start den focus erhält. wechselt der ficus nun auf die listbox, so springt das fenster nach oben und der mausklick "landet" sozusagen an der falschen listenposition.
Angehängte Dateien
Dateityp: zip scrollonfocus_126.zip (4,1 KB, 9x aufgerufen)
  Mit Zitat antworten Zitat
Centrii

Registriert seit: 18. Mai 2007
Ort: FDS
108 Beiträge
 
Delphi 2006 Architect
 
#6

Re: Listbox in Scrollbox-position verschiebt sich beim klick

  Alt 16. Jul 2007, 12:52
hm....
das ist komisch, wenn das Edit Feld keinen Focus hat funktioniert es....
muss ich mal genauer anschauen....

Gruß
Ruben
Ruben
  Mit Zitat antworten Zitat
Centrii

Registriert seit: 18. Mai 2007
Ort: FDS
108 Beiträge
 
Delphi 2006 Architect
 
#7

Re: Listbox in Scrollbox-position verschiebt sich beim klick

  Alt 16. Jul 2007, 13:23
also irgendwie geht das bei mir auch nicht, hab auch kein Workaround gefunden.
tu mir aber den gefallen und poste es wenn du ne Lösung hast. Ich werd mich auch nochmal umhören....

Gruß

Ruben
Ruben
  Mit Zitat antworten Zitat
oXmoX

Registriert seit: 8. Jun 2005
85 Beiträge
 
#8

Re: Listbox in Scrollbox-position verschiebt sich beim klick

  Alt 17. Jul 2007, 08:38
mir wäre ja schon geholfen, wenn mir jemand sagen könnte, wie man verhindert, dass die scrollbox immer das control mit dem focus in den sichtbaren bereich rücken will.
  Mit Zitat antworten Zitat
Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#9

Re: Listbox in Scrollbox-position verschiebt sich beim klick

  Alt 17. Jul 2007, 15:53
Das ist leider nicht nur mit Listboxen in Scrollboxen so.
Pack mal ne Listbox mit mehr Items als sie darstellen kann und ein Edit auf ne Form und zwar so, dass beim Start das Edit den Focus hat. Dann Scrollst Du erst in der Listbox nach unten und wählst dann ein Item an. Die Listbox wird dann nach oben scrollen und das item anwählen, das dann unter der Maus ist.
Das ist denke ich schon vom BS so schwoll gelöst, da wirste Pech haben.
Das funktioniert auch mit dem code-explorer. Hier muss man auch erst ein Item anwählen, dann scrollen und dann das Item anwählen, das man wirklich will

Einzige Lösung, die mir einfällt (aber kann auch nicht klappen): Selektiere automatisch sofort das erste Item in der Box und sorge dafür, dass sie den Focus hat.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat
oXmoX

Registriert seit: 8. Jun 2005
85 Beiträge
 
#10

Re: Listbox in Scrollbox-position verschiebt sich beim klick

  Alt 17. Jul 2007, 16:15
Jau, mir ist bewusst, dass das beschribene Verhalten Standard in Windows ist. Um ehrlich zu sein bezieht sich mein konkretes problem auch nicht auf eine listbox, sonder auf ein stringgrid ...damit verhält es sich nämlich genauso.

Zitat von Sidorion:
Einzige Lösung, die mir einfällt (aber kann auch nicht klappen): Selektiere automatisch sofort das erste Item in der Box und sorge dafür, dass sie den Focus hat.
Leider keine Lösung für mich, da der Benutzer ja den focus auf das edit lenken darf.

trotzdem danke!

...der nächste bitte
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:05 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