Announcement

Collapse
No announcement yet.

Scrollbar vom Stringgrid auswerten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Scrollbar vom Stringgrid auswerten

    Hallo<br>
    <br>
    ich möchte gerne die Änderungen über die <br>
    horz. Scrollbar auswerten. Ein StringGrid<br>
    kann z.B. 200 Spalten u. mehr enthalten.<br>
    Deshalb möchte ich gerne wissen, <br>
    welche aktuellen Spalten nach dem <br>
    scrollen durch den Anwender in der Ansicht<br> dargestellt werden.<br>
    <br>
    Hat jemand eine schnelle Hilfe zur Verfügung ?<br>
    <br>
    Gruß Jörg
    <br>

  • #2
    Hi,

    schau Dir die Eigenschaften TopRow, VisibleColCount und VisibleRowCount von TStringGrid mal an.

    Grüße Joche

    Comment


    • #3
      Hey, <Br>
      <Br>
      schönen Dank für die Hilfe.<Br>
      Ich hatte mehr das Problem die Srcollbar<Br>
      vom Stringgrid auszuwerten.<br>
      Ich habe jetzt dafür aber eine Lösung<br>
      über GetScrollInfo gefunden.<br>
      <br>
      Schönen Dank für Deine Hilfe. <br>
      <br>
      Gruß<br>
      <br>
      Jörg<br&gt

      Comment


      • #4
        Hey, <br>
        <br>
        ich habe doch noch ein Problem. Wie bekomme ich mit, <br> das ein User mit der Maus auf die
        Scrollbar gedrückt hat ?<br>
        <br>
        Gruß<br>
        <br>
        Jörg<br&gt

        Comment


        • #5
          Ereignis: OnTopLeftChanged()

          Comment


          • #6
            Hey,<Br>
            <Br>
            der Tip war prima. Ich hatte das Ereignis OnDrawCell ausgewertet. Aber ein Problem habe ich trotzdem noch und zwar durchsuche ich das StringGrid nach bestimmten Eintragungen und stelle den Cursor dann auf die Fundstelle. Beim Scrollen mit der Horz.Scrollbar soll der Cursor neu positioniert werden. Das Ergebnis jetzt mit OnTopLeftChanged und auch mit OnDrawCell ist, entweder läuft der Suchvorgang nicht richtig da OnTopLeftChanged ja auch ausgewertet wird oder der Cursor wird nachdem scrollen nicht positioniert. Irgendwie fehlt mir ein Ereignis oder eine Windows-API, das/die zusätzlich das Anklicken mit der Maus die Scrollbar auswertet. GetScrollInfo ist für die Auswertung der Cursor-Positionierung nach dem Scrollbar schon drin.<Br>
            <Br>
            Vielleicht hast Du noch einen Tip.
            <Br>
            Schönen Dank für Deine Hilfe<Br>
            <Br>
            Gruß<Br>
            Jörg
            &#10

            Comment


            • #7
              Hm,

              ich verstehe das Problem nicht, ich verstehe nicht, warum die GetScrollInfo verwendest. Für was?

              Eigentlich brauchst Du nur in der OnTopLeftChanged zu überprüfen in welche Richtung gescrollt wurde (horizontal oder vertikal). Es scheint Dir darum zu gehen, mitzubekommen, wenn horizontal gescrollt wurde. Ich würde die aktuelle Row in TStringGrid::Tag speichern, dann kannst Du sie beim nächsten Aufruf prüfen, ob sich die Zeile, oder nur die Spalte geändert hat.

              Grüße Joche

              Comment


              • #8
                Hey Jochen, <Br>
                <Br>
                das Problem liegt darin, das nach dem Suchen im Sringgid (Horiz.) die Fundstelle (Spalte) markiert werden soll. Da nach dem Suchen aber das OnTopLeftChanged Ereignis aufgerufen wird, wird die falsche Spalte markiert. Die Funktion GetScrollInfo benutze ich für die Auswertung um die Spalte zu selektieren ( möglichst nahe am Scrollbalken), wenn gescrollt wurde.<Br>
                <Br>
                Gruß<Br>
                Jörg<Br&gt

                Comment


                • #9
                  ???
                  Ich versteh zwar nicht so recht, wie das mit der Spalte möglichst nah am Scrollbalken gemeint ist...

                  Aber mach Dir doch ein Flag, in dem Du speicherst, ob gerade gesucht wird und führe die die Spaltenselektion über GetScrollInfo abhängig von diesem Flag aus.

                  Grüße Joche

                  Comment


                  • #10
                    Hey, <Br>
                    <Br>
                    mit Flag habe ich es auch schon probiert und habe dort das Problem das ich nicht weiß wann ich das Flag zurücksetzen kann. Wann ist das Suchen / Scrollen fertig. Welches Ereignis muß ich dafür nehmen.<Br>
                    <Br>
                    Gruß<Br>
                    Jörg<Br&gt

                    Comment


                    • #11
                      Hey Jochen,<Br>
                      <Br>
                      ich hab den Fehler im Code gefunden. Das Flag stand an der falschen Position.<Br>
                      Manchmal sieht man den Wald vor lauter Bäume nicht. Jetzt läuft alles prima. <Br>
                      <Br>
                      Danke für Deine Hilfe. <Br>
                      <Br>
                      Viele Grüße<Br>
                      <Br>
                      Jör

                      Comment

                      Working...
                      X