![]() |
in nem Stringgrid zu ner bestimmten Zelle gehn ??
Wie kann ich über ne einfache procedure ne bestimmt Zelle einer TStringgridkomponente auswählen .. also so das die Zelle für den Benutzer dann halt 'markiert' ist ??
Danke!! |
Eine oder mehrere Zellen markieren kannst du so:
Code:
var
GridRect: TGridRect; //Rechteck das die Koordinaten im Grid enthält zwischen denen // die Zellen markiert werden sollen begin GridRect.Left := 1; GridRect.Top := 1; GridRect.Right := 1; GridRect.Bottom :=1; StringGrid1.Selection := GridRect //Zelle 1,1 wird markiert end; Gruß, Sebastian :) |
hmm .. mit dem markieren funktioniert ja .. aller dings hab ich da jetzt noch das Problem .. dass wenn ich scrollbars in dem Stringgrid hab und die zu selektierende Zelle außerhalb des sichtbaren Bereichs liegt .. ich dann da auch gern hin möchte ..
jemand ne idee ?? |
TStringGrid hat die Methode ScrollBy, abgeleitet von TWinControl.
Code:
Du kannst ja mittels der Eigenschaften DefaultRowHeight und DefaultColWidth und dem Index der Zeile bzw Spalte die sichtbar sein soll errechnen, wohin du scrollen musst. Ich hoffe das hilft dir :)
StringGrid1.ScrollBy(0,300); //das StringGrid scrollt 300 Pixel nach unten
Gruß Sebastian |
naja soweit so gut .. hab damit dann nur das Problem das ich nicht die Aktuelle Position des Scrollbars bestimmen kann .. jedenfalls nicht weiß wie ich das mache .. da die zuübergebenden Parameter von ScrollBy ja Änderungswerte von der aktuellen Position angeben .. und nicht von (0,0) ..
|
Stimmt, das ist ja auch noch ein Problem... aber auch hierfür gibts natürlich ne Lösung :)
Also mit TStringGrid.MouseToCell(0,0,xvar,yvar); kriegst du den Zeilen/Spaltenindex der Zelle die aktuell links oben in der Ecke des Stringgrids sichtbar ist in die Variablen (hier xvar und yvar). Wenn also die Scrollposition so ist dass zb die Zelle (0,3) oben in der Ecke ist, dann steht nach Aufruf von MouseToCell in xvar 0, und in yvar 3. Daraus kannst du errechnen, wieweit das Grid gescrollt ist, also auch wieweit du noch scrollen musst. Ich hoffe ich hab das jetzt richtig erklärt, habs nicht ganz ausprobiert. Viel Erfolg! Gruß Sebastian! Ps: bin ab morgen im Urlaub :] |
Re: in nem Stringgrid zu ner bestimmten Zelle gehn ??
Hallo,
da ich das gleiche Problem habe bin über Suchen auf diesen Thread gestolpert. Leider konnte ich aus den vorangegangenen Beiträgen noch keine Lösung ableiten. Hat jemand ein Lösung für die Frage : Wie scrolle ich eine selektierte aber nicht sichtbare Zelle in den sichtbaren Bereich? |
Re: in nem Stringgrid zu ner bestimmten Zelle gehn ??
StringGrid1.Perform(WM_VSCROLL,SB_BOTTOM,0);
edit: damit würdest du nach ganz unten scrollen falls du das wolltest. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz