Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi in nem Stringgrid zu ner bestimmten Zelle gehn ?? (https://www.delphipraxis.net/305-nem-stringgrid-zu-ner-bestimmten-zelle-gehn.html)

erniepb 30. Jun 2002 17:19


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

Sebastian Nintemann 30. Jun 2002 17:55

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

erniepb 30. Jun 2002 18:20

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

Sebastian Nintemann 30. Jun 2002 22:42

TStringGrid hat die Methode ScrollBy, abgeleitet von TWinControl.

Code:
StringGrid1.ScrollBy(0,300); //das StringGrid scrollt 300 Pixel nach unten
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 :)

Gruß Sebastian

erniepb 1. Jul 2002 17:33

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

Sebastian Nintemann 1. Jul 2002 18:01

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

Jens Schumann 1. Jan 2004 18:43

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?

eisblock 10. Sep 2006 14:08

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 21:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz