![]() |
Scrollen mal anders...
Hallo liebe Delphi-Community!
Ihr alle kennt sicher die Programme Itunes, Lightroom oder wenn ihr Mac besitzt ist das sowiso nichts neues für euch. Ich spreche vom Scrollverhalten dieser Programme... Man kann ganz einfach irgendwo scrollen, ohne zuerst auf das gewünschte Element zu klicken. Meistens muss man klicken und dann scrollen, hingegen wäre dieses "andere" verhalten ganz einfach "darüberfahren und scrollen". Ich bin schon lange auf der Suche und hab auch selber ein wenig rumprobiert, aber bin zu keinem Schluss gekommen. Hat jemand von euch schon so etwas programmiert bzw weis jemand wie das zu realisieren wäre? Vielen Dank im voraus blackschof |
Re: Scrollen mal anders...
könntest du für alle die es nicht kennen dieses scrollen beschreiben? vielleicht kann dir dann jemand helfen
|
DP-Maintenance
Dieses Thema wurde von "SirThornberry" von "Library: VCL / WinForms / Controls" nach "VCL / WinForms / Controls" verschoben.
|
Re: Scrollen mal anders...
hy, und willkommen in der dp!! :thumb: :thumb:
was genau willst du denn scrollen?? wenn du für selbiges element vllt schon eine scroll bar hast, kannst du die mauscoordinaten abfragen und die umwandeln in prozent des bildschirms, und danach dann deine scrollbar positionieren.. mfg |
Re: Scrollen mal anders...
Versuch es doch mal so dass du im onMouseHover (onMouseOver) die Position des Mauszeigers auf der Scrollbar abfragst und dann die Position manuell ausrechnest und setzt (KA ob das funktioniert, ist eben nur eine Überlegung ^^)
|
Re: Scrollen mal anders...
Hi,
nicht so kompliziert leute :) er möchte doch anscheinend nur automatisch den fokus auf das element setzen, wo er mit der maus drüber fährt, also hilft wohl das hier: Am beispiel einer checklistbox: Einfach das Ereginis OnMouseMove beschreiben mit folgendem Code:
Delphi-Quellcode:
procedure TForm1.clbBeispielChecklistBoxMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer); begin if not clbBeispielChecklistBox.Focused then clbBeispielChecklistBox.SetFocus; end; // EDIT // Mit dieser leichten Änderung kannst du eine Funktion für alle WinControls nutzen procedure TForm1.AutofocusMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if Sender is TWinControl then if not TWinControl(Sender).Focused then TWinControl(Sender).SetFocus; end; PS Willkommen in der :dp: |
Re: Scrollen mal anders...
Danke an allen für die schnelle Hilfe!
@angos: danke, ich werde es gleich mal probiern! @all: Das Scrollverfahren unterscheidet sich indem man ein beliebiges scrollbares Element (Scrollbar, Grid, ...) scrollen kann ohne zuerst darauf klicken zu müssen, sondern einfach mit der Maus darüberfährt (dann wird der Focus gesetzt(?)) und man kann das Element scrollen. Ich weiß nicht wie ich es besser beschreiben kann. |
Re: Scrollen mal anders...
Liste der Anhänge anzeigen (Anzahl: 1)
Meinst du es zufällig so, wie in dem Beispiel im Anhang?
Ist allerdings nicht besonders sauber gelöst, soll ja schnell gehen. Ich habe einfach die Mausposition abgefragt und auf die Scrollbar übertragen. |
Re: Scrollen mal anders...
Zitat:
Er will einfach nur ganz normal jenes Control scrollen können (mit dem Scrollrad an der Maus) über dem sich die Maus befindet, und nicht das welches gerade den Fokus hat. Ich glaube mich sogar zu erinnern das man das in Windows einstellem kann? :gruebel: |
Re: Scrollen mal anders...
Mmh nein leider funktioniert alles nicht... Ich versuche das Problem erneut zu beschreiben.
![]() Also das Beispiel besteht aus einer Form mit zwei Lists und wie ihr sehen könnt, ist der Focus auf die rechte gesetzt. Nun möchte ich in der linken List scrollen können, indem ich mit der Maus darüberfahre und das Scrollrad betätige OHNE, wie gewöhnlich, zuerst auf die List zu klicken um überhaupt scrollen zu können. Könnt ihr es jetzt verstehen? Danke nochmal. mfg blackschof |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:01 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 by Thomas Breitkreuz