AGB  ·  Datenschutz  ·  Impressum  







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

Feld in Stringgrid färben

Ein Thema von 5etH · begonnen am 15. Apr 2008 · letzter Beitrag vom 15. Apr 2008
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von 5etH
5etH

Registriert seit: 4. Mär 2008
Ort: Giessen
217 Beiträge
 
Delphi 2007 Professional
 
#1

Feld in Stringgrid färben

  Alt 15. Apr 2008, 08:55
Hallo Zusammen,

ich würde gerne ein einzelnes feld in einem grid ab einem bestimmten wert rot färben und wollte fragen ob es möglich ist oder ob ich eine andere komponente brauch und, wenn es möglich ist was ich dazu brauch.

Schonmal vielen Dank
euer Manu
Manuel
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Feld in Stringgrid färben

  Alt 15. Apr 2008, 09:00
Stichwort OwnerDraw
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von 5etH
5etH

Registriert seit: 4. Mär 2008
Ort: Giessen
217 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Feld in Stringgrid färben

  Alt 15. Apr 2008, 09:36
sorry aber ich hab mich jetzt durch einige threads und die hilfe gelesen doch finde nichts was mir wirklich hilft...
Manuel
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Feld in Stringgrid färben

  Alt 15. Apr 2008, 09:39
Dann such mal nach Hier im Forum suchenDrawColumnCell
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von 5etH
5etH

Registriert seit: 4. Mär 2008
Ort: Giessen
217 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Feld in Stringgrid färben

  Alt 15. Apr 2008, 10:23
also meine schleife sieht jetzt so aus nur in der zeile wo der wert über 200 ist färbt er die zeile nicht rot was er eigentlich machen sollte ...

Delphi-Quellcode:
procedure TKndT.StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
  var i : Integer;
  begin
for I := 1 to stringgrid2.rowcount - 1 do
begin
if StrToFloat(Stringgrid2.Cells[4,i]) >= 200 then begin
    StringGrid1.Canvas.Brush.Color := clred;
    StringGrid1.Canvas.FillRect(Rect);
end;
end;
end;
wo liegt mein fehler ? ich finde ihn nicht

schonmal vielen dank
Manuel
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Feld in Stringgrid färben

  Alt 15. Apr 2008, 10:31
Die (Callback)-Methode wird für jede Zelle aufgerufen, es mach deshalb wenig Sinn, jedesmal das ganze Grid zu zeichnen.

Delphi-Quellcode:
procedure TKndT.StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
    w: Extended;
begin
    if TryStrToFloat( ( sender as TStringGrid).Cells[ ACol, ARow]), w) then
    if w > 200 then
        begin
        ...
        end;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von 5etH
5etH

Registriert seit: 4. Mär 2008
Ort: Giessen
217 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Feld in Stringgrid färben

  Alt 15. Apr 2008, 10:44
was du geschrieben hast passt weder in den quellcode noch verstehe ich was du damit erreichen willst
Manuel
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Feld in Stringgrid färben

  Alt 15. Apr 2008, 10:51
Warum passt es nicht zum Quellcode? Du hast das Prinzip nicht verstanden: Die Methode wird für jede Zelle aufgerufen; für ein Grid von 4x4 also 16-mal. du zeichnest also 16 mal alles.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von 5etH
5etH

Registriert seit: 4. Mär 2008
Ort: Giessen
217 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Feld in Stringgrid färben

  Alt 15. Apr 2008, 11:03
also wenn ich das so einfüge

Delphi-Quellcode:
procedure TKndT.StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
  var i : Integer;
      w : extended;
  begin
    if TryStrToFloat( ( sender as TStringGrid).Cells[ ACol, ARow]), w) then
    if w > 200 then
        begin
         StringGrid2.Canvas.Brush.Color := clred;
         StringGrid2.Canvas.FillRect(Rect);
        end;

end;
dann bekomme ich die Fehlermeldung das es keine überladene version von TryStrToFloat gibt, die man mit diesen argumenten aufrufen kann ....
Manuel
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Feld in Stringgrid färben

  Alt 15. Apr 2008, 11:20
Dann speichern wir halt zwischen:

Delphi-Quellcode:
procedure TKndT.StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
  var i : Integer;
      w : extended;
      s : string;
  begin
    s := ( sender as TStringGrid).Cells[ ACol, ARow]);
    if TryStrToFloat( s , w) then
    if w >= 200 then
        begin
         ( sender as TStringGrid).Canvas.Brush.Color := clred;
         ( sender as TStringGrid).Canvas.FillRect(Rect);
        end;

end;
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 07:53 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