Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2019, 13:21   #1
mr_xxx
Пользователь
 
Регистрация: 22.03.2012
Сообщений: 99
Вопрос Delphi stringgrid изменит цвет ячеек которые кликаю

Добрый день
как можно изменит цвет ячеек которые кликаю ?
а если повторно цвет становится таким каким был до клика?

типа этого
nnn.png
mr_xxx вне форума Ответить с цитированием
Старый 21.02.2019, 13:30   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Например хранить в свойстве Objects признак того, что кликали. При повторном клике сбрасывать. При прорисовке использовать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.02.2019, 13:30   #3
mr_xxx
Пользователь
 
Регистрация: 22.03.2012
Сообщений: 99
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Например хранить в свойстве Objects признак того, что кликали. При повторном клике сбрасывать. При прорисовке использовать
как можно изменит цвет ячеек которые кликаю?
mr_xxx вне форума Ответить с цитированием
Старый 21.02.2019, 13:38   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от mr_xxx Посмотреть сообщение
как можно изменит цвет ячеек которые кликаю?
http://programmersforum.ru/showpost....15&postcount=4
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.02.2019, 14:04   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

пример
CalendarInStringGrid_exe.rar
пароль 123

исходный текст примера:
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure FormCreate(Sender: TObject);
    procedure StringGrid1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);
  var
  Col, Row: integer;
  d : TDateTime;
begin
  StringGrid1.FixedCols := 0;
  StringGrid1.FixedRows := 0;
  d := Date();
  for Col := 0 to StringGrid1.ColCount - 1 do begin
    for Row := 0 to StringGrid1.RowCount - 1 do begin
      StringGrid1.Cells[Col, Row] := DateToStr(d);
      d:=d+1;
      StringGrid1.Objects[Col, Row] := TObject(0);
    end;
  end;
end;

procedure TForm1.StringGrid1Click(Sender: TObject);
var
  Col, Row: integer;
begin
  Col := StringGrid1.Col;
  Row := StringGrid1.Row;
  if Integer(StringGrid1.Objects[Col, Row])=0 then
    StringGrid1.Objects[Col, Row] := TObject(1)
  else
    StringGrid1.Objects[Col, Row] := TObject(0);
end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  S: string;
  vl:integer;
begin
  // Fill rectangle with colour
  vl := Integer(StringGrid1.Objects[ACol, ARow]);
  if  odd(vl) then begin
    S := StringGrid1.Cells[ACol, ARow];
    StringGrid1.Canvas.Brush.Color := clRed;
    StringGrid1.Canvas.FillRect(Rect);
    // Next, draw the text in the rectangle
    StringGrid1.Canvas.Font.Color := clWhite;
    StringGrid1.Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, S);
  end;
end;

end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
StringGrid Цвет фона пустых ячеек и ячеек с текстом Mapkus Компоненты Delphi 6 07.07.2016 11:34
изменит цвет выделенный строки в listbox alman12 Общие вопросы Delphi 1 09.04.2014 22:24
Как изменит цвет выделенной строки digital-stream Мультимедиа в Delphi 1 13.03.2012 19:56
цвет ячейки stringgrid в delphi The Catalyst Помощь студентам 0 01.12.2011 14:47