AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi erledigt - Stringgrid - Reihe selektieren ohne RowSelect
Thema durchsuchen
Ansicht
Themen-Optionen

erledigt - Stringgrid - Reihe selektieren ohne RowSelect

Ein Thema von aurikel_Max · begonnen am 20. Aug 2010 · letzter Beitrag vom 20. Aug 2010
Antwort Antwort
aurikel_Max

Registriert seit: 9. Okt 2009
86 Beiträge
 
#1

erledigt - Stringgrid - Reihe selektieren ohne RowSelect

  Alt 20. Aug 2010, 12:43
Mahlzeit DP,

ich arbeite zurzeit noch an meinem Stringgrid. Bei diesem kann man, wenn man auf die oberste Reihe (ARow = 0) klickt, die Tabelle sortieren. Um dies zu ermöglichen, frage ich bei einem OnClick ab, ob die selektierte Reihe = 0 ist und danach erfolgt jetzt nach Spalte die entsprechende Sortierfunktion.

Allerdings möchte ich auch die ganze Reihe, wenn eine Zelle selektiert ist, farbig hervorheben. Dazu hatte ich ursprünglich RowSelect an. Wenn allerdings RowSelect an ist, komme ich nicht mehr an die aktuell selektierte Spalte.

Nun möchte ichc RowSelect selbst malen, dazu habe ich mir überlegt, dass ich im OnCellDraw-Event abfrage, ob die aktuell selektierte Reihe = der Reihe ist, die gerade gemalt wird. Ist dem so, so soll die Zelle farbig gemalt werden.

Im Quelltext sieht dies so aus:

Delphi-Quellcode:
  if ARow = sgrdOverview.Row then
  begin
    sgrdOverview.Canvas.Brush.Color := clHighlight;
    sgrdOverview.Canvas.Font.Color := clHighlightText
  end
  else
  begin
    sgrdOverview.Canvas.Brush.Color := clWindow;
    sgrdOverview.Canvas.Font.Color := clWindowText;
  end;
Wenn ich nun mein StringGrid anzeigen lassen, so wird die oberste Reihe (die einzige Reihe) auch erfolgreich angemalt. Wenn ich nun allerdings Daten reinlade und eine andere Zelle markiere, kommt es zu Fehlern. Wo liegt der Fehler im Quelltext? (DefaultDrawing ist aus)

Liebe Grüße,
Max
Max

Geändert von aurikel_Max (20. Aug 2010 um 14:34 Uhr)
  Mit Zitat antworten Zitat
blauweiss

Registriert seit: 19. Jun 2007
142 Beiträge
 
#2

AW: Stringgrid - Reihe selektieren ohne RowSelect

  Alt 20. Aug 2010, 13:28
Hi aurikel_Max,

ich würde bei RowSelect = true bleiben. Damit ersparst Du Dir die Zeichenprobleme.
Du kommst einfach an die gewünschte Spalte, indem Du z.B. beim MouseDown auf die Kopfzeile die Methode MouseToCell verwendest.

Grüsse,
blauweiss
  Mit Zitat antworten Zitat
aurikel_Max

Registriert seit: 9. Okt 2009
86 Beiträge
 
#3

AW: Stringgrid - Reihe selektieren ohne RowSelect

  Alt 20. Aug 2010, 14:27
Hi aurikel_Max,

ich würde bei RowSelect = true bleiben. Damit ersparst Du Dir die Zeichenprobleme.
Du kommst einfach an die gewünschte Spalte, indem Du z.B. beim MouseDown auf die Kopfzeile die Methode MouseToCell verwendest.

Grüsse,
blauweiss
Ich danke dir, das klappt.
Max
  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 18:40 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