String Grid

Von: , Frage gestellt am Fr, 15. Okt 1999

Ich habe in einem Form 3 Stringgrids eingefügt. Eines davon besitz eine Scrollbar vertikal. Alle Stringgrids haben die gleiche Anzahl Zeilen etc. Wenn der Benutzer nun mit der Scrollbar nach unten fährt, sollten die anderen zwei Stringgrids auch mitscrollen.

Gibt es dazu eine Möglichkeit ?

9 Antworten zu dieser Frage

  1. Antwort von nach 4 Minuten hilfreich
    Re: String Grid

    Du könntest beim MouseDown, MouseMove oder MouseUp die TopRow abfragen und bei den anderen beiden StringGrids setzen.
    Gruß Thomas

    • Antwort von nach 10 Minuten hilfreich
      Re^2: String Grid

      Okay...danke das klappt schonmal.Jetzt ist aber noch das Problem, dass wenn ich z.B. einfach nur mit der Scrollbar rauf und runter fahre, dass dann weder dass MouseUp, MouseDown oder MouseMove - Event ausgeführt wird. Kann ich für die Scrollbar auch irgendwie sowas machen ?

  2. Antwort von nach 40 Minuten hilfreich
    Re: String Grid

    Du kannst die Scrollbars entfernen (property ScrollBar = None) und einen separaten ScrollBar für alle Boxen benutzen. Dort kannst du das OnScroll-Ereignis abfragen.

    Niels

    • Antwort von nach 51 Minuten hilfreich
      Re^2: String Grid

      naja.... aber da habe ich grad wieder ein problem...

      bei der scrollbar kann ich ja einen min und maxwer angeben.... soll der dann die anzahl zeilen oder einfach die gesamte zeilenhöhe beinhalten ?

      ich habe schonmal sowas versucht...ist aber relativ mühsam...

      • Antwort von nach einer Stunde hilfreich
        Re^3: String Grid

        Ich weiss ja nicht was du als muehsam Bezeichnest, dein Problem ist doch recht einfach zu loesen:

        ScrollBar.Min := StringGrid.FixedRows;
        ScrollBar.Max := StringGrid.RowCount - <SichtbareRows> + FixedRows + 1;

        (Diese Einstellungen muessen natürlich bei Änderungen an der StringGridGroesse neu berechnet werden, aber das schreibt man halt einmal in eine Prozedur!)

        Im OnScroll-Ereignis:

        StringGrid.TopRow := ScrollBox.Position;

        Niels

      • Antwort von nach einer Stunde hilfreich
        String Grid #2

        Ich habe die drei Stringgrids wie folgt angeordnet:

        lstring.align = Left
        mstring.align = client
        rstring.align = right

        nun habe ich die scrollbar vertikal eingefügt. Bei der Vergrösserung (vollbild) wird die scrollbar dann auch richtig angepasst... wenn ich aber dann das form wieder verkleinere, bleibt die scrollbar gleich gross und somit die stringgrids auch, da sie sich ja an der form.height orientieren. Wie kann ich dem abhelfen ?

        • Antwort von nach einer Stunde hilfreich
          Re: String Grid #2

          Du musst die ScrollBar natürlich auch noch alignen:

          ScrollBar.align := alRight;

          Niels [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

          • Antwort von nach einer Stunde hilfreich
            Re^2: String Grid #2

            Nur schade, dass die scrollbar eben keine .align eigenschaft bietet !!!

            Aber noch grad ne andere frage...

            wie kann ich mit den zwei werten X und Y eine einzelne zelle markieren ???

            • Antwort von nach 2 Stunden hilfreich
              Re^3: String Grid #2

              mit was für einer Delphi-Version arbeitest du eigentlich?

              Ohh, Hoppla, ich sehe gerade,dass Delphi 3 noch keine ScrollBar mi align hat.

              Kein wunder dass mir Deine Fragen so einfach erscheinen (Sorry!!)

              Wirst dir wohl Delphi 4 kaufen müssen!!

              Oder, hmmm, lässt sich mit Form.OnResize nichts hindeichseln?

              Col := X;
              Row := Y;

              wenn do Options.goDrawFocusSelected = true setzt, erscheint die Zelle blau.

              Niels

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!