Hallo,
ich muss in einem Grid-Control (mit langer Datenliste) einige Zeilen per Code markieren. Weil dabei u.U. für den Anwender garkeine Markierung direkt sichtbar wird (nämlich dann wenn das Grid zufällig so gescrollt ist das keine der zu markierenden Zeilen im sichtbaren Bereich liegt) würde ich gerne, nach der Markierung, das Grid per Code so scrollen das die oberste markierte Zeile am oberen Rand des Grids liegt.
Ich finde nix dazu.
Hat jemand eine Lösung?
Beispieldatei hängt an.
Gruß
Stephan
Wie scrolle ich ein Grid-Control (auf einem Basic-Dialog) per Code?
Moderator: Moderatoren
Wie scrolle ich ein Grid-Control (auf einem Basic-Dialog) per Code?
- Dateianhänge
-
- Beispiel_GridControl.ods
- (11.77 KiB) 107-mal heruntergeladen
Re: Wie scrolle ich ein Grid-Control (auf einem Basic-Dialog) per Code?
Hey Stefan,
hmm, eigentlich gar nicht so schwierig;))
die Methode: gotoCell(Spaltenindex, Rowindex) - diese Zelle wird dann als erste im Grid angezeigt.
Für Dein Beispiel:
Falls sie nicht sichtbar ist!
Ist sie eh noch im Display, wird nicht gescrollt. In dem Fall erst mal ne niedrigere wählen (z.b. 10) - dann wieder zurück;)
Viele Grüße
Tom
hmm, eigentlich gar nicht so schwierig;))
die Methode: gotoCell(Spaltenindex, Rowindex) - diese Zelle wird dann als erste im Grid angezeigt.
Für Dein Beispiel:
Code: Alles auswählen
Sub markieren()
'hier wir die k-Zeile markiert:
gc = oDialogControl.getControl("MyGrid")
gc.selectRow(5)
gc.gotoCell(0, 5) '<-- setzt die 5. Zeile als erste im Display, ebenso die erste Spalte.
End Sub
Ist sie eh noch im Display, wird nicht gescrollt. In dem Fall erst mal ne niedrigere wählen (z.b. 10) - dann wieder zurück;)
Viele Grüße
Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Re: Wie scrolle ich ein Grid-Control (auf einem Basic-Dialog) per Code?
hatte ich gestern bereits in der IDL-Referenz gefunden und las sich gut, aber funktionierte scheinbar nicht.die Methode: gotoCell(Spaltenindex, Rowindex)
In der Tat, das klappt. Danke.In dem Fall erst mal ne niedrigere wählen (z.b. 10) - dann wieder zurück;)
Ich verstehe jetzt garnicht, warum ich das gestern nicht probiert hatte, aber ich war der festen Überzeugung mit gc.gotoCell(0, 5) müsste die 5. Zeile in erste Position gescrollt werden (an den oberen Rand des Grid). Ich habe, jetzt im Nachhinein, keine Ahnung wie ich darauf kam, denn in der IDL-Referenz steht das garnicht, sondern nur: "moves the cursor to the given cell".
btw.:
auf Deiner Seite, ist die Beispieldatei nicht erreichbar:
http://www.mic-consulting.de/de/artikel ... ridDlg.ods
Gruß
Stephan
Re: Wie scrolle ich ein Grid-Control (auf einem Basic-Dialog) per Code?
Danke für den Hinweis.
geht jetzt:)auf Deiner Seite, ist die Beispieldatei nicht erreichbar:
http://www.mic-consulting.de/de/artikel ... ridDlg.ods
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic