Delphi-PRAXiS

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 StringGrid Zeile Markieren + ermitteln der Zeile (https://www.delphipraxis.net/113583-stringgrid-zeile-markieren-ermitteln-der-zeile.html)

-Lucky- 10. Mai 2008 14:49


StringGrid Zeile Markieren + ermitteln der Zeile
 
Hallöchen,

ich habe schon die Suche betätigt und ähnliche Fragen mit Antworten gefunden, aber irgendwie krieg ichs nicht auf mein Problem umgebaut. :wall:

Ich habe ein String Grid. Wenn ich da in irgend ein Feld klicke, dann markiert er mir nur das Feld. Ich möchte, dass er die ganze Zeile markiert. Und wenn ich in das nächste Feld klicke, dann soll er die Markierung der einen Zeile wieder aufheben und die Zeile markieren, indem sich dieses Feld befindet. Außerdem wüsste ich gerne, wie man abfragt in welcher Zeile sich die Markierung befindet, also in welche Zeile bzw. welches Feld man geklickt hat. Dies hat den Sinn, dass man einzelne Datensätze auslesen und verändern sowie wieder schreiben kann. :gruebel:

Nächste Frage: Wenn ich in der ersten Zeile, wo der Kopf der Tabelle ist, z.B. auf einen Eintrag klicke wie "Name", dann möchte ich, dass Delphi mir das String Grid nach den Namen sortiert. Die Sortierfunktion habe ich schon fertig geschrieben, die einzige Frage die sich stellt ist nun, wie ich ein Ereignis auslöse, wenn auf diesen Spaltenkopf geklickt wird. Wird auf den Nächsten Spaltenkopf geklickt, soll wiederrum das danach sortiert werden usw. :gruebel:

Falls ihr mir hier helfen könntet wäre das schon super.

mkinzler 10. Mai 2008 14:56

Re: StringGrid Zeile Markieren + ermitteln der Zeile
 
Setze die Option goRowSelect auf True

toms 10. Mai 2008 14:57

Re: StringGrid Zeile Markieren + ermitteln der Zeile
 
Hallo, eine grundsätzliche Frage: Warum nimmst du ein TStringGrid und keine TListView?

Mikender 10. Mai 2008 14:59

Re: StringGrid Zeile Markieren + ermitteln der Zeile
 
Nur 1 Frage pro Thread :dp: :warn:

Und HALLO in der DP :hi: :hi:

-Lucky- 10. Mai 2008 15:22

Re: StringGrid Zeile Markieren + ermitteln der Zeile
 
Zitat:

Zitat von toms
Hallo, eine grundsätzliche Frage: Warum nimmst du ein TStringGrid und keine TListView?

Jo, vielen Dank für die Antwort^^ ich habe gerade eben erst bemerkt, dass es da noch ne Komponente gibt die so heißt. Hab mal in meinem dicken Delphi Buch geschaut, das ist ja echt nen Hammer was man da alles mit machen kann. Naja, mit StringGrid habe ich bis jetzt gearbeitet, und werde ich das jetzt auch zu Ende bringen, da weiß ich wies geht^^

Delphi-Quellcode:
 Setze die Option goRowSelect auf True
Danke, ich habe gar nicht gewusst dass es da Optionen gibt, hab ich gerade festgestellt.

Delphi-Quellcode:
Nur 1 Frage pro Thread
Sorry, ich wollte nur unnötiges Spamen vermeiden. Wenn ich das nächste mal zu einer Komponente zwei Fragen habe, dann mach ich drei Threads auf damits keine Probleme gibt :lol:

Zum markieren hätt ich da noch ne Frage. Wie kann man verhindern, dass man mehrere Zeilen markieren kann? Das passt mir nämlich gerade überhaupt gar nicht. Und wie kann ich abfragen, welche Zeile markiert ist? Es darf nur eine sein da das Bearbeiten des Datensatzes sonst etwas schwierig ist, für jede Spalte steht halt nur ein Edit Feld zur Verfügung :gruebel:

Hansa 10. Mai 2008 16:20

Re: StringGrid Zeile Markieren + ermitteln der Zeile
 
Zitat:

Zitat von -Lucky-
...Wenn ich das nächste mal zu einer Komponente zwei Fragen habe, dann mach ich drei Threads auf damits keine Probleme gibt :lol:

Dann kriegst du selber aber das nächste Problem ! :mrgreen: Zu der zweiten Frage (sortieren wie bei ListView) : guck in die Hilfe zu MouseUp und MouseToCell. Mehr gibts hier nicht dazu.

toms 11. Mai 2008 16:24

Re: StringGrid Zeile Markieren + ermitteln der Zeile
 
Zitat:

Zitat von -Lucky-

Zum markieren hätt ich da noch ne Frage. Wie kann man verhindern, dass man mehrere Zeilen markieren kann?

goRangeSelect auf False setzen

Zitat:

Zitat von -Lucky-
Und wie kann ich abfragen, welche Zeile markiert ist?

StringGrid1.Row gibt die markierte Zeile zurück.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:44 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