AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TDBGrid-Zeilen unterschiedlich färben und TTable
Thema durchsuchen
Ansicht
Themen-Optionen

TDBGrid-Zeilen unterschiedlich färben und TTable

Ein Thema von Tyler · begonnen am 16. Okt 2003 · letzter Beitrag vom 17. Okt 2003
Antwort Antwort
Benutzerbild von Tyler
Tyler

Registriert seit: 19. Jun 2003
Ort: Berlin
241 Beiträge
 
#1

TDBGrid-Zeilen unterschiedlich färben und TTable

  Alt 16. Okt 2003, 11:18
Moin zusamm

folgender Code unter GridDrawColumnCell

If ((Table.RecNo mod 2) = 0) then begin
Grid.Canvas.Brush.Color := clSkyBlue;
Grid.DefaultDrawColumnCell(Rect, 0, Column, State);
end;

sollte ja eigentlich jede 2. Zeile des Grid´s in ein zartes Blau tauchen.

Ich hab für meine Table aber 2 Indizes, einmal für ein Textfeld, einmal für ein Zahlenfeld (beide Unique).
Setzte ich den Index der Table auf mein Zahlenfeld, woraufhin die Table nach diesem Zahlenfeld der Datenbank sortiert wird, funktioniert die Färbung korrekt (jede 2. Zeile vom Grid)

Nehm ich als Index das Textfeld, woraufhin die Table nach dem Textfeld sortiert wird, werden die Felder wild durcheinander blau eingefärbt, aber nicht wie es eigentlich sein sollte, jedes 2.

Im Klartext: Die Färbung der Zeilen geht offensichtlich nicht nach der tatsächlichen sichtbaren Position der Zeile im Grid, sondern vielmehr der realen Position in der Datenbank aufgrund des Zahlen-Indizes.

Nur zum Verständnis: Will ich eine Aufwärts-Sortierung der Table erreichen, wechsel ich den Index, oder gibt´s da noch andere Möglichkeiten? Denn nur aus dem Grund wechsel ich die Indizes zur RunTime, weil ich ein anderes zu sortierendes Feld auswähle.

Wenn das Grid die Daten aus einer TQuery-Komponente anzeigt, funktioniert das ganze übrigens wunderbar, egal nach welchem Datenfeld ich sortiere!

Weiß einer Abhilfe oder Rat?

mfG
  Mit Zitat antworten Zitat
Tanadirian

Registriert seit: 13. Feb 2003
Ort: Pdm
67 Beiträge
 
#2

Re: TDBGrid-Zeilen unterschiedlich färben und TTable

  Alt 16. Okt 2003, 15:09
Hallo Tyler,

Du gehst ja auch nach den Records in deiner Tabelle, die haben immer die selbe Reihenfolge. Versuchs doch mal mit DBGrid.row oder ähnlichem.

mfg Tanadirian
  Mit Zitat antworten Zitat
Benutzerbild von Tyler
Tyler

Registriert seit: 19. Jun 2003
Ort: Berlin
241 Beiträge
 
#3

Re: TDBGrid-Zeilen unterschiedlich färben und TTable

  Alt 17. Okt 2003, 08:53
Leider gibt´s keiner derartige Funktion beim DBGrid, hab ich auch schon geschaut...
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#4

Re: TDBGrid-Zeilen unterschiedlich färben und TTable

  Alt 17. Okt 2003, 08:59
Zitat von Tyler:
Leider gibt´s keiner derartige Funktion beim DBGrid, hab ich auch schon geschaut...
Hai Tyler,

eventuell kannst Du dir ja eine globale Variable deklarieren.


Delphi-Quellcode:
var
  gerade : Boolean = False;

procedure TForm1.GridDrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
 If (gerade) then
  begin
   Grid.Canvas.Brush.Color := clSkyBlue;
  end;
 Grid.DefaultDrawColumnCell(Rect, 0, Column, State);
 gerade := Not (gerade);
end;
Ist aber nicht getestet!
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  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 19:42 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