AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Wenn das Fälligkeitsdatum erreicht ist soll Zelle im Stringgrid rot angezeigt werden
Thema durchsuchen
Ansicht
Themen-Optionen

Wenn das Fälligkeitsdatum erreicht ist soll Zelle im Stringgrid rot angezeigt werden

Ein Thema von Waldow · begonnen am 7. Jun 2010 · letzter Beitrag vom 15. Jun 2010
Antwort Antwort
Seite 2 von 3     12 3      
taaktaak

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

AW: Wenn das Fälligkeitsdatum erreicht ist soll Zelle im Stringgrid rot angezeigt wer

  Alt 8. Jun 2010, 16:56
Moin, Moin.
Nun, wenn du die Schleife entfernst, aber das i verwendest, dürfte i einen nicht gewollten Wert besitzen. Vermutlich muss für i jetzt Row eingesetzt werden - aber du solltest die gesamte Methode OnDrawCell() mal mit dem aktuellen Stand zeigen...
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von rapante
rapante

Registriert seit: 3. Jun 2009
Ort: OPR
172 Beiträge
 
Delphi 12 Athens
 
#12

AW: Wenn das Fälligkeitsdatum erreicht ist soll Zelle im Stringgrid rot angezeigt wer

  Alt 8. Jun 2010, 19:10
Hy,

Es wurde jetzt schon mehrfach darauf hingewiesen das eine Schleife an dieser Stelle unnötig ist.

Setz doch einfach mal einen Breakpoint in der procedure und sieh dir an wann diese aufgerufen wird
-> unzwar für jede Zelle 1 mal

Das heisst das du jedesmal wenn eine Zelle gezeichnet wird, in deiner Schleife das komplette Grid durch gehst!

Um die Fehlermeldung zu vermeiden, darfst du die erste Zeile(0) nicht mit verarbeiten:
Delphi-Quellcode:
procedure TFRechnung.AdvStringGrid3GetCellColor(Sender: TObject; ARow, ACol: Integer; AState: TGridDrawState; ABrush: TBrush; AFont: TFont);
var
  Datumrechnung, Datumrechungfaellig: TDate;
begin
  if ARow <> 0 then // Die Kopfzeile nicht prüfen
  begin
    Datumrechnung := StrToDate(AdvStringGrid3.Cells[9, ARow]);
    Datumrechungfaellig := StrToDate(AdvStringGrid3.Cells[11, ARow]);
    if Datumrechungfaellig = Datumrechnung + 14 then
      ABrush.color := clred;
  end;
end;
Micha
  Mit Zitat antworten Zitat
Waldow

Registriert seit: 7. Jun 2010
16 Beiträge
 
#13

AW: Wenn das Fälligkeitsdatum erreicht ist soll Zelle im Stringgrid rot angezeigt wer

  Alt 8. Jun 2010, 20:10
Hallo,
ich wußte es leider nicht besser aber das half:
if ARow <> 0 then Da das AdvStrigGrid auch einen FloatingFooter hat muss ich jetzt nur noch die letzte Zeile herausfinden dann sollte es keine Fehler mehr geben
Danke für die tolle Hilfe und Geduld.

Gruss
Waldow

Geändert von Waldow ( 9. Jun 2010 um 08:12 Uhr) Grund: Code-Tag durch Delphi-Tag ersetzt
  Mit Zitat antworten Zitat
olaf

Registriert seit: 4. Mai 2009
Ort: Iserlohn
82 Beiträge
 
RAD-Studio 2009 Pro
 
#14

AW: Wenn das Fälligkeitsdatum erreicht ist soll Zelle im Stringgrid rot angezeigt wer

  Alt 9. Jun 2010, 09:25
Hallo,

so funktioniert das mit TMS nie. Setze deinen Code unter GetCellColor.

procedure..
if ARow > 0 then //Spaltenüberschriften nicht mit einbeziehen
begin
if acol=1 then //Spalte mit deinem Rechnungsdatum
begin
if (AdvGrid1.cells[2], arow] =rdatum+14) then //Fälligkeitspalte
Color:=clred;
end;
end;


