AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Stringgrid mit mausrad scrollen

Ein Thema von derseitzer · begonnen am 30. Nov 2017 · letzter Beitrag vom 30. Nov 2017
Antwort Antwort
derseitzer

Registriert seit: 12. Okt 2016
235 Beiträge
 
Delphi 10 Seattle Professional
 
#1

Stringgrid mit mausrad scrollen

  Alt 30. Nov 2017, 13:45
Delphi-Version: 10 Seattle
Hallo Leute,

Ich habe ein Stringgrid und möchte dieses mit dem Mausrad scollen, was bereits funktioniert.
Das Stringgrid ist relativ groß. Wenn ich nun z.B. in die Mitte des Stringgrids mithilfe der Maus durch linke Maustaste halten und ziehen der Scrollbar (also ohne Mausrad!) gehe dann lande
auch wie gewollt in der Mitte. Wenn ich nun jedoch mit dem Mausrad hoch oder runter scrolle, lande ich wieder ganz oben bei Reihe 0 bzw 1...
Ich möchte natürlich das ich wenn ich scrolle, da weiterscrollen kann, wo ich gerade bin.

Vielen Dank im voraus!
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.456 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Stringgrid mit mausrad scrollen

  Alt 30. Nov 2017, 13:47
Hoi,
das ist IMHO bei Object-Pascal / Delphi-Language.
Bitte schreib das wo es reinpasst, ich denke ein Forum mit VCL
  Mit Zitat antworten Zitat
derseitzer

Registriert seit: 12. Okt 2016
235 Beiträge
 
Delphi 10 Seattle Professional
 
#3

AW: Stringgrid mit mausrad scrollen

  Alt 30. Nov 2017, 13:52
@freimatz ich bin hier unter "Object/Pascal/Delphi-Language" also genau das was du mir geschrieben hast oder irre ich mich?
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
471 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

AW: Stringgrid mit mausrad scrollen

  Alt 30. Nov 2017, 13:56
Hallo,

wenn du mit dem Mausrad scrollst, dann änderst du die selektierte Zelle oder die selektierte Reihe (Row)

Wenn du den Balken ziehst änderst du die Ansicht innerhalb deines Grids, aber nicht die Position der selektierten Zelle. wenn du anschließen wieder Mausrad scrollst, macht deine Selektion da weite wo sie aufgehört hat und damit springt dein View wieder zurück. Wenn du nach dem ziehen des Balkens eine Zelle markierst, dann macht dein Scrollrad auch dort weiter.
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
derseitzer

Registriert seit: 12. Okt 2016
235 Beiträge
 
Delphi 10 Seattle Professional
 
#5

AW: Stringgrid mit mausrad scrollen

  Alt 30. Nov 2017, 14:09
Ja so habe ich mir das auch schon gedacht aber ich weiß ehrlich gesagt nicht wie ich nach dem loslassen der Scrollbar die zusehende Zelle fokusiere.
Wenn ich im onmouseup event das hier reinschreibe:

Stringgrid1.Row:=Stringgrid1.TopRow;

passiert leider nichts
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#6

AW: Stringgrid mit mausrad scrollen

  Alt 30. Nov 2017, 14:23
Hier mal ein logischer Anfang - alle Fälle und Eventualitäten müsstest Du aber selbst erarbeiten, dazu fehlt mir gerade die Zeit.
Delphi-Quellcode:
procedure TForm3.grd1MouseWheelDown(Sender: TObject; Shift: TShiftState;
  MousePos: TPoint; var Handled: Boolean);
begin
  if grd1.Selection.Top < grd1.TopRow then
    grd1.Selection := TGridRect(Rect(grd1.Selection.Left, grd1.TopRow, grd1.Selection.Left, grd1.TopRow));;
end;
......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
derseitzer

Registriert seit: 12. Okt 2016
235 Beiträge
 
Delphi 10 Seattle Professional
 
#7

AW: Stringgrid mit mausrad scrollen

  Alt 30. Nov 2017, 14:28
perfekt vielen Dank

Geändert von derseitzer (30. Nov 2017 um 14:31 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#8

AW: Stringgrid mit mausrad scrollen

  Alt 30. Nov 2017, 14:32
perfekt vielen Dank
Hier mal ein logischer Anfang - alle Fälle und Eventualitäten müsstest Du aber selbst erarbeiten
Und auch nur, wenn die fokusierte Zelle über der aktuell angezeigten liegt, nur wenn unterhalb. usw...

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
derseitzer

Registriert seit: 12. Okt 2016
235 Beiträge
 
Delphi 10 Seattle Professional
 
#9

AW: Stringgrid mit mausrad scrollen

  Alt 30. Nov 2017, 14:38
Habe den Code etwas erweitert:
Code:
procedure T_DB_Behaelter_Uebersicht.StringGrid1MouseWheelDown(Sender: TObject;
  Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
  if ((Stringgrid1.Selection.Top < Stringgrid1.TopRow-14) or (Stringgrid1.Selection.Top > Stringgrid1.TopRow+14)) then
    Stringgrid1.Selection := TGridRect(Rect(Stringgrid1.Selection.Left, Stringgrid1.TopRow, Stringgrid1.Selection.Left, Stringgrid1.TopRow));
end;

procedure T_DB_Behaelter_Uebersicht.StringGrid1MouseWheelUp(Sender: TObject;
  Shift: TShiftState; MousePos: TPoint; var Handled: Boolean);
begin
  if ((Stringgrid1.Selection.Top < Stringgrid1.TopRow-14) or (Stringgrid1.Selection.Top > Stringgrid1.TopRow+14)) then
    Stringgrid1.Selection := TGridRect(Rect(Stringgrid1.Selection.Left, Stringgrid1.TopRow, Stringgrid1.Selection.Left, Stringgrid1.TopRow));
end;
14 ist die Anzahl der aufeinmal angezeigten Zeilen bzw. Rows. Scheint zu funktionieren
Danke nochmal Sakura
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#10

AW: Stringgrid mit mausrad scrollen

  Alt 30. Nov 2017, 15:47
14 ist die Anzahl der aufeinmal angezeigten Zeilen bzw. Rows. Scheint zu funktionieren
Danke nochmal Sakura
Gerne, es gibt übrigens die Eigenschaft VisibleRowCount oder so ähnlich

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:18 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