Problem z czyszczeniem StrinGrid z koloru

0

Chce by pokolorowane wczesniej korki w stringGrid zostały wyczyszczone z koloru. W tym celu napisalem taka procedure do On Draw Cell. Jednak Nie działa ona poprawnie? Pokolorowane Komórki zachowują kolor nie czyszczą się. Możecie sprawdzić co jest źle? Chyba warunek po if?
ColorCol1 2 3 itd ColorRow 1 2 3 ...itd to sa wspolrzedne pokolorowanych komorek ktore maja byc wyczyszczone


if (ACol = ColorCol) and (ARow = ColorRow) or (Acol=ColorCol1)and(ARow=ColorRow1) or
   (Acol=ColorCol2)and(ARow=ColorRow2) or ((Acol=ColorCol3)and(ARow=ColorRow3))or
   ((Acol=ColorCol4)and(ARow=ColorRow4))
   or((Acol=ColorCol5)and(ARow=ColorRow5))or((Acol=ColorCol6)and(ARow=ColorRow6))or
     ((Acol=ColorCol7)or(ARow=ColorRow7))or ((Acol=ColorCol8)and(ARow=ColorRow8))
 or ((Acol=ColorCol9)and(ARow=ColorRow9))or((Acol=ColorCol10)and(ARow=ColorRow10))
then
  begin
    StringGrid1.Canvas.Brush.Color := clWindow;// kolor pedzla ClWindow czyli taki jaki jest domyslny kolor komorek w STringGrid 
     StringGrid1.Canvas.FillRect(Rect);
      S := StringGrid1.Cells[ACol, ARow];
       StringGrid1.Canvas.TextOut(Rect.Left + 3, Rect.Top + 3,S);
  end;
end;
 

Wywołanie odwołania (StringGrid1.Repaint) znajduje się w procedurze przycisku służącego do czyszczenia Memo i StrinGrid

 
//czyszczenie Memo1 i StrinGrid1 i 2
procedure TForm1.Button6Click(Sender: TObject);
 var i : byte;
begin
 begin
  Memo1.Clear;        //czyszczenie calego memo
  LabeledEdit1.Clear;
  LabeledEdit2.Clear;
  LabeledEdit3.Clear;
  LabeledEdit4.Clear;
  LabeledEdit5.Clear;

  end;
 begin
                    //czyszczenie macierzy  1
  for i:=0 to stringgrid1.ColCount do
 begin
  stringgrid1.Cols[i].Clear;
 end;

  for i:=0 to stringgrid1.RowCount do
 begin
  stringgrid1.Rows[i].Clear;
 end;
end;
    begin
                    //czyszczenie macierzy  2
  for i:=0 to stringgrid2.ColCount do
 begin
  stringgrid2.Cols[i].Clear;
 end;

  for i:=0 to stringgrid2.RowCount do
 begin
  stringgrid2.Rows[i].Clear;
 end;
end;
end;
0

Sory zly kod w kleiłem przed tem ten drugi

//czyszczenie Memo1 i StrinGrid1 i 2
procedure TForm1.Button6Click(Sender: TObject);
 var i : byte;
begin
 begin
  Memo1.Clear;        //czyszczenie calego memo
  LabeledEdit1.Clear;
  LabeledEdit2.Clear;
  LabeledEdit3.Clear;
  LabeledEdit4.Clear;
  LabeledEdit5.Clear;
  StrinGrid1.Repaint;//wywolanie malowania w StrinGrid
  end;
 begin
                    //czyszczenie macierzy  1
  for i:=0 to stringgrid1.ColCount do
 begin
  stringgrid1.Cols[i].Clear;
 end;

  for i:=0 to stringgrid1.RowCount do
 begin
  stringgrid1.Rows[i].Clear;
 end;
end;
    begin
                    //czyszczenie macierzy  2
  for i:=0 to stringgrid2.ColCount do
 begin
  stringgrid2.Cols[i].Clear;
 end;

  for i:=0 to stringgrid2.RowCount do
 begin
  stringgrid2.Rows[i].Clear;
 end;
end;
end;
 
0

i zle mi sie wpisalo StringGrid1.Repaint

0

możecie sprawdzić co jest źle że nie koloruje mi tego z powrotem na biało?

0

ok problem rozwiązany

1 użytkowników online, w tym zalogowanych: 0, gości: 1