AGB  ·  Datenschutz  ·  Impressum  







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

StringGrid -> Zelle farblich

Ein Thema von HolgerCW · begonnen am 23. Okt 2007 · letzter Beitrag vom 25. Okt 2007
Antwort Antwort
Seite 1 von 2  1 2      
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#1

StringGrid -> Zelle farblich

  Alt 23. Okt 2007, 10:42
Hallo zusammen,

wie kann ich eine bestimmte Zelle farblich machen ?

Wenn ich das so mache:

Delphi-Quellcode:
var
Rect: TRect;

with StringGrid do
begin

Canvas.Brush.Color := clred;
Rect := StringGrid.CellRect(5,10);
Canvas.FillRect(Rect);
Canvas.TextOut(Rect.Left+2, Rect.Top+2, Cells[5, 10]);

end;
leuchtet die Zelle nur ganz kurz rot auf.

Gruss

Holger
  Mit Zitat antworten Zitat
Benutzerbild von nachti1505
nachti1505

Registriert seit: 7. Apr 2007
188 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: StringGrid -> Zelle farblich

  Alt 23. Okt 2007, 10:46
Du machst da aber schon im OnPaint-Ereignis des StringGrid?
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#3

Re: StringGrid -> Zelle farblich

  Alt 23. Okt 2007, 10:50
Ein OnPaint - Ereignis hat mein StringGrid nicht, nur ein OnDrawCell, nur das möchte ich nicht benutzen, da es ja Zelle abgeht. Ich aber nur bestimmte Zellen ansprechen will.

Gruss

Holger
  Mit Zitat antworten Zitat
Benutzerbild von nachti1505
nachti1505

Registriert seit: 7. Apr 2007
188 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: StringGrid -> Zelle farblich

  Alt 23. Okt 2007, 10:53
Meinte auch OnDrawCell...

Wirst du aber verwenden müssen, da sonst das StringGrid jedesmal deine rot gefärbten Zellen übermalt.

Glaube, irgendwie man kann prüfen, ob Spalte = 5 und Zeile = 10 ist, dann wird selber gezeichnet, sonst wird der Standard Drawhandler aufgerufen...... evt. mit inherited?
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: StringGrid -> Zelle farblich

  Alt 23. Okt 2007, 10:53
Beispiel mit OnDrawColumnCell:

Delphi-Quellcode:
procedure TFormAw.DBGridFaelligeVorgaengeDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
var ErledigtFlag:Boolean;
begin
  if (Sender is TDBGrid) then with (Sender as TDBGrid) do begin
    ErledigtFlag:=False;
    if Assigned(Column.Field) then begin
      if (Column.Field.DataSet.FindField('Erledigt')<>nil) then begin
        ErledigtFlag:=(Column.Field.DataSet.FieldByName('Erledigt').AsBoolean);
      end;
    end;
    if (ErledigtFlag) then begin
      Canvas.Brush.Color:=clSilver;//$00B3B3FF;//clYellow;
      Canvas.Pen.Color:=clBlack;//clRed;
      DefaultDrawColumnCell(Rect,DataCol,Column,State);
    end
    else
    if ((Column.Title.Caption='Termin') or (Column.Title.Caption='AbgelaufenAm')) then begin
      if Assigned(Column.Field) then begin
        if (Column.Field is TDateField) then begin
          if ((Column.Field.AsDateTime>0) and (Column.Field.AsDateTime<Date)) then begin
// if ((Fields.FindField('Status')<>nil) and (Column.FieldByName('Status...').AsString<>'...ok')) then begin
              Canvas.Brush.Color:=$00B3B3FF;//clYellow;
              Canvas.Pen.Color:=clRed;
              DefaultDrawColumnCell(Rect,DataCol,Column,State);
// end;
          end;
        end;
      end;
    end;
  end;
end;
stahli
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#6

Re: StringGrid -> Zelle farblich

  Alt 23. Okt 2007, 11:05
Kann ich auch am Ende den Rest nachzeichnen ?

Soll heissen:

Wenn er durchgelaufen ist, also z.B. an Spalte 5 und Zeile 10 angekommen ist, soll er an Spalte 2 und Zeile 3 was nachzeichnen ?

Mein Problem ist, wenn ich bei jeder Spalte/Zeile Abfrage ob er da Zeichnen soll dauert das zu lange.

Gruss

Holger
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: StringGrid -> Zelle farblich

  Alt 23. Okt 2007, 11:25
wüsste ich nicht...
Außerdem flackert die Darstellung dann.

Du kannst aber z.B. eine globale Variable nutzen.
In der ersten Zelle definierst Du sie und danach fragst Du sie nur noch ab.

stahli
  Mit Zitat antworten Zitat
JonnyGuitar

Registriert seit: 4. Jun 2004
233 Beiträge
 
#8

Re: StringGrid -> Zelle farblich

  Alt 23. Okt 2007, 12:40
in der drawcell methode werden dir doch acol und arow mitgeliefert.
wieso fragst du in dieser nicht auf acol = 5 und arow = 10 ab?


mfg Jonny
the only thing to fear is runnin' out of beer
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: StringGrid -> Zelle farblich

  Alt 23. Okt 2007, 12:59
Hallo Holger,

Jonny hat natürlich recht!

Ich habe nicht aufgepasst und dachte, Du nutzt ein DBGrid - Sorry!

(Für DBGrid stimmt, aber was ich geschrieben habe )

Stahli
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#10

Re: StringGrid -> Zelle farblich

  Alt 23. Okt 2007, 13:38
Hi,

ich habe nur einen kleinen Teil hier nachgefragt.

Im Endeffekt habe ich 12 Zeilen und 31 Spalten.

Ich müsste also bei ACol = 1 und ARow = 1 die Datenbank abfragen, dann ACol = 2 und ARow = 1 u.s.w.

Das würde zu lange dauern.

Lese jetzt die Datenbank vorher aus und schreibe die Daten in eine Globale Variable.

Meine Frage ist nun, wann zeichnet sich das StringGrid neu, bzw. wann wird das Ereignis OnDrawCell angesteuert ?

Gruss

Holger
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:39 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