Autor |
Beitrag |
AlexII
      
Beiträge: 180
|
Verfasst: Fr 14.12.07 19:16
Wie kann ich die letzte Zeile in einem StringGrid markieren bzw. selektieren? Beim StringGridaufbau versteht sich, hat nix mit den Clicks zutun.
|
|
dummzeuch
      
Beiträge: 593
Erhaltene Danke: 5
Delphi 5 ent, Delphi 6 bis Delphi XE8 pro
|
Verfasst: Fr 14.12.07 20:16
AlexII hat folgendes geschrieben: | Wie kann ich die letzte Zeile in einem StringGrid markieren bzw. selektieren? Beim StringGridaufbau versteht sich, hat nix mit den Clicks zutun. |
Delphi-Quelltext 1:
| StringGrid1.Row := StringGrid1.RowCount-1; |
|
|
AlexII 
      
Beiträge: 180
|
Verfasst: Fr 14.12.07 23:23
Zuletzt bearbeitet von AlexII am Sa 15.12.07 00:28, insgesamt 1-mal bearbeitet
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Sa 15.12.07 00:00
AlexII hat folgendes geschrieben: | Was soll das denn heißen? Kannst du überhaupt Delphi? Bitte Frage schön lesen! |
Ein solcher Tonfall ist hier nicht erwünscht!  Denke bitte dran, dass dummzeuch Dir helfen wollte, dann ist eine solche Antwort wohl kaum angebracht.
//edit: Hinweis bezog sich auf den Beitrag, bevor er editiert wurde 
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Zuletzt bearbeitet von Christian S. am Sa 15.12.07 00:59, insgesamt 1-mal bearbeitet
|
|
AlexII 
      
Beiträge: 180
|
Verfasst: Sa 15.12.07 00:27
|
|
Herr Bananerama
      
Beiträge: 130
|
Verfasst: Sa 15.12.07 00:27
Was bist du denn für einer. Na dir würde ich keine Frage mehr beantworten. Stellst eine Frage, bekommst auch noch exact die Richtige Lösung, schön in Delphi-Code verpackt und dann behauptest du aus Unwissenheit heraus das würde nicht stimmen ohne es auch nur ausprobiert zu haben und beleidigst auch noch deinen Helfer. Und das als relativer Neuling hier.
Dummzeuch hat also recht, also ich finde du solltest dich entschuldigen.
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Sa 15.12.07 00:28
Wenn du deshalb nicht mit der Lösung zufrieden bist, kannst du auch die Eigenschaft goRowSelect in Options wählen, um die ganze Zeile zu markieren. Aber ich denke auch, dass dir nicht mehr viele Fragen beantworten werden.
|
|
AlexII 
      
Beiträge: 180
|
Verfasst: Sa 15.12.07 00:32
Ne ausprobiert hab ich das. Das geht aber nicht, was ich auch dachte, wie gesagt, dachte der macht Scherz. Verzeihung, ich wurde auf nem anderen Delphi-Forum so ausgelacht (hab beweise), dachte hier geht das auch so zu.
Pardon 
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Sa 15.12.07 00:33
Alternative
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| var GR: TGridRect; begin GR.Right := 1; GR.Bottom := StringGrid1.RowCount - 1; StringGrid1.Options := StringGrid1.Options + [goRangeSelect]; StringGrid1.Selection := GR; end; |
Achja, ich wusste es bis vor 5 Minuten selbst nicht. Aber die DOH ist eine prima Hilfe.
cu
Marc
|
|
Yogu
      
Beiträge: 2598
Erhaltene Danke: 156
Ubuntu 13.04, Win 7
C# (VS 2013)
|
Verfasst: Sa 15.12.07 00:43
Ähem, so kompliziert ist das auch wieder nicht. Die aller erste Lösung ist die richtige, die Eigenschaft Row setzt die selektierte Zeile. Es gibt auch Fragen mit einer einfachen Lösung...
Aber warum einfach, wenn es auch kompliziert geht? Einfach kann ja jeder! Also würde ich sagen, die Disskussion um die Frage "Wie markiere ich die letzte Zeile" war wirklich aufschlussreich. Solche Diskussionen sollten öfter durchgeführt werden, das erhöt die Beitragszahl des Forums gewaltig.
@Mods: Bitte nicht ernst nehmen...
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Sa 15.12.07 00:51
Beide Lösungsvorschläge sind korrekt! Aber was ist daran kompliziert?
Zudem lässt sich mit meiner Methode noch deutlich mehr einstellen.
cu
Marc
|
|
dummzeuch
      
