Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Scrollen mal anders... (https://www.delphipraxis.net/106218-scrollen-mal-anders.html)

blackschof 7. Jan 2008 14:56


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

SirThornberry 7. Jan 2008 15:02

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 7. Jan 2008 15:03

DP-Maintenance
 
Dieses Thema wurde von "SirThornberry" von "Library: VCL / WinForms / Controls" nach "VCL / WinForms / Controls" verschoben.

lbccaleb 7. Jan 2008 15:04

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

Aurelius 7. Jan 2008 15:05

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 ^^)

angos 7. Jan 2008 15:24

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:

blackschof 8. Jan 2008 10:34

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.

Delphi Star 8. Jan 2008 12:47

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.

dominikkv 8. Jan 2008 12:59

Re: Scrollen mal anders...
 
Zitat:

Zitat von Delphi Star
Meinst du es zufällig so, wie in dem Beispiel im Anhang?

Wahrscheinlich nein.
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:

blackschof 8. Jan 2008 16:57

Re: Scrollen mal anders...
 
Mmh nein leider funktioniert alles nicht... Ich versuche das Problem erneut zu beschreiben.

http://www.blacksheep-online.net/beispiel.jpg

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 10:04 Uhr.
Seite 1 von 2  1 2      

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