AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Gelöst: Algorithmus zum Ermitteln bestimmter StringGrid-Zellen
Thema durchsuchen
Ansicht
Themen-Optionen

Gelöst: Algorithmus zum Ermitteln bestimmter StringGrid-Zellen

Ein Thema von Perlsau · begonnen am 29. Jul 2012 · letzter Beitrag vom 29. Jul 2012
Antwort Antwort
Perlsau
(Gast)

n/a Beiträge
 
#1

AW: Algorithmus zum Ermitteln bestimmter StringGrid-Zellen

  Alt 29. Jul 2012, 10:25
((ARow = StrGrid_Monat.ColCount -1) müsste es nicht
((ARow = StrGrid_Monat.RowCount -1) heissen?
Hi Helmi, du hast den Fehler entdeckt! 100 Punkte!!!

Ich wußte doch, daß es etwas einfaches sein muß, das ich nur mal wieder nicht sehe

Jetzt funktioniert es so, wie ich es wollte.

Geändert von Perlsau (29. Jul 2012 um 10:27 Uhr)
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Gelöst: Algorithmus zum Ermitteln bestimmter StringGrid-Zellen

  Alt 29. Jul 2012, 11:35
Ist sichergestellt, daß diese Methode erst dann aufgerufen wird, wenn das Grid schon auch Daten hat?

Mit Sys- bzw. DateUtils tust du dir leichter.

Ungetestet:

Delphi-Quellcode:
function ExtractDate(const S: string): string;
var
  L: integer;
begin
  L := Pos(sLineBreak, S);
  if L > 0 then
    Dec(L)
  else
    L:= Length(S);
  Result := Copy(S, 1, L);
end;

function CheckDate(const S: string): boolean;
var
  ADate: TDateTime;
  AYear, AMonth, ADay: Word;
begin
  Result := false;
  if SysUtils.TryStrToDate(ExtractDate(S), ADate) then
  begin
    SysUtils.DecodeDate(ADate, AYear, AMonth, ADay);
    Result := DateUtils.IsValidDate(AYear, AMonth, ADay);
  end;
end;

procedure TForm1.StrGrid_MonatDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  Ausrichtung: TAlignment;
  AusrichtungFlag: boolean;
begin
  if CheckDate(StrGrid_Monat.Cells[ACol, ARow]) then
  begin
    if Pos(sLineBreak, StrGrid_Monat.Cells[ACol, ARow]) > 0 then
    begin
      StrGrid_Monat.Canvas.Font.Color := Konst.Benutzer.TermStrGridEinColorFont;
      StrGrid_Monat.Canvas.Brush.Color := Konst.Benutzer.TermStrGridEinColor;
    end
    else
    begin
      StrGrid_Monat.Canvas.Font.Color := Konst.Benutzer.TermStrGridColorFont;
      StrGrid_Monat.Canvas.Brush.Color := Konst.Benutzer.TermStrGridColor;
    end;
  end
  else
  begin
    StrGrid_Monat.Canvas.Font.Color := Konst.Benutzer.TermStrGridOtherColor;
    StrGrid_Monat.Canvas.Brush.Color := Konst.Benutzer.TermStrGridColor;
  end;
  StrGrid_Monat.Canvas.FillRect(Rect);
  if ACol = 0 then
  begin
    Ausrichtung := taRightJustify;
    AusrichtungFlag := false;
  end
  else
    if ARow > 0 then
    begin
      Ausrichtung := taLeftJustify;
      AusrichtungFlag := true;
    end
    else
    begin
      Ausrichtung := taCenter;
      AusrichtungFlag := false;
    end;
  StrGridAusrichtung(StrGrid_Monat, Rect, ACol, ARow, Ausrichtung, AusrichtungFlag);
end;

Geändert von Bjoerk (29. Jul 2012 um 12:08 Uhr) Grund: ExtractDate erforderlich
  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 06:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz