Einzelnen Beitrag anzeigen

ELiTe33ELiTe

Registriert seit: 20. Jan 2010
1 Beiträge
 
#1

StringGrid - Einzelne Zellen färben - unter Bedingung

  Alt 20. Jan 2010, 19:58
Hallo .

Da ich mit anderen, ähnlichen Problemen und deren Lösungen nicht zurecht kam und nicht auf mein Problem ändern konnte, wollte ich mal hier nachfragen .


Folgendes Problem besteht..
Ich bin jetzt in der 11. Klasse und als Leistungskurs haben wir IS - Informationssysteme.
Wir haben angefangen mit Delphi 5 zu programmieren und lernen jetzt alles von 0 an.

Wir haben ein Programm gemacht das folgendes bewirkt:
100 Leute werfen jeweils 3 mal.
Bei bestimmten Kombinationen kommt man in Preisklasse von 1-4.
Das klappt auch alles soweit.

Um mein Programm zu verschönern, wollte ich nun aber die Zellen, wo jeweils die Preisklasse drin steht, färben.
Jede Preisklasse andersfarbig natürlich .

Wie mache ich das nun?
Hoffe ihr könnt mir einige Tips und Hinweise geben.

Unten seht ihr meinen aktuellen Quelltext, da findet sich aber noch nichts zum färben.

Delphi-Quellcode:
unit UMain;

interface

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

type
  TForm1 = class(TForm)
    TabAusgabe: TStringGrid;
    BStart: TBitBtn;
    procedure BStartClick(Sender: TObject);
  private
    { Private-Deklarationen }
    wfeld : array[1..3, 1..100] of integer;

    FUNCTION preis (person: integer): string;
    PROCEDURE wuerfeln;
    PROCEDURE ausgabe;

  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

{ TForm1 }

procedure TForm1.wuerfeln;
 var person, wurf :integer;
begin
  FOR person:= 1 TO 100 DO
   FOR wurf:= 1 TO 3 DO
    wfeld[wurf,person]:= random(6) + 1;
end;


procedure TForm1.BStartClick(Sender: TObject);
 begin
   wuerfeln;
   ausgabe;
 end;

procedure TForm1.ausgabe;
 var person, wurf :integer;
begin
  for person:= 1 TO 100 DO
   BEGIN
    TabAusgabe.Cells[0,person-1]:= IntToStr(person);

    FOR wurf:=1 TO 3 DO
     TabAusgabe.Cells[wurf,person-1]:= IntToStr(wfeld[wurf,person]);

    TabAusgabe.Cells[4,person-1]:= preis(person);
   END;
end;

function TForm1.preis(person: integer): string;
 VAR preisklasse : string;
     PK : integer;
begin
 preisklasse:= 'Niete';

 if (wfeld[1,person] = wfeld[2,person])
    OR (wfeld[2,person] = wfeld[3,person])
    OR (wfeld[1,person] = wfeld[3,person])
 THEN preisklasse := 'PK4';

 if (wfeld[1,person] + wfeld[2,person] + wfeld[3,person] ) > 12
 THEN preisklasse := 'PK3';

 if
  (wfeld[1,person] = wfeld[2,person]) and (wfeld[1,person] = wfeld[3,person])
 THEN preisklasse := 'PK2';

  if (wfeld[1,person] = wfeld[2,person]) and (wfeld[1,person] = wfeld[3,person]) and (wfeld[1,person] + wfeld[3,person] + wfeld[3,person] = 18 )
  or (wfeld[1,person] = wfeld[2,person]) and (wfeld[1,person] = wfeld[3,person]) and (wfeld[1,person] + wfeld[3,person] + wfeld[3,person] = 3 )
 THEN preisklasse := 'PK1';


 result:= preisklasse;
 end;

initialization
  randomize;

end.
http://img686.imageshack.us/img686/6008/delphi.jpg


Vielen Dank für eure Hilfe .
  Mit Zitat antworten Zitat