Autor Beitrag
AlexII
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 180



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 593
Erhaltene Danke: 5


Delphi 5 ent, Delphi 6 bis Delphi XE8 pro
BeitragVerfasst: Fr 14.12.07 20:16 
user profile iconAlexII 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.


ausblenden Delphi-Quelltext
1:
StringGrid1.Row := StringGrid1.RowCount-1;					
AlexII Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 180



BeitragVerfasst: Fr 14.12.07 23:23 
user profile icondummzeuch hat folgendes geschrieben:

ausblenden Delphi-Quelltext
1:
StringGrid1.Row := StringGrid1.RowCount-1;					


Danke für die Mühe, aber deine Lösung ist falsch.


Zuletzt bearbeitet von AlexII am Sa 15.12.07 00:28, insgesamt 1-mal bearbeitet
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 15.12.07 00:00 
user profile iconAlexII 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! :mahn: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 180



BeitragVerfasst: Sa 15.12.07 00:27 
user profile iconChristian S. hat folgendes geschrieben:
user profile iconAlexII 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! :mahn: Denke bitte dran, dass dummzeuch Dir helfen wollte, dann ist eine solche Antwort wohl kaum angebracht.


Entschuldige mich, ich dachte der lacht mich aus :-( Kann zwar schlecht Delphi, aber doch nicht so.
Herr Bananerama
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 130



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 180



BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Sa 15.12.07 00:33 
Alternative
ausblenden 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. :P

cu
Marc
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: 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. :wink:

cu
Marc
dummzeuch
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 593
Erhaltene Danke: 5


Delphi 5 ent, Delphi 6 bis Delphi XE8 pro
BeitragVerfasst: Sa 15.12.07 12:47 
user profile iconAlexII hat folgendes geschrieben:
user profile icondummzeuch hat folgendes geschrieben:

ausblenden Delphi-Quelltext
1:
StringGrid1.Row := StringGrid1.RowCount-1;					


Danke für die Mühe, aber deine Lösung ist falsch.


Hm, nachdem jetzt wohl geklaert ist, dass sie richtig ist (Ich hab' extra Delphi angeschmissen, um das vorher abzuklaeren), wuerde mich interessieren, weshalb Du dachtest, sie sei falsch???

twm
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 593
Erhaltene Danke: 5


Delphi 5 ent, Delphi 6 bis Delphi XE8 pro
BeitragVerfasst: Sa 15.12.07 13:21 
user profile iconChristian 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 180



BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 15.12.07 15:03 
user profile iconAlexII 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"?


user profile iconAlexII 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 593
Erhaltene Danke: 5


Delphi 5 ent, Delphi 6 bis Delphi XE8 pro
BeitragVerfasst: Sa 15.12.07 16:27 
user profile iconAlexII 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 180



BeitragVerfasst: 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.