Autor Beitrag
Karl12
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 08.03.11 13:37 
Grüße :)

Ich möchte bei einem Stringgrid Zellen durch klicken rot färben und den wert des arrays hinter der zelle auch gleichzeitig ändern.

einfach gesagt genauso wie man hier : www.bitstorm.org/gameoflife/ die zellen markieren kann und auch abwählen kann.

das mit dem einfärben der zellen wenn sie einen bestimmten wert hat habe ich schon hinbekommen mit OnDrawCell das sieht bei mir so aus :
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
  VAR f:Tcolor;
begin

if Stringgrid1.cells[ACol,ARow]= 'O'
     then f:=clred
     else f:=clwhite;

     stringgrid1.Canvas.Brush.color:= f ;
     Stringgrid1.Canvas.FillRect(Rect);

end;


--aber das mit OnSelectCell zu verknüpfen hab ich keinen plan. :motz: ich hab schon alles probiert was in der hilfe stand aber damit komm ich iwie nicht kla :autsch:

wenn mir jemand sagen könnte was ich dann bei OnSelectCell reinschrieben müsste und was dann in die prozedur rein muss würde ich mich freun ;)

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Di 08.03.2011 um 13:05
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Di 08.03.11 13:44 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
procedure TForm1.StringGrid1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  ACol,Arow:Integer;
begin
     StringGrid1.MouseToCell(x,y,ACol,Arow);
     if StringGrid1.Cells[ACol,ARow]='X' then StringGrid1.Cells[ACol,ARow]:=' ' else StringGrid1.Cells[ACol,ARow]:='X'

end;

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS

Für diesen Beitrag haben gedankt: Karl12