Beiträge: 593
Erhaltene Danke: 5
Delphi 5 ent, Delphi 6 bis Delphi XE8 pro
|
Verfasst: Sa 15.12.07 12:47
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Sa 15.12.07 12:50
Er hat sich entschuldigt, dass muss doch jetzt nicht wirklich noch breit getreten werden. Zumindest bitte nicht in diesem Thread. 
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
dummzeuch
      
Beiträge: 593
Erhaltene Danke: 5
Delphi 5 ent, Delphi 6 bis Delphi XE8 pro
|
Verfasst: Sa 15.12.07 13:21
Christian S. hat folgendes geschrieben: | Er hat sich entschuldigt, dass muss doch jetzt nicht wirklich noch breit getreten werden. Zumindest bitte nicht in diesem Thread. :-) |
Mir geht's nicht um eine Entschuldigung sondern ich moechte wissen, weshalb er dachte, es sei falsch. Vielleicht haette ich das Missverstaendnis ja vermeiden koennen.
twm
|
|
AlexII 
      
Beiträge: 180
|
Verfasst: Sa 15.12.07 14:38
Ich verstehe einfach die Logik nicht, wenn ich den Code (StringGrid1.Row := StringGrid1.RowCount-1) übersetze kling das so:
Aktuelle Zeile:=Letzte Zeile; Das hat ja nix mit Markierung zutun, oder?
Die Lösung von Marc ist aber verständlich, StringGrid1.Selection := ........ so muss das auch aussehen.
Die erste Lösung funktioniert bei mir nicht, wird immer nur die erste markiert und basta, hm.... komisch.
Jetzt verstehe ich die Welt nicht.
|
|
Christian S.
      
Beiträge: 20451
Erhaltene Danke: 2264
Win 10
C# (VS 2019)
|
Verfasst: Sa 15.12.07 15:03
AlexII hat folgendes geschrieben: | Ich verstehe einfach die Logik nicht, wenn ich den Code (StringGrid1.Row := StringGrid1.RowCount-1) übersetze kling das so:
Aktuelle Zeile:=Letzte Zeile; Das hat ja nix mit Markierung zutun, oder? |
Was verstehst Du unter "aktuelle Zeile"?
AlexII hat folgendes geschrieben: | Die erste Lösung funktioniert bei mir nicht, wird immer nur die erste markiert und basta, hm.... komisch. |
Hast Du Yogus Hinweis beachtet und goRowSelect in den Options auf true gesetzt?
_________________ Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
|
|
dummzeuch
      
Beiträge: 593
Erhaltene Danke: 5
Delphi 5 ent, Delphi 6 bis Delphi XE8 pro
|
Verfasst: Sa 15.12.07 16:27
AlexII hat folgendes geschrieben: | Ich verstehe einfach die Logik nicht, wenn ich den Code (StringGrid1.Row := StringGrid1.RowCount-1) übersetze kling das so:
Aktuelle Zeile:=Letzte Zeile; Das hat ja nix mit Markierung zutun, oder?
Die Lösung von Marc ist aber verständlich, StringGrid1.Selection := ........ so muss das auch aussehen.
Die erste Lösung funktioniert bei mir nicht, wird immer nur die erste markiert und basta, hm.... komisch.
Jetzt verstehe ich die Welt nicht. |
OK, Du wolltest also die komplette Zeile markieren und meine Loesung markiert nur eine Zelle der letzten Zeile.
Hm, willst Du, dass immer eine komplette Zeile markiert wird, auch wenn man z.B. mit der Maus darauf klickt? In dem Fall musst Du goRowSelect in den Options setzen. Wenn Du nur einmalig die letzte Zeile markieren willst, sonst (also via Mausklick) aber immer nur die angeklickte Zelle markiert werden soll, dann ist die zweite Loesung das was Du suchst.
twm
|
|
AlexII 
      
Beiträge: 180
|
Verfasst: Sa 15.12.07 17:19
Also das ist so: wenn mein Programm startet ist die erste Zeile des StringGrids markiert, um das zu vermeiden setze ich die Markierung auf StringGrid1.Selection:=TGridRect(Rect(-1,-1,-1,-1));
Diese Lösung passt mir aber nicht so gut, ich möchte, dass die letzte Zeile markiert wird, denn sie ist bei mir sowieso ausgeblendet, daher wird die Markierung keiner sehen.
|
|