AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Stringgrid Zelle färben beim Editieren

Ein Thema von Bengalo · begonnen am 13. Okt 2008 · letzter Beitrag vom 17. Okt 2008
Antwort Antwort
Bengalo

Registriert seit: 29. Sep 2007
5 Beiträge
 
#1

Stringgrid Zelle färben beim Editieren

  Alt 13. Okt 2008, 16:29
Hallo Community, ich habe folgendes Problem. Ich möchte , das sich in einem Stringgrid die Farbe der Zelle ändert , sobald man eine Eingabe gemacht hat, die den Kriterien nicht entspricht. Hab mir alles schon durchgelesen was ich bei der Suche finden konnte , hab es mit Drawcell usw versucht , jedoch habe ich nur 2 extreme bei all meinen Versuchen die Codes einzubauen. Entweder färbt sich alles rot , oder garnichts. Das ganze sieht so aus:
Delphi-Quellcode:
with (Sender as TStringGrid) do
 begin
  if (ACol <=0 and ACol >=4)
   then

for j:=1 to 5
 do begin
     for i:=1 to Notentabelle.RowCount
      do Notentabelle.Cells[j,i]:='0';
    end;

for j:=1 to 5
 do begin
  for i:=1 to Notentabelle.RowCount
   do begin
       if (StrToInt(Notentabelle.Cells[j,i]) >= 0) and (StrToInt(Notentabelle.Cells[j,i]) <= 4)
         then Canvas.Brush.Color:=clred
         else if ((StrToInt(Notentabelle.Cells[j,i]) > 0)) or (StrToInt(Notentabelle.Cells[j,i]) < 15)
                then begin
                      ShowMessage('Unzulässige Note');
                      Notentabelle.Cells[j,i]:='0';
                     end;
      end;
    end;
Diese Version funktioniert jetzt garnichtmehr , ihr sollt sie mir auch nicht komplett verbessern , ich wäre nur froh , wenn mir einer sagen kann wo der grundsätzliche Fehler in dem ganzen ist.
Und bitte verweist mich nicht auf die Suche , ich hab mir echt jeden Artikel zu dem Thema durchgelesen , es nützt nichts
vielen dank für konstruktive Vorschläge im Vorraus.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Stringgrid Zelle färben beim Editieren

  Alt 13. Okt 2008, 16:39
Hallo,

die Formatierung, oh Gott

ich mache immer

Delphi-Quellcode:
if XXX then
begin
  if YYY then
  begin
  end;
end
else
begin
end;
aber nun ja

Delphi-Quellcode:
if (StrToInt(Notentabelle.Cells[j,i]) >= 0) and
   (StrToInt(Notentabelle.Cells[j,i]) <= 4)
das kann nicht passen, >=0 UND <=4
das geht so nicht, du meinst wohl ODER ? (or)


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Stringgrid Zelle färben beim Editieren

  Alt 13. Okt 2008, 16:57
2 ist z.B. größer oder gleich 0 und kleiner oder gleich 4, was soll daran nicht stimmen?
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
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Stringgrid Zelle färben beim Editieren

  Alt 13. Okt 2008, 17:06
OK,

war ein langer Tag


Heiko
Heiko
  Mit Zitat antworten Zitat
Thomas F

Registriert seit: 3. Sep 2008
Ort: Nürnberg
281 Beiträge
 
Delphi 2005 Architect
 
#5

Re: Stringgrid Zelle färben beim Editieren

  Alt 13. Okt 2008, 18:49
2 kann auch kleiner 4 sein und gleichzeitig größer 25 sein

Warum nicht ? ? ?
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Stringgrid Zelle färben beim Editieren

  Alt 13. Okt 2008, 18:59
Hallo,

mal ein kleines Bsp.


Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids;

type
  TForm1 = class(TForm)
    Grid: TStringGrid;
    procedure FormCreate(Sender: TObject);
    procedure GridDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  iCol : Integer;
  iRow : Integer;
begin
  for iCol:= 0 to Grid.ColCount-1 do
  begin
    for iRow:= 0 to Grid.RowCount-1 do
    begin
      Grid.Cells[iCol,iRow]:= IntToStr(iCol);
    end;
  end;
end;

procedure TForm1.GridDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  if Grid.Cells[ACol,ARow]='0then
  begin
    Grid.Canvas.Brush.Color:= clRed;
    Grid.Canvas.FillRect(Rect);
  end
  else
  begin
    Grid.Canvas.Brush.Color:= clBlue;
    Grid.Canvas.FillRect(Rect);
  end;

  Inc(Rect.Left,2);
  DrawText(Grid.Canvas.Handle, PChar(Grid.Cells[ACol,ARow]),
    Length(Grid.Cells[ACol,ARow]), Rect,
    DT_END_ELLIPSIS or DT_NOPREFIX);
end;

Heiko
Heiko
  Mit Zitat antworten Zitat
Bengalo

Registriert seit: 29. Sep 2007
5 Beiträge
 
#7

Re: Stringgrid Zelle färben beim Editieren

  Alt 17. Okt 2008, 20:06
Danke Leute , hat sich erledigt , Kollege von mir hat ne Konfortabele Version daraus gemacht , vielen dank , habt mir sehr geholfen!
Kann geschlossen werden
mfg
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:28 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