Announcement

Collapse
No announcement yet.

StringGrid - Beim scrollen automatisch mit verschieben?

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

  • StringGrid - Beim scrollen automatisch mit verschieben?

    Servus.
    Ich benutze seit geraumer Zeit ein StringGrid für mein aktuelles Projekt. Da ich bisher nur selten mit dieser Liste gearbeitet habe, fehlt es an machnen Dingen, die ich auch durch Ausprobieren und der Borlandhilfe für mich nicht zu lösen waren.
    Mir ist aufgefallen, dass sich bei einer längeren Liste diese nicht per scrollen automatisch verschiebt. Bei Benutzng des Scrollrads an der Maus steppt das Programm durch die einzelnen Zeilen des Grids.
    Ist es möglich dies zu verhindern? Ich möchte es gerne so habe wie bei einem ListView, sodass man per Scrollrad nicht die Einträge durchsteppt, sonden den Scrollbalken bewegt.

    Edit#1
    Eine Vermutung wäre noch die 'OnMouseWheelDown / Up' - Methode, jedoch wüsste ich dann nicht weiter. Also wie ich das Grid dann zum 'verschieben' auffordere.
    Zuletzt editiert von Antz; 06.01.2010, 18:48. Reason: Texterweiterung
    Ants aren't dead

  • #2
    Hallo,

    wie du schon richtig geschrieben hast.

    OnMouseWheelDown:
    Send Message(StringGrid1->Handle, WM_SCROLL, MAKELONG(SB_LINEDOWN, MousePos.y), NULL);
    Handled = true;

    Bei OnMouseWheelUp dann mit SB_LINEUP
    Gruß
    Silvio

    Comment


    • #3
      Hmm, also das was ich finden kann heißt SendMessage und dann meckert der Compiler:
      Undefined symbol 'WM_SCROLL'. In der Hilfe kann ich dazu leider nichts näheres finden...
      Ants aren't dead

      Comment


      • #4
        Undefined symbol 'WM_SCROLL'.
        Könnte daran liegen, dass es kein WM_SCROLL gibt.

        In der Hilfe kann ich dazu leider nichts näheres finden...
        Das ist erstaunlich, gibt es doch ein WM_HSCROLL und WM_VSCROLL
        Christian

        Comment


        • #5
          Sorry war ein kleiner Fehler drin...

          SendMessage(StringGrid1->Handle, WM_VSCROLL, MAKELONG( SB_LINEDOWN, MousePos.y), NULL);
          Handled = true;
          Gruß
          Silvio

          Comment


          • #6
            Jo. Das hat wunderbar geklappt, danke!
            Ants aren't dead

            Comment

            Working...
            X