TStringGrid

Rund um die LCL und andere Komponenten
Antworten
mori
Beiträge: 53
Registriert: Di 24. Okt 2006, 08:31
OS, Lazarus, FPC: Winux (L 1.1.xy FPC 2.7.1.z)
CPU-Target: xxBit
Wohnort: Mixdorf
Kontaktdaten:

TStringGrid

Beitrag von mori »

Hallo zusammen,
wie kann ich in einem StringGrid festlegen, welche Zeile als oberste angezeigt wird?
Ich moechte zur Laufzeit verschiedene ZeilenNummern aus einem Array als oberste Zeile anzeigen lassen.
Irgendwie habe ich gerade ein Brett vorm Kopf und komme auf keine Loesung. Kann mir mal bitte jemand auf die Spruenge helfen?
TopRow() klingt zwar nicht schlecht, aber laesst sich evtl. nur abfragen und nicht setzen.

Vielen Dank!

MfG Th. Moritz

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

Nur zum Verständnis:

du möchtest nicht die obere Zeile austauschen, sondern festlegen, welche oben im Sichtbaren Bereich des Stringgrids steht, oder?

mori
Beiträge: 53
Registriert: Di 24. Okt 2006, 08:31
OS, Lazarus, FPC: Winux (L 1.1.xy FPC 2.7.1.z)
CPU-Target: xxBit
Wohnort: Mixdorf
Kontaktdaten:

Beitrag von mori »

Hallo monta,
ja ich moechte festlegen, welche Zeile sichtbar ganz oben steht.
Je nach Suchkriterium, soll der erste Treffer ganz oben erscheinen.
Die Zellinhalte duerfen nicht veraendert werden, da ich per Suchfunktion auch mal wieder weiter "nach oben" rutschen moechte.

MfG Th. Moritz

mori
Beiträge: 53
Registriert: Di 24. Okt 2006, 08:31
OS, Lazarus, FPC: Winux (L 1.1.xy FPC 2.7.1.z)
CPU-Target: xxBit
Wohnort: Mixdorf
Kontaktdaten:

Beitrag von mori »

Eigentlich sollten LeftCol und TopRow die richtigen Eigenschaften sein.
Leider scheint sich Lazarus nicht darum zu kuemmern.
Jedenfalls hier nicht :-(
Auch folgendes:

With StringGrid do
begin
LeftCol:=0;
TopRow:=100;
end;

Zeigt keine Auswirkungen.
Ich muss wohl doch eine Nacht drueber schlafen :-)

MfG Th. Moritz

mori
Beiträge: 53
Registriert: Di 24. Okt 2006, 08:31
OS, Lazarus, FPC: Winux (L 1.1.xy FPC 2.7.1.z)
CPU-Target: xxBit
Wohnort: Mixdorf
Kontaktdaten:

Beitrag von mori »

Quick and Dirthy?
Folgender Code-Schnipsel macht das gewollte:

x ist hier die oben anzuzeigende Zeilennummer

Application.ProcessMessages;
StringGrid.LeftCol:=0;
StringGrid.TopRow:=x;
StringGrid.Row:=StringGrid.TopRow;
Application.ProcessMessages;

Erstaunlicherweise ist
'Application.ProcessMessages;'
auch vor dem ZeilenSprung notwendig...

P.S.: Alles wird gut :-)

MfG Th. Moritz

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Ein Bugreport wär trotsdem angebracht denke ich
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten