Seite 1 von 1

Wie scrolle ich ein Grid-Control (auf einem Basic-Dialog) per Code?

Verfasst: Mi, 06.09.2017 01:32
von Stephan
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

Re: Wie scrolle ich ein Grid-Control (auf einem Basic-Dialog) per Code?

Verfasst: Mi, 06.09.2017 19:47
von Toxitom
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:

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
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

Re: Wie scrolle ich ein Grid-Control (auf einem Basic-Dialog) per Code?

Verfasst: Mi, 06.09.2017 22:52
von Stephan
die Methode: gotoCell(Spaltenindex, Rowindex)
hatte ich gestern bereits in der IDL-Referenz gefunden und las sich gut, aber funktionierte scheinbar nicht.
In dem Fall erst mal ne niedrigere wählen (z.b. 10) - dann wieder zurück;)
In der Tat, das klappt. Danke.

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?

Verfasst: Do, 07.09.2017 10:22
von Toxitom
Danke für den Hinweis.
auf Deiner Seite, ist die Beispieldatei nicht erreichbar:
http://www.mic-consulting.de/de/artikel ... ridDlg.ods
geht jetzt:)