Die Spaltennummern mußt du selber anpassen. Ich denke das ist kein Problem.

Olaf
  Mit Zitat antworten Zitat
David Martens

Registriert seit: 29. Sep 2003
205 Beiträge
 
Delphi XE Enterprise
 
#15

AW: Wenn das Fälligkeitsdatum erreicht ist soll Zelle im Stringgrid rot angezeigt wer

  Alt 10. Jun 2010, 19:50
Du kannst die Abfrage der Zeilennummer auch umgehen und mit TryStrToDate(const S: string; out Value: TDateTime): Boolean arbeiten. Gibt true zurück wenn in S ein "Datum" steht.

aber bei TMS gibt es auch

Delphi-Quellcode:
  
  AdvStringGrid1.FixedFooters
  AdvStringGrid1.FixedRows
  AdvStringGrid1.FixedCols
Das sind deine Start bzw. End-Spalten/Zeilen also:

if ARow > AdvStringGrid1.FixedRows then
  Mit Zitat antworten Zitat
Waldow

Registriert seit: 7. Jun 2010
16 Beiträge
 
#16

AW: Wenn das Fälligkeitsdatum erreicht ist soll Zelle im Stringgrid rot angezeigt wer

  Alt 15. Jun 2010, 11:14
Danke, wie muss sich ich das mit dem FixedFooters machen um diese Reihe auszuschliessen?

if AdvStringGrid3.FixedFooters < 1 Damit funktioniert es nicht.

Gruss
waldow
  Mit Zitat antworten Zitat
Benutzerbild von rapante
rapante

Registriert seit: 3. Jun 2009
Ort: OPR
172 Beiträge
 
Delphi 12 Athens
 
#17

AW: Wenn das Fälligkeitsdatum erreicht ist soll Zelle im Stringgrid rot angezeigt wer

  Alt 15. Jun 2010, 11:45
Versuch es doch mal mit
if ARow < AdvStringGrid1.FixedFooters then
Micha
  Mit Zitat antworten Zitat
Waldow

Registriert seit: 7. Jun 2010
16 Beiträge
 
#18

AW: Wenn das Fälligkeitsdatum erreicht ist soll Zelle im Stringgrid rot angezeigt wer

  Alt 15. Jun 2010, 12:39
Leider nicht, oder mache ich immer noch etwas falsch?
Delphi-Quellcode:
procedure TFRechnung.AdvStringGrid3GetCellColor(Sender: TObject; ARow,
  ACol: Integer; AState: TGridDrawState; ABrush: TBrush; AFont: TFont);
var
  Datumrechnung: TDate;
begin
  if ARow > 0 then
  begin
    if ARow < AdvStringGrid3.FixedFooters then
    begin
      if acol = 9 then
      begin
        Datumrechnung := StrToDate(AdvStringGrid3.Cells[9, Arow]);
        Label5.Caption := Format('%d', [DaysBetween(Datumrechnung, now)]);
        if strtoint(Label5.Caption) > 14 then abrush.color := clred;
      end;
    end;
  end;
end;
Gruss
Waldow
  Mit Zitat antworten Zitat
Benutzerbild von rapante
rapante

Registriert seit: 3. Jun 2009
Ort: OPR
172 Beiträge
 
Delphi 12 Athens
 
#19

AW: Wenn das Fälligkeitsdatum erreicht ist soll Zelle im Stringgrid rot angezeigt wer

  Alt 15. Jun 2010, 12:45
Welchen Wert hat denn FixedFooters?
Micha
  Mit Zitat antworten Zitat
Waldow

Registriert seit: 7. Jun 2010
16 Beiträge
 
#20

AW: Wenn das Fälligkeitsdatum erreicht ist soll Zelle im Stringgrid rot angezeigt wer

  Alt 15. Jun 2010, 12:55
Ich sende dir mal als Download eine Demo mit.
Angehängte Dateien
Dateityp: rar Demo.rar (559,9 KB, 7x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 18:25 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