Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Связка OnrawCell и Button'a


Автор: MerCus 25.9.2008, 06:12
проблема такая:
надо чтобы по нажатию кнопки одна из яйчеек StringGrid'a окрашивалась в красный цвет, а при закрытии формы, окраска ячейки исчезала.
Окрашивание происходит только в процедуре OnDrawCell. можно ли сделать, чтобы по нажатию кнопки выполнялась данная процедура, а при закрытии наоборот?

Автор: aktuba 25.9.2008, 08:09
Можно.

Автор: ivan219 25.9.2008, 09:28
Цитата(MerCus @  25.9.2008,  06:12 Найти цитируемый пост)
надо чтобы по нажатию кнопки одна из яйчеек StringGrid'a окрашивалась в красный цвет, а при закрытии формы, окраска ячейки исчезала.

Какаето здесь несуразица при закрытии формы всё исчезнет.

Код

var
  Form1: TForm1;
  Flag: Boolean;
implementation

{$R *.dfm}

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
 if (ACol = 1) and (ARow = 1) and Flag then
  begin
   StringGrid1.Canvas.Brush.Color := clRed;
   StringGrid1.Canvas.FillRect(Rect);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Flag := not Flag;
 StringGrid1.Repaint;
end;

end.

Автор: MerCus 26.9.2008, 00:54
Спасибо огромное!
я имел ввиду, что при закрытии формы с красной ячейкой цвет её сохраняется, и потом когда эту же форму ещё раз открываешь она красная, а этого не должно быть, но я уже всё сам сделал, а вам ещё раз большое спасибо за помощь!!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)