Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi allgemeine Frage zu Grid's (https://www.delphipraxis.net/948-allgemeine-frage-zu-grids.html)

Sebastian Nintemann 1. Okt 2002 17:55

Ist nun dein Problem wie du es ermöglichen kannst, dass nur aus einer bestimmten Spalte/Zeile ausgewählt werden darf, oder ist das Problem wie du den Inhalt der selektierten Zelle kommst?

Um zu verhindern dass bestimmte Zellen markiert werden kannst du das Event OnSelectCell benutzen, das liefert Zeile und Spalte die angeklickt wurden und dazu die Variable CanSelect mit der du bestimmst ob diese Zelle markiert werden darf oder nicht.
Die selektierte Zeile/Spalte kriegst du über die property Selection (siehe Hilfe).

Ich beziehe mich hier in allem auf StringGrids, also keine Gewähr :angle2:

Gruß Sebastian

Hansa 1. Okt 2002 20:50

Hi,

Glaube, es gibt doch noch mehr Unterschiede zwischen den Grids, als ich dachte. Also : Brauche den Wert EINER Zelle aus EINER Spalte, d.h. die Spalte aus der der Wert genommen wird, steht fest, die Row aber nicht!! Aber da es sich um eine DB handelt, stehen wahrscheinlich die x und y Werte gar nicht zur Verfügung. Gesehen habe ich davon jedenfalls nichts.

Aber der Inhalt der angeclickten Zelle müßte doch irgendwie zu kriegen sein. :mrgreen: Am besten wäre sogar der ganze DS. Aber da das auf einmal alles zu viel ist, geht es mir im Moment nur um folgendes Problemchen: Wie kriege ich den Wert der Zelle z.B. als Caption für ein Label hin.

Wer jetzt aufgehört hat, zu lesen hat Pech, die Zuweisung Label1.Caption := ???? ist schon klar, aber mir geht es um die ???? :witch: Die Label.Caption dient halt zur Vereinfachung.

Gruß
Hansa

Sebastian Nintemann 2. Okt 2002 13:51

Ich glaube da habe ich mich unklar ausgedrückt, x und y hab ich nur als Beispiel genommen um zu zeigen wie man auf eine einzelne Zelle zugreifen kann. Um die tatsächlich markierte Zelle zu kriegen hieße es wenn ich mich recht erinner:

Code:
Caption := StringGrid1.Cells[StringGrid1.Selection.TopLeft.X,StringGrid1.Selection.TopLeft.Y];
//die Zelle die markiert ist, die obere links markierte falls mehrere markiert sind
TStringGrid.Selection.TopLeft.X gibt die Reihe an die als erste markiert ist, da davon ausgegangen wird dass mehrere gleichzeitig markiert sein können. Statt Selection.TopLeft.X geht auch Selection.Left und Statt Y Top.

Ich hoffe ich hab das Problem nun richtig verstanden.


Gruß Sebastian


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:16 Uhr.
Seite 2 von 2     12   

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 by Thomas Breitkreuz