AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TStringGrid -[goRowSelect] wird nicht visualisiert

Ein Thema von hoika · begonnen am 26. Jun 2015 · letzter Beitrag vom 29. Jun 2015
Antwort Antwort
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#1

TStringGrid -[goRowSelect] wird nicht visualisiert

  Alt 26. Jun 2015, 16:34
Hallo,

folgender Code schaltet goRowSelect ein oder aus (per CheckBox).
Problem:
wird RowSelect eingeschaltet, wird brav die ganze Zeile markiert,
wird es ausgeschaltet, bliebt die Zeile markiert, bis man in eine Zelle klickt.
Danach ist nur diese eine Zelle markiert, wie erwartet.
BeginUpdate/EndUpdate, Refresh, Repaint, nichts hilft.

Das sollte für das TMS-TAdvStringGrid sein, aber auch das normale TStringGrid reagiert so.

Hat jemand eine Lösung?

Danke

Delphi-Quellcode:
  if CheckBox1.Checked then
  begin
    AdvStringGrid1.Options := AdvStringGrid1.Options-[goRowSelect];
    StringGrid1.Options := StringGrid1.Options-[goRowSelect];
  end
  else
  begin
    AdvStringGrid1.Options := AdvStringGrid1.Options+[goRowSelect];
    StringGrid1.Options := StringGrid1.Options+[goRowSelect];
  end;
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.560 Beiträge
 
Delphi 12 Athens
 
#2

AW: TStringGrid -[goRowSelect] wird nicht visualisiert

  Alt 26. Jun 2015, 21:46
Ergänze nach dem Click einfach wie folgt:
Delphi-Quellcode:
 for L := AdvStringGrid1.ColCount-1 downto AdvStringGrid1.FixedCols
      do AdvStringGrid1.Col := L;
Das funktioniert sowohl mit dem StringGrid als auch mit dem TMS-AdvStringGrid
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#3

AW: TStringGrid -[goRowSelect] wird nicht visualisiert

  Alt 26. Jun 2015, 21:50
Hallo,

geht das in Deine Richtung?

Delphi-Quellcode:
procedure TForm1.SetRowSelect (const Value : Boolean; const Grid : TDrawGrid);
var
  l, t : Integer;
begin
  l := Grid.Col;
  t := Grid.Row;

  Grid.Selection := TGridRect (Rect (l, t, l, t));
  if Value then
    Grid.Options := Grid.Options + [goRowSelect]
  else
    Grid.Options := Grid.Options - [goRowSelect]
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
  SetRowSelect (CheckBox1.Checked, StringGrid1);
  SetRowSelect (CheckBox1.Checked, AdvStringGrid1);
end;
Gruß

[EDIT]Kein roter Kasten[/EDIT]
Volker Zeller
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#4

AW: TStringGrid -[goRowSelect] wird nicht visualisiert

  Alt 27. Jun 2015, 11:51
Ergänze nach dem Click einfach wie folgt:
Delphi-Quellcode:
 for L := AdvStringGrid1.ColCount-1 downto AdvStringGrid1.FixedCols
      do AdvStringGrid1.Col := L;
Das funktioniert sowohl mit dem StringGrid als auch mit dem TMS-AdvStringGrid
Würde da nicht einfach nur
AdvStringGrid1.Col := AdvStringGrid1.FixedCols reichen?
Da FixedCols ja die Anzahl der fixierten Spalten ist, würde diese Zahl als Index verwendet immer die erste Zelle innerhalb der Zeile selektieren. Warum erst von größten Spalte runterzählen?
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#5

AW: TStringGrid -[goRowSelect] wird nicht visualisiert

  Alt 27. Jun 2015, 18:18
Weil col eine Property ist, bei deren Zuweisung noch andere Dinge passieren (z.B. eben markieren/Markierung löschen, wie hier gefragt - falls die Lösung so funktioniert )
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#6

AW: TStringGrid -[goRowSelect] wird nicht visualisiert

  Alt 28. Jun 2015, 16:04
Weil col eine Property ist, bei deren Zuweisung noch andere Dinge passieren (z.B. eben markieren/Markierung löschen, wie hier gefragt - falls die Lösung so funktioniert )
Soll das eine Erklärung sein, warum man nacheinander von der größten col her selektieren soll?
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: TStringGrid -[goRowSelect] wird nicht visualisiert

  Alt 29. Jun 2015, 07:00
Hallo,

der Code von Harry klappt, danke!

Das hier klappt nicht, warum auch immer.
AdvStringGrid1.Col := AdvStringGrid1.FixedCols


Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:58 Uhr.
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-2025 by Thomas Breitkreuz