AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Stringgrid Zeilen einfärben funktioniert nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Stringgrid Zeilen einfärben funktioniert nicht

Ein Thema von TRBB · begonnen am 16. Nov 2007 · letzter Beitrag vom 16. Nov 2007
Antwort Antwort
TRBB

Registriert seit: 31. Okt 2007
18 Beiträge
 
Delphi 7 Professional
 
#1

Stringgrid Zeilen einfärben funktioniert nicht

  Alt 16. Nov 2007, 13:29
Guten Tag,
ich habe mal wieder ein Problem:
Ich will manche Zeilen (bzw. Zellen) im StringGrid einfärben doch die Farbe flackert nur einmal kurz (kaum sichtbar) auf und färbt sich dann wieder in die alte Farbe.

Hier meine Funktionen die ich nutze um das StringGrid zu färben und zu füllen.

Delphi-Quellcode:
//---------------------------------------------------------
{ Aktuelle Liste der Filme anzeigen }
procedure TSearchFrame.showMovies();
var i: integer;
begin
  ResultStringGrid.RowCount := 2;
  if High(movies) > 0 Then begin
    ResultStringGrid.RowCount := High(movies)+1;
    //-->
    for i := 0 to High(movies) do
    begin
      ResultStringGrid.Cells[0,i+1] := movies[i].name;
      ResultStringGrid.Cells[1,i+1] := movies[i].genre;
      ResultStringGrid.Cells[2,i+1] := IntToStr(movies[i].dvd);
      paintCell(1,i+1); // Zum testen erst einmal die 2. Spalte färben
    end;
  end else begin
    ResultStringGrid.Cells[0,1] := '';
    ResultStringGrid.Cells[1,1] := '';
    ResultStringGrid.Cells[2,1] := '';
  end;
end;

//---------------------------------------------------------
{ Zelle färben }
procedure TSearchFrame.paintCell(x,y: integer);
var
  rect: TRect;
begin
  rect := ResultStringGrid.CellRect(x,y);
  ResultStringGrid.Canvas.Brush.Color := clYellow;
  ResultStringGrid.Canvas.FillRect(rect);
end;
Hoffe auf eure Hilfe

Grüße
TRBB


Edit (Lösung):
Hierzu muss man das DrawCell-Ereigniss verwenden.
Dieses wird jedes mal aufgerufen wenn das StringGrid neu gezeichnet wird.
Beispiel auf swissdelphicenter.ch
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Stringgrid Zeilen einfärben funktioniert nicht

  Alt 16. Nov 2007, 13:31
Du mußt die Zeichenoperationen im OnDraw(Cell?)-Event des Grids durchführen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Stringgrid Zeilen einfärben funktioniert nicht

  Alt 16. Nov 2007, 13:33
http://www.swissdelphicenter.ch/de/showcode.php?id=273
Chris
  Mit Zitat antworten Zitat
TRBB

Registriert seit: 31. Okt 2007
18 Beiträge
 
Delphi 7 Professional
 
#4

Re: Stringgrid Zeilen einfärben funktioniert nicht

  Alt 16. Nov 2007, 13:56
Schon mal vielen Dank.
Aber wann wird diese die Prozedur denn aufgerufen?
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Stringgrid Zeilen einfärben funktioniert nicht

  Alt 16. Nov 2007, 13:59
Zitat von TRBB:
Schon mal vielen Dank.
Aber wann wird diese die Prozedur denn aufgerufen?
Wenn die Komponente neu gezeichnet werden muss. Damit hast du normalerweise nichts zu tun
Chris
  Mit Zitat antworten Zitat
TRBB

Registriert seit: 31. Okt 2007
18 Beiträge
 
Delphi 7 Professional
 
#6

Re: Stringgrid Zeilen einfärben funktioniert nicht

  Alt 16. Nov 2007, 14:05
Ich will nur bestimmte Zeilen (und das sind je nach Daten immer wieder andere) verschiedene Zeilen färben.

Wird diese Funktion immer dann aufgerufen wenn irgendeine Zeile beschriftet oder neu erstellt wird?
  Mit Zitat antworten Zitat
TRBB

Registriert seit: 31. Okt 2007
18 Beiträge
 
Delphi 7 Professional
 
#7

Re: Stringgrid Zeilen einfärben funktioniert nicht

  Alt 16. Nov 2007, 14:10
Ahh hab schon.
Vielen Dank für eure schnelle Hilfe.

Mfg
TRBB
  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 23:50 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