AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls StringGrid Zeile bei bestimmten Werten anders farbig markier
Thema durchsuchen
Ansicht
Themen-Optionen

StringGrid Zeile bei bestimmten Werten anders farbig markier

Ein Thema von Ykcim · begonnen am 16. Feb 2009 · letzter Beitrag vom 16. Feb 2009
Antwort Antwort
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#1

StringGrid Zeile bei bestimmten Werten anders farbig markier

  Alt 16. Feb 2009, 13:27
Hallo Zusammen,

ich weiß, dass zu diesem Thema (oder ähnlichen) schon einiges geschrieben wurde. Ich bitte daher um Geduld, denn ich habe leider noch nichts gefunden, was mir weitergeholfen hat.

Codes, wie ich einzelne Zellen oder ungerade Spalten Zeilen farbig markiere habe ich schon getestet...

Ich möchte, dass wenn in einer Zeile in der Spalte x eine 1 steht, dass dann diese Zeile farblich markiert wird. Das ist das erste, was ich nicht hinbekomme.

Das zweite ist, dass ich eventuell nur diese Zellen (es kommt öfters vor) farbig markiert haben möchte.

Natürlich soll der Text der Zeile(n)/Zelle(n) noch lesbar sein und auch die ganze Zeile(n)/Zelle(n) soll farbig markiert sein.

Mit Textout war der Text zwar wieder lesbar aber die Zelle wurde nur hinter dem Text farbig markiert...

Könnt Ihr mir dabei helfen?

Vielen Dank im Voraus

Ykcim
Patrick
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: StringGrid Zeile bei bestimmten Werten anders farbig mar

  Alt 16. Feb 2009, 13:59
Hallo,

mit diesem Code bekomme ich nur folgendes Ergebnis (Screenshot)

Delphi-Quellcode:
procedure TTest3.StringGrid4DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var i:integer;
begin
      if StringGrid4.Cells[0,Arow]='135746then
        begin
          StringGrid4.Canvas.Brush.Color := clYellow;
          StringGrid4.Canvas.TextOut(ACol,ARow,StringGrid4.Cells[ACol,ARow]);
          StringGrid4.Canvas.FillRect(Rect);
        end;
end;
Miniaturansicht angehängter Grafiken
screenshot_732.jpg  
Patrick
  Mit Zitat antworten Zitat
worker
(Gast)

n/a Beiträge
 
#3

Re: StringGrid Zeile bei bestimmten Werten anders farbig mar

  Alt 16. Feb 2009, 14:01
Zitat von Ykcim:
Codes, wie ich einzelne Zellen oder ungerade Spalten Zeilen farbig markiere habe ich schon getestet...

Ich möchte, dass wenn in einer Zeile in der Spalte x eine 1 steht, dass dann diese Zeile farblich markiert wird. Das ist das erste, was ich nicht hinbekomme.
Wenn Du doch schon Codes getestet hast, bei denen einzelne Zellen koloriert worden sind, dann dürfte es doch ein Leichtes sein, diese Beispiele um eine Prüfroutine auf einen bestimmten Wert der Zelle zu erweitern.

Zitat von Ykcim:
Mit Textout war der Text zwar wieder lesbar aber die Zelle wurde nur hinter dem Text farbig markiert...
FillRect
DrawText
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: StringGrid Zeile bei bestimmten Werten anders farbig mar

  Alt 16. Feb 2009, 14:11
Hallo worker,

als erstes: Danke für die Antwort!

Ich habe die Codes zwar bereits getestet, aber ich habe es nie hinbekommen, dass der Text ordentlich ausgegeben wird... Ich weiß nicht, woran das liegt. auch in dem aktuellen Code habe ich FILLRECT verwendet, aber wie in dem Screenshot zu sehen, wird der Text völlig falsch ausgegeben...

Kannst Du Dir das mal ansehen und mir Deine Meinung sagen?

Danke

Ykcim
Patrick
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#5

Re: StringGrid Zeile bei bestimmten Werten anders farbig mar

  Alt 16. Feb 2009, 14:14
logisch, ist ja auch ein wenig durcheinander
Delphi-Quellcode:
StringGrid4.Canvas.Brush.Color := clYellow;
          StringGrid4.Canvas.TextOut(ACol,ARow,StringGrid4.Cells[ACol,ARow]);
          StringGrid4.Canvas.FillRect(Rect);
TextOut() muss nicht mit ACol/ARow "gefüttert" werden, sondern mit den Koordinaten des CellRectangles... dann schaut das auch anders aus
Ralph
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: StringGrid Zeile bei bestimmten Werten anders farbig mar

  Alt 16. Feb 2009, 14:43
Ähm, und was heißt das genau?
Sorry, aber ich bewege mich gerade auf Neuland...
Patrick
  Mit Zitat antworten Zitat
worker
(Gast)

n/a Beiträge
 
#7

Re: StringGrid Zeile bei bestimmten Werten anders farbig mar

  Alt 16. Feb 2009, 14:47
Na dass Du nicht die Koordinaten Deiner Zelle (ACol, ARow) übergibst, sondern die Koordinaten des Rectangles, also des Zeichenbereiches Deiner Zelle:
StringGrid4.Canvas.TextOut(ARect.Left, ARect.Top, StringGrid4.Cells[ACol,ARow]); ARect ist ein Parameter der DrawCell-Methode.
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: StringGrid Zeile bei bestimmten Werten anders farbig mar

  Alt 16. Feb 2009, 14:54
Das hatte ich in der Zwischenzeit auch so auprobiert - ohne Erfolg. Siehe Screenshot im Anhang...

Was mache ich nur falsch?

Hier der Code zu dem hochgeladenen Screenshot2.jpg
Delphi-Quellcode:
procedure TTest3.StringGrid4DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var i:integer;
begin
      if StringGrid4.Cells[0,Arow]='135746then
        begin
          StringGrid4.Canvas.Brush.Color := clYellow;
          StringGrid4.Canvas.TextOut(Rect.Left, Rect.Top, StringGrid4.Cells[ACol,ARow]);
          StringGrid4.Canvas.FillRect(Rect);
        end;
end;
Danke für Deine Mühe!

Ykcim
Miniaturansicht angehängter Grafiken
screenshot2_897.jpg  
Patrick
  Mit Zitat antworten Zitat
worker
(Gast)

n/a Beiträge
 
#9

Re: StringGrid Zeile bei bestimmten Werten anders farbig mar

  Alt 16. Feb 2009, 15:01
Falsche Reihenfolge

Delphi-Quellcode:
   //Nur bei Spalte 0
   If ACol <> 0 Then
      Exit;

   If StringGrid4.Cells[0, ARow] = '135746Then Begin
      StringGrid4.Canvas.Brush.Color := clYellow;
      StringGrid4.Canvas.FillRect(Rect);
      StringGrid4.Canvas.TextOut(Rect.Left, Rect.Top, StringGrid4.Cells[ACol, ARow]);
   End;
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: StringGrid Zeile bei bestimmten Werten anders farbig mar

  Alt 16. Feb 2009, 15:05
DANKE!!!!



Jetzt sieht es klasse aus! Den Rest, bezüglich einzelne Zellen schaffe ich jetzt hoffentlich...

Vielen Dank

Ykcim
Patrick
  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:26